\r
import prelude\r
\r
-const (A : U) (f : A -> A) : U = (x y : A) -> Id A (f x) (f y)\r
-\r
-decEqCong (A B : U) (f : A -> B) (g : B -> A) : dec A -> dec B = split\r
- inl a -> inl (f a)\r
- inr h -> inr (\ (b:B) -> h (g b))\r
-\r
-exConst (A : U) : U = (f:A -> A) * const A f\r
-\r
-decConst (A : U) : dec A -> exConst A = split\r
- inl a -> (\ (x:A) -> a, \ (x y:A) -> refl A a)\r
- inr h -> (\ (x:A) -> x, \ (x y:A) -> efq (Id A x y) (h x))\r
-\r
hedbergLemma (A: U) (f : (a b : A) -> Id A a b -> Id A a b) (a :A) :\r
(b : A) (p : Id A a b) ->\r
Id (Id A a b) (compId A a a b (f a a (refl A a)) p) (f a b p) =\r
\r
import prelude\r
\r
-const (A : U) (f : A -> A) : U = (x y : A) -> Id A (f x) (f y)\r
-\r
-decEqCong (A B : U) (f : A -> B) (g : B -> A) : dec A -> dec B = split\r
- inl a -> inl (f a)\r
- inr h -> inr (\ (b:B) -> h (g b))\r
-\r
-exConst (A : U) : U = (f:A -> A) * const A f\r
-\r
-stableConst (A : U) (sA: stable A) : exConst A = \r
- (\ (x:A) -> sA (dNeg A x),\ (x y:A) -> <i>sA (propNeg (neg A) (dNeg A x) (dNeg A y) @ i))\r
-\r
hedbergLemma (A: U) (a b:A) (f : (x : A) -> Id A a x -> Id A a x) (p : Id A a b) :\r
Square A a a (refl A a) a b p (f a (refl A a)) (f b p) = \r
transport (<i>Square A a a (refl A a) a (p@i) (<j>p@i/\j) (f a (refl A a)) (f (p@i) (<j>p@i/\j)))\r
import retract
-propUnit : prop Unit = rem
- where rem1 : (x:Unit) -> Id Unit x tt = split tt -> refl Unit tt
- rem (x:Unit) : (y:Unit) -> Id Unit x y = split tt -> rem1 x
-
-setUnit : set Unit = propSet Unit propUnit
-
propSingl (A:U) (a:A) (u v : singl A a) : Id (singl A a) u v =
compId (singl A a) u (a,refl A a) v (<i>(contrSingl A a u.1 u.2)@-i) (contrSingl A a v.1 v.2)
data Unit = tt
+propUnit : prop Unit = rem
+ where rem1 : (x:Unit) -> Id Unit x tt = split tt -> refl Unit tt
+ rem (x:Unit) : (y:Unit) -> Id Unit x y = split tt -> rem1 x
+
+setUnit : set Unit = propSet Unit propUnit
+
data or (A B : U) = inl (a : A)
| inr (b : B)
stable (A:U) : U = neg (neg A) -> A
+const (A : U) (f : A -> A) : U = (x y : A) -> Id A (f x) (f y)
+
+exConst (A : U) : U = (f:A -> A) * const A f
+
+
+propN0 : prop N0 = \ (x y:N0) -> efq (Id N0 x y) x
+
+propNeg (A:U) : prop (neg A) = \ (f g:neg A) -> <i>\(x:A) -> (propN0 (f x) (g x))@i
+
+dNeg (A:U) (a:A) : neg (neg A) = \ (h : neg A) -> h a
+
dec (A : U) : U = or A (neg A)
+decEqCong (A B : U) (f : A -> B) (g : B -> A) : dec A -> dec B = split
+ inl a -> inl (f a)
+ inr h -> inr (\ (b:B) -> h (g b))
+
decStable (A:U) : dec A -> stable A = split
inl a -> \ (h :neg (neg A)) -> a
inr b -> \ (h :neg (neg A)) -> efq A (h b)
+decConst (A : U) : dec A -> exConst A = split
+ inl a -> (\ (x:A) -> a, \ (x y:A) -> refl A a)
+ inr h -> (\ (x:A) -> x, \ (x y:A) -> efq (Id A x y) (h x))
+
+stableConst (A : U) (sA: stable A) : exConst A =
+ (\ (x:A) -> sA (dNeg A x),\ (x y:A) -> <i>sA (propNeg (neg A) (dNeg A x) (dNeg A y) @ i))
+
discrete (A : U) : U = (a b : A) -> dec (Id A a b)
injective (A B : U) (f : A -> B) : U =
import helix
import susp
import ex1
-import integer
import setTrunc
-import newhedberg
import prop
import quotient
import torus
import s2
import uafunext1
-import list
\ No newline at end of file
+import list
+import hedberg
+import newhedberg
+import other
+-- integer has to be after hedberg as it redefines neg
+import integer