mkIso vb = eval rho $\r
Sigma $ Lam "a" U $\r
Sigma $ Lam "f" (Pi (Lam "_" a b)) $\r
- Sigma $ Lam "b" (Pi (Lam "_" b a)) $\r
+ Sigma $ Lam "g" (Pi (Lam "_" b a)) $\r
Sigma $ Lam "s" (Pi (Lam "y" b $ IdP (Path (Name "_") b) (App f (App g y)) y)) $\r
Pi (Lam "x" a $ IdP (Path (Name "_") a) (App g (App f x)) x)\r
where [a,b,f,g,x,y] = map Var ["a","b","f","g","x","y"]\r
fIsCenter (y : B) (w : fiber A B f y) : Id (fiber A B f y) (fCenter y) w =
lemIso A B f g s t y (fCenter y).1 w.1 (fCenter y).2 w.2
--- Using gradLemma we get that any isomorphism gives a line in the universe
-isoId (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) : Id U A B =
- <i> glue B [ (i = 0) -> (A,f,gradLemma A B f g s t)
- , (i = 1) -> (B,transDelta B) ]
-
-- OLD CODE:
-- lemIso with equalities on other direction:
(a0 a1 : A) -> Id B (f a0) (f a1) -> Id A a0 a1
and (A B : U) : U = (_ : A) * B
+
+
+isoId (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) : Id U A B =
+ <i> glue B [ (i = 0) -> (A,f,g,s,t)
+ , (i = 1) -> (B,idfun B,idfun B,refl B,refl B) ]