AppFormula. Exp2 ::= Exp2 "@" Formula ;
App. Exp2 ::= Exp2 Exp3 ;
IdP. Exp3 ::= "IdP" Exp4 Exp4 Exp4 ;
-Trans. Exp3 ::= "transport" Exp4 Exp4 ;
Comp. Exp3 ::= "comp" Exp4 Exp4 System ;
Fill. Exp3 ::= "fill" Exp4 Exp4 System ;
Glue. Exp3 ::= "glue" Exp4 System ;
CTT.PCon (unAIdent n) <$> resolveExp a <*> mapM resolveExp xs
<*> mapM resolveFormula phis
_ -> CTT.AppFormula <$> resolveExp t <*> resolveFormula phi
- Trans x y -> CTT.Comp <$> resolveExp x <*> resolveExp y <*> pure Map.empty
IdP x y z -> CTT.IdP <$> resolveExp x <*> resolveExp y <*> resolveExp z
Comp u v ts -> CTT.Comp <$> resolveExp u <*> resolveExp v <*> resolveSystem ts
Fill u v ts -> CTT.Fill <$> resolveExp u <*> resolveExp v <*> resolveSystem ts
(p : (x : A) -> Id (B x) (f x) (g x)) :
Id ((y : A) -> B y) f g = <i> \(a : A) -> (p a) @ i
-trans (A B : U) (p : Id U A B) (a : A) : B = genComp p a []
+trans (A B : U) (p : Id U A B) (a : A) : B = comp p a []
-- subst can be defined using trans:
substTrans (A : U) (P : A -> U) (a b : A) (p : Id A a b) (e : P a) : P b =
trans (P a) (P b) (mapOnPath A U P a b p) e
subst (A : U) (P : A -> U) (a b : A) (p : Id A a b) (e : P a) : P b =
- transport (mapOnPath A U P a b p) e
+ comp (mapOnPath A U P a b p) e []
-- substRefl (A : U) (P : A -> U) (a : A) (e : P a) :
-- Id (P a) (subst A P a a (refl A a) e) e = refl (P a) e