{-# OPTIONS --without-K --exact-split --two-level #-}
module Extension.WeakGlueUA where
open import Extension.Prelude
open import Extension.GlueRules using (WeakGlue)
open import Extension.UAFromSection using (ua-from-section)
private
variable
āI : Level
module _ (I : UUįµ āI) (0I 1I : I) (š¤ : Level)
(coe : (G : I ā UU š¤) ā G 0I ā G 1I)
(path-univ : (G : I ā UU š¤) ā Id (G 0I) (G 1I))
(c1 : (G : I ā UU š¤) (x : G 0I) ā Id (coe G x) (pr1 (idtoeqv (path-univ G)) x))
(c2 : (G H : I ā UU š¤) (Īø : (t : I) ā G t ā H t) (x : G 0I)
ā Id (Īø 1I (coe G x)) (coe H (Īø 0I x)))
(c3 : (Y : UU š¤) (x : Y) ā Id (coe (Ī» _ ā Y) x) x)
where
private
idtoeqv-Ā· : {X Y Z : UU š¤} (p : Id X Y) (q : Id Y Z) (x : X)
ā Id (pr1 (idtoeqv (p Ā· q)) x) (pr1 (idtoeqv q) (pr1 (idtoeqv p) x))
idtoeqv-Ā· refl q x = refl
idtoeqv-inv-sec : {X Y : UU š¤} (p : Id X Y) (x : Y)
ā Id (pr1 (idtoeqv p) (pr1 (idtoeqv (p ā»Ā¹)) x)) x
idtoeqv-inv-sec refl x = refl
weak-glue-implies-ua : WeakGlue I 0I 1I š¤
ā (A B : UU š¤) ā isEquiv (idtoeqv {A = A} {B = B})
weak-glue-implies-ua wg = ua-from-section secmap sect
where
secmap : (A B : UU š¤) ā (A ā B) ā Id A B
secmap A B g = ((ic bā) ā»Ā¹) Ā· (path-univ G Ā· ic bā)
where
w = wg A B (c g)
G = pr1įµ w
bā = pr1įµ (pr2įµ w)
bā = pr1įµ (pr2įµ (pr2įµ w))
sect : (A B : UU š¤) (g : A ā B) ā Id (idtoeqv (secmap A B g)) g
sect A B g = dep-pairā¼ _ _ (funext ptwise , pr1 (is-prop-isEquiv (pr1 g) _ _))
where
w = wg A B (c g)
G = pr1įµ w
bā = pr1įµ (pr2įµ w)
bā = pr1įµ (pr2įµ (pr2įµ w))
u = pr1įµ (pr2įµ (pr2įµ (pr2įµ w)))
Hā = ic (pr1įµ (pr2įµ (pr2įµ (pr2įµ (pr2įµ w)))))
Hā = ic (pr2įµ (pr2įµ (pr2įµ (pr2įµ (pr2įµ w)))))
βā = ic bā
βā = ic bā
P = path-univ G
uf : (t : I) ā G t ā B
uf t = ic (u t)
ptwise : (x : A) ā Id (pr1 (idtoeqv (secmap A B g)) x) (pr1 g x)
ptwise x = chain0 Ā· (step1 Ā· (step2 Ā· (step3 Ā· (step4 Ā· step5))))
where
y : G 0I
y = pr1 (idtoeqv (βā ā»Ā¹)) x
chain0 : Id (pr1 (idtoeqv (secmap A B g)) x) (pr1 (idtoeqv βā) (coe G y))
chain0 = idtoeqv-Ā· (βā ā»Ā¹) (P Ā· βā) x
Ā· (idtoeqv-Ā· P βā y
Ā· ap (pr1 (idtoeqv βā)) ((c1 G y) ā»Ā¹))
step1 : Id (pr1 (idtoeqv βā) (coe G y)) (uf 1I (coe G y))
step1 = (Hā (coe G y)) ā»Ā¹
step2 : Id (uf 1I (coe G y)) (coe (Ī» _ ā B) (uf 0I y))
step2 = c2 G (Ī» _ ā B) uf y
step3 : Id (coe (Ī» _ ā B) (uf 0I y)) (uf 0I y)
step3 = c3 B (uf 0I y)
step4 : Id (uf 0I y) (pr1 g (pr1 (idtoeqv βā) y))
step4 = Hā y
step5 : Id (pr1 g (pr1 (idtoeqv βā) y)) (pr1 g x)
step5 = ap (pr1 g) (idtoeqv-inv-sec βā x)