{-# OPTIONS --without-K #-} module segal.univalence where open import equality open import hott.equivalence open import sum open import segal.composition open import segal.identities module _ {i} (W : Wild₃ i) where open WildOps₃ W module _ (Wid : HasId₂ W|2) where open HasId₂ Wid LInv : {x y : obj 𝓒} → hom 𝓒 x y → Set i LInv {x}{y} f = Σ (hom 𝓒 y x) λ g → g ∘ f ≡ id x RInv : {x y : obj 𝓒} → hom 𝓒 x y → Set i RInv {x}{y} f = Σ (hom 𝓒 y x) λ g → f ∘ g ≡ id y IsIso : {x y : obj 𝓒} → hom 𝓒 x y → Set i IsIso f = LInv f × RInv f Iso : obj 𝓒 → obj 𝓒 → Set i Iso x y = Σ (hom 𝓒 x y) IsIso id-equiv : (x : obj 𝓒) → Iso x x id-equiv x = id x , (id x , id-λ _ _ (id x)) , (id x , id-λ _ _ (id x)) id-to-iso : (x y : obj 𝓒) → (x ≡ y) → Iso x y id-to-iso x .x refl = id-equiv x IsUnivalent : Set i IsUnivalent = (x y : obj 𝓒) → weak-equiv (id-to-iso x y)