From 66cb5b363dcce2edd2f211ad1ebef5ba3acc8c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederik=20Hangh=C3=B8j=20Iversen?= Date: Tue, 20 Mar 2018 13:26:40 +0100 Subject: [PATCH] [WIP] Finnish all intermediate steps for univalence of hSets --- src/Cat/Categories/Sets.agda | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Cat/Categories/Sets.agda b/src/Cat/Categories/Sets.agda index b8c83e5..0c7f420 100644 --- a/src/Cat/Categories/Sets.agda +++ b/src/Cat/Categories/Sets.agda @@ -221,17 +221,25 @@ module _ (ℓ : Level) where step0 = lem3 (λ f → sym≃ (lem4 sA sB f)) -- univalence step1 : Σ (A → B) (isEquiv A B) ≃ (A ≡ B) - step1 = - let + step1 = hh ⊙ h + where h : (A ≃ B) ≃ (A ≡ B) h = sym≃ (univalence {A = A} {B}) - k : Σ _ (isEquiv (A ≃ B) (A ≡ B)) - k = Eqv.doEta h + obv : Σ (A → B) (isEquiv A B) → A ≃ B + obv = Eqv.deEta + inv : A ≃ B → Σ (A → B) (isEquiv A B) + inv = Eqv.doEta + re-ve : (x : _) → (inv ∘ obv) x ≡ x + re-ve x = refl + -- Because _≃_ does not have eta equality! + ve-re : (x : _) → (obv ∘ inv) x ≡ x + ve-re (con eqv isEqv) i = con eqv isEqv + areInv : AreInverses obv inv + areInv = record { verso-recto = funExt re-ve ; recto-verso = funExt ve-re } eqv : Σ (A → B) (isEquiv A B) Eqv.≅ (A ≃ B) - eqv = {!!} , {!!} , {!!} + eqv = obv , inv , areInv hh : Σ (A → B) (isEquiv A B) ≃ (A ≃ B) hh = Eeq.fromIsomorphism eqv - in hh ⊙ h -- lem2 with propIsSet step2 : (A ≡ B) ≃ (hA ≡ hB)