-- appear in the rest of the term (in particular one cannot refer to a
-- variable called _).
+-- Note also that the syntax is indentation sensitive (like in
+-- Haskell), so the following does not parse:
+--
+-- foo : bool = let output : bool =
+-- true
+-- in output
+
-- Sigma types are built-in and written as (x : A) * B:
Sigma (A : U) (B : A -> U) : U = (x : A) * B x
elimination principle for Path types. In particular how to prove
transitivity of path types:
- trans (A : U) (a b c : A) (p : Path A a b) (q : Path A b c) : Path A a c =
+ compPath (A : U) (a b c : A) (p : Path A a b) (q : Path A b c) : Path A a c =
and that we can substitute Path equal elements:
are doing the composition in is implicit, more about this below.
-}
-trans (A : U) (a b c : A) (p : Path A a b) (q : Path A b c) : Path A a c =
+compPath (A : U) (a b c : A) (p : Path A a b) (q : Path A b c) : Path A a c =
<i> comp (<_> A) (p @ i)
[ (i = 0) -> <j> a
, (i = 1) -> q ]