Progress on univalence

This commit is contained in:
Frederik Hanghøj Iversen 2018-04-13 09:40:09 +02:00
parent 5bbb40b664
commit 0ced448fa6
2 changed files with 64 additions and 27 deletions

View file

@ -344,25 +344,25 @@ module _ {a b : Level} ( : RawCategory a b) where
pq : Arrow a b Arrow a' b'
pq i = Arrow (p i) (q i)
U : b'' b b'' Set _
U b'' q' = coe (λ i Arrow a (q' i)) f fst (idToIso _ _ q') <<< f <<< (fst (snd (idToIso _ _ refl)))
u : coe (λ i Arrow a b) f fst (idToIso _ _ refl) <<< f <<< (fst (snd (idToIso _ _ refl)))
u = begin
coe refl f ≡⟨ id-coe
f ≡⟨ sym leftIdentity
identity <<< f ≡⟨ sym rightIdentity
identity <<< f <<< identity ≡⟨ cong (λ φ identity <<< f <<< φ) lem
identity <<< f <<< (fst (snd (idToIso _ _ refl))) ≡⟨ cong (λ φ φ <<< f <<< (fst (snd (idToIso _ _ refl)))) lem
fst (idToIso _ _ refl) <<< f <<< (fst (snd (idToIso _ _ refl)))
where
lem : {x} PathP (λ _ Arrow x x) identity (fst (idToIso x x refl))
lem = sym (subst-neutral {P = λ x Arrow x x})
U : b'' b b'' Set _
U b'' q' = coe (λ i Arrow a (q' i)) f fst (idToIso _ _ q') <<< f <<< (fst (snd (idToIso _ _ refl)))
u : coe (λ i Arrow a b) f fst (idToIso _ _ refl) <<< f <<< (fst (snd (idToIso _ _ refl)))
u = begin
coe refl f ≡⟨ id-coe
f ≡⟨ sym leftIdentity
identity <<< f ≡⟨ sym rightIdentity
identity <<< f <<< identity ≡⟨ cong (λ φ identity <<< f <<< φ) lem
identity <<< f <<< (fst (snd (idToIso _ _ refl))) ≡⟨ cong (λ φ φ <<< f <<< (fst (snd (idToIso _ _ refl)))) lem
fst (idToIso _ _ refl) <<< f <<< (fst (snd (idToIso _ _ refl)))
where
lem : {x} PathP (λ _ Arrow x x) identity (fst (idToIso x x refl))
lem = sym subst-neutral
D : a'' a a'' Set _
D a'' p' = coe (λ i Arrow (p' i) (q i)) f fst (idToIso b b' q) <<< f <<< (fst (snd (idToIso _ _ p')))
D : a'' a a'' Set _
D a'' p' = coe (λ i Arrow (p' i) (q i)) f fst (idToIso b b' q) <<< f <<< (fst (snd (idToIso _ _ p')))
d : coe (λ i Arrow a (q i)) f fst (idToIso b b' q) <<< f <<< (fst (snd (idToIso _ _ refl)))
d = pathJ U u b' q
d : coe (λ i Arrow a (q i)) f fst (idToIso b b' q) <<< f <<< (fst (snd (idToIso _ _ refl)))
d = pathJ U u b' q
9-1-9 : coe pq f q* <<< f <<< p~
9-1-9 = pathJ D d a' p

View file

@ -258,22 +258,45 @@ module Try0 {a b : Level} { : Category a b}
r-arrow i = .Arrow (r i) A
t : coe r-arrow xa .identity .<<< xa .<<< f~
t = {!? ≡ ?!}
lem : {x} .idToIso _ _ (.isoToId x) x
lem {x} i = snd .inverse-from-to-iso' i x
lem : {A B} {x : A .≅ B} .idToIso A B (.isoToId x) x
lem = λ{ {x = x} i snd .inverse-from-to-iso' i x}
lem' : {A B} {x : A B} .isoToId (.idToIso _ _ x) x
lem' = λ{ {x = x} i fst .inverse-from-to-iso' i x}
h : ya xa .<<< f~
h = begin
ya ≡⟨ {!!}
coe r-arrow xa
ya ≡⟨ sym (coe-lem p)
coe r-arrow xa
≡⟨ .9-1-9 r refl xa
fst (.idToIso _ _ refl) .<<< xa .<<< fst (snd (.idToIso _ _ r))
≡⟨ cong (λ φ φ .<<< xa .<<< fst (snd (.idToIso _ _ r))) (subst-neutral {P = λ x .Arrow x x})
≡⟨ cong (λ φ φ .<<< xa .<<< fst (snd (.idToIso _ _ r))) subst-neutral
.identity .<<< xa .<<< fst (snd (.idToIso _ _ r))
≡⟨ cong (λ φ .identity .<<< xa .<<< φ) (cong (λ x (fst (snd x))) lem)
.identity .<<< xa .<<< f~
≡⟨ cong (._<<< f~) .leftIdentity
xa .<<< f~
complicated : Y X
complicated = (λ z sym (.isoToId (f , f~ , inv-f)) z)
in
( f , {!h!} , {!!})
( f , (begin
[ ya f ] ≡⟨⟩
ya .<<< f ≡⟨ sym .leftIdentity
.identity .<<< (ya .<<< f)
≡⟨ .isAssociative
.identity .<<< ya .<<< f
≡⟨ cong (λ φ φ .<<< ya .<<< f) (sym subst-neutral)
fst (.idToIso _ _ refl) .<<< ya .<<< f
≡⟨ cong (λ φ fst (.idToIso _ _ refl) .<<< ya .<<< φ)
(begin
f ≡⟨ {!cong (λ x → (fst (snd x))) ((lem {x = f~ , f , swap inv-f}))!}
-- f ≡⟨ cong fst (sym (lem {f , f~ , inv-f})) ⟩
-- fst ( .idToIso X Y ( .isoToId (f , f~ , inv-f))) ≡⟨ {!fst inv-f!} ⟩
fst (snd (.idToIso Y X (λ z sym (.isoToId (f , f~ , inv-f)) z))) )
_ .<<< ya .<<< fst (snd (.idToIso _ _ _))
≡⟨ sym (.9-1-9 (sym r) refl ya)
coe (sym r-arrow) ya
≡⟨ coe-lem (λ i p (~ i))
xa ) , {!!})
, ( f~ , sym h , {!!})
, lemA (fst inv-f)
, lemA (snd inv-f)
@ -283,14 +306,28 @@ module Try0 {a b : Level} { : Category a b}
let
iso : X .≅ Y
iso = fst f , fst f~ , cong fst inv-f , cong fst inv-f~
helper : PathP (λ i .Arrow (.isoToId {!!} i) A) xa ya
helper = {!!}
in iso , helper , {!!}})
p : X Y
p = .isoToId iso
lem : xa _
lem = begin
xa ≡⟨ sym (fst (snd f))
ya .<<< fst f ≡⟨ sym .leftIdentity
.identity .<<< (ya .<<< fst f) ≡⟨ .isAssociative
.identity .<<< ya .<<< fst f ≡⟨ {!sym (.9-1-9 ? refl ya)!}
_ .<<< ya .<<< _ ≡⟨ sym (.9-1-9 (sym p) refl ya)
coe (λ i .Arrow (p (~ i)) A) ya
lem0 = begin
xa ≡⟨ {!!}
coe _ xa ≡⟨ {!!}
ya .<<< fst f
helper : PathP (λ i .Arrow (p i) A) xa ya
helper = {!snd f!}
in iso , ? , {!!}})
, record
{ fst = funExt (λ x lemSig
(λ x propSig prop0 (λ _ prop1))
_ _
(Σ≡ {!!} (.propIsomorphism _ _ _)))
(Σ≡ {!!} (.propIsomorphism _ _ _)))
; snd = funExt (λ{ (f , _) lemSig propIsomorphism _ _ {!refl!}})
}
where