Reorganized and cleaned some examples
authorAnders <mortberg@chalmers.se>
Mon, 13 Apr 2015 13:53:07 +0000 (15:53 +0200)
committerAnders <mortberg@chalmers.se>
Mon, 13 Apr 2015 13:53:07 +0000 (15:53 +0200)
README.md
examples/helix.ctt
examples/prelude.ctt
examples/uafunext.ctt [deleted file]
examples/uafunext1.ctt [moved from examples/funext.ctt with 97% similarity]

index dd14e2f1fc7c6b47ea5ef0116e8033facd4bcaa1..0f15562da1682b3576d3402fde8770d568910ca2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -21,9 +21,9 @@ funExt (A : U) (B : A -> U) (f g : (x : A) -> B x)
        Id ((y : A) -> B y) f g = <i> \(a : A) -> (p a) @ i
 ```
 
-This proof can be compared with the one in "examples/funext.ctt" which
-proves that univalence implies function extensionality (the normal
-form of these proofs are almost the same).
+This proof can be compared with the one in "examples/uafunext1.ctt"
+which proves that univalence implies function extensionality (the
+normal form of these proofs are almost the same).
 
 For more examples, see "examples/demo.ctt".
 
index 26988fb236f22ddae066a1f6c09ca2f818f8cf13..4f5d750bc50a85fb17514d7a5035d5e14a2c98c8 100644 (file)
@@ -73,12 +73,6 @@ lemPropFib (P:S1 -> U) (pP:(x:S1) -> prop (P x)) (bP: P base) : (x:S1) -> P x =
 \r
 -- other proof?\r
 \r
-propIsProp (A:U) (f g:prop A) : Id (prop A) f g =\r
- <i> \ (a b :A) -> (propSet A f a b (f a b) (g a b)) @ i\r
-\r
-setIsProp (A:U) (f g:set A) : Id (set A) f g =\r
- <i> \ (a b :A) -> (propIsProp (Id A a b) (f a b) (g a b)) @ i\r
-\r
 helixSet : (x:S1) -> set (helix x) = lemPropFib (\ (x:S1) -> set (helix x)) rem ZSet\r
  where rem (x:S1) : prop (set (helix x)) = setIsProp (helix x)\r
 \r
@@ -89,11 +83,6 @@ setLoop : set loopS1 = retractSet loopS1 Z (encode base) (decode base) (retHelix
 \r
 -- S1 is a groupoid\r
 \r
-groupoid (A:U) : U = (x y:A) -> set (Id A x y)\r
-\r
-propPi (A : U) (B : A -> U) (h:(x : A) -> prop (B x)) (f0 f1:(x : A) -> B x) : Id ((x:A)-> B x) f0 f1 \r
-  = <i> \ (x:A) -> (h x (f0 x) (f1 x)) @ i\r
-\r
 isGroupoidS1 : groupoid S1 = lem\r
  where\r
   lem2 : (y : S1) -> set (Id S1 base y)\r
index 6e749f1c74272c5ac1ed365ab08bf316c4d139de..23d17e2a7577de58fcd24e072cd32158cf3cef50 100644 (file)
@@ -98,6 +98,7 @@ constSquare (A : U) (a : A) (p : Id A a a) : Square A a a p a a p p p =
 
 prop (A : U) : U = (a b : A) -> Id A a b
 set (A : U) : U = (a b : A) -> prop (Id A a b)
+groupoid (A : U) : U = (a b : A) -> set (Id A a b)
 
 propSet (A : U) (h : prop A) (a b : A) (p q : Id A a b) : Id (Id A a b) p q =
  <j i> comp A a [ (i=0) -> h a a
@@ -111,6 +112,10 @@ propIsProp (A : U) (f g : prop A) : Id (prop A) f g =
 setIsProp (A : U) (f g : set A) : Id (set A) f g =
  <i> \(a b :A) -> (propIsProp (Id A a b) (f a b) (g a b)) @ i
 
+propPi (A : U) (B : A -> U) (h : (x : A) -> prop (B x))
+       (f0 f1 : (x : A) -> B x) : Id ((x : A) -> B x) f0 f1 
+  = <i> \ (x:A) -> (h x (f0 x) (f1 x)) @ i
+
 IdS (A : U) (P : A -> U) (a0 a1 : A) (p : Id A a0 a1) (u0 : P a0) (u1 : P a1) : U =
   IdP (<i> P (p @ i)) u0 u1
 
diff --git a/examples/uafunext.ctt b/examples/uafunext.ctt
deleted file mode 100644 (file)
index 0c34054..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-module uafunext where
-
-import prelude
-
-diag (A : U) : U = (xy : ((_ : A) * A)) * (Id A xy.1 xy.2)
-
-pi1 (A : U) (d : diag A) : A = d.1.1
-pi2 (A : U) (d : diag A) : A = d.1.2
-toDiag (A : U) (a : A) : diag A = ((a,a),refl A a)
-
-toDiagK1 (A : U) : (x : diag A) -> Id (diag A) (toDiag A (pi1 A x)) x = undefined
-pi1K (A : U) : (x : A) -> Id A (pi1 A (toDiag A x)) x = undefined
-
--- toDiagK2 (A : U) : (x : diag A) -> Id (diag A) (toDiag A (pi2 A x)) x = undefined
--- pi2K (A : U) : (x : A) -> Id A (pi2 A (toDiag A x)) x = undefined
-
--- elimIso (A : U) (P : (B : U) -> (A -> B) -> (B -> A) -> U)
---         (p : P A (idfun A) (idfun A))
---     (B : U) (f : A -> B) (g : B -> A)
---         (s : (y : B) -> Id B (f (g y)) y)
---         (t : (x : A) -> Id A (g (f x)) x) : P B f g = undefined
-
-lem (A B : U) (f : A -> B) (g : B -> A)
-      (s : (y : B) -> Id B (f (g y)) y)
-      (t : (x : A) -> Id A (g (f x)) x)
-      (C : U) (d e : C -> A)
-      (p : Id (C -> B) (\(x : C) -> f (d x)) (\(x : C) -> f (e x)))
-      : Id (C -> A) d e = undefined
-
-uaFunExt (A B : U) (f g : A -> B) (p : (x : A) -> Id B (f x) (g x)) :
-         Id (A -> B) f g = suff
-  where
-  d (a : A) : diag B = ((f a,f a),refl B (f a))
-  e (a : A) : diag B = ((f a,g a),p a)
-
-  -- By eta it suffices to prove:
-  suff : Id (A -> B) (\(x : A) -> pi2 B (d x)) (\(x : A) -> pi2 B (e x)) =
-    subst (A -> diag B)
-      (\(f : A -> diag B) -> Id (A -> B) (\(x : A) -> pi2 B (d x)) (\(x : A) -> pi2 B (f x)))
-      d e eq_de (<i> \(x : A) -> pi2 B (d x))
-    where
-    -- This is the key fact:
-    eq_de : Id (A -> diag B) d e =
-      lem (diag B) B (pi1 B) (toDiag B) (pi1K B) (toDiagK1 B) A d e (<i> \(x : A) -> f x)
-
similarity index 97%
rename from examples/funext.ctt
rename to examples/uafunext1.ctt
index 60e50f5cf01a47853312e9cac3f6b34d8efc7290..fbf840c6c2b9f13df30f5f7d4782b47bdc098421 100644 (file)
@@ -1,4 +1,4 @@
-module funext where\r
+module uafunext1 where\r
 \r
 import prelude\r
 \r