Prototype, extremely bad code implementation of CCHM Cubical Type Theory
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
861 B

  1. let
  2. sym : (A : Type) (x y : A) -> Path (\x -> A) x y -> Path (\x -> A) y x
  3. = λ A x y p i -> p (~ i)
  4. in let
  5. funext : (A : Type) (B : A -> Type) (f g : (x : A) -> B x) -> ((x : A) -> Path (\i -> B x) (f x) (g x)) -> Path (\i -> (x : A) -> B x) f g
  6. = λ A B f g h i x -> h x i
  7. in let
  8. i0IsI1 : Path (\x -> I) i0 i1
  9. = λ i -> i
  10. in let
  11. singContr : (A : Type) (a b : A) (p : Path (\j -> A) a b) -> Path (\i -> (x : A) * (Path (\j -> A) a x)) (a, \i -> a) (b, p)
  12. = λ A a b p i -> (p i, λ j -> p (i && j))
  13. in let
  14. transport : (A : I -> Type) (a : A i0) -> A i1
  15. = \A a -> comp A i0 (\i -> []) a
  16. in let
  17. Jay : (A : Type) (x : A)
  18. (P : (y : A) -> Path (\i -> A) x y -> Type)
  19. (d : P x (\i -> x))
  20. (y : A) (p : Path (\i -> A) x y)
  21. -> P y p
  22. = \A x P d y p -> transport (\i -> P (p i) (\j -> p (i && j))) d
  23. in Jay