Initial objects are also propositional
This commit is contained in:
parent
52ac9b4b78
commit
ffedb83210
|
@ -253,7 +253,11 @@ record IsCategory {ℓa ℓb : Level} (ℂ : RawCategory ℓa ℓb) : Set (lsuc
|
||||||
res : (fx , cx) ≡ (fy , cy)
|
res : (fx , cx) ≡ (fy , cy)
|
||||||
res i = fp i , cp i
|
res i = fp i , cp i
|
||||||
|
|
||||||
-- this needs the univalence of the category
|
-- | Terminal objects are propositional - a.k.a uniqueness of terminal
|
||||||
|
-- | objects.
|
||||||
|
--
|
||||||
|
-- Having two terminal objects induces an isomorphism between them - and
|
||||||
|
-- because of univalence this is equivalent to equality.
|
||||||
propTerminal : isProp Terminal
|
propTerminal : isProp Terminal
|
||||||
propTerminal Xt Yt = res
|
propTerminal Xt Yt = res
|
||||||
where
|
where
|
||||||
|
@ -302,7 +306,36 @@ record IsCategory {ℓa ℓb : Level} (ℂ : RawCategory ℓa ℓb) : Set (lsuc
|
||||||
res i = fp i , cp i
|
res i = fp i , cp i
|
||||||
|
|
||||||
propInitial : isProp Initial
|
propInitial : isProp Initial
|
||||||
propInitial = {!!}
|
propInitial Xi Yi = {!!}
|
||||||
|
where
|
||||||
|
open Σ Xi renaming (proj₁ to X ; proj₂ to Xii)
|
||||||
|
open Σ Yi renaming (proj₁ to Y ; proj₂ to Yii)
|
||||||
|
open Σ (Xii {Y}) renaming (proj₁ to Y→X) using ()
|
||||||
|
open Σ (Yii {X}) renaming (proj₁ to X→Y) using ()
|
||||||
|
open import Cat.Equivalence hiding (_≅_)
|
||||||
|
-- Need to show `left` and `right`, what we know is that the arrows are
|
||||||
|
-- unique. Well, I know that if I compose these two arrows they must give
|
||||||
|
-- the identity, since also the identity is the unique such arrow (by X
|
||||||
|
-- and Y both being terminal objects.)
|
||||||
|
Xprop : isProp (Arrow X X)
|
||||||
|
Xprop f g = trans (sym (snd Xii f)) (snd Xii g)
|
||||||
|
Yprop : isProp (Arrow Y Y)
|
||||||
|
Yprop f g = trans (sym (snd Yii f)) (snd Yii g)
|
||||||
|
left : Y→X ∘ X→Y ≡ 𝟙
|
||||||
|
left = Yprop _ _
|
||||||
|
right : X→Y ∘ Y→X ≡ 𝟙
|
||||||
|
right = Xprop _ _
|
||||||
|
iso : X ≅ Y
|
||||||
|
iso = Y→X , X→Y , right , left
|
||||||
|
fromIso : X ≅ Y → X ≡ Y
|
||||||
|
fromIso = fst (Equiv≃.toIso (X ≡ Y) (X ≅ Y) univalent)
|
||||||
|
p0 : X ≡ Y
|
||||||
|
p0 = fromIso iso
|
||||||
|
p1 : (λ i → IsInitial (p0 i)) [ Xii ≡ Yii ]
|
||||||
|
p1 = lemPropF propIsInitial p0
|
||||||
|
res : Xi ≡ Yi
|
||||||
|
res i = p0 i , p1 i
|
||||||
|
|
||||||
|
|
||||||
-- | Propositionality of being a category
|
-- | Propositionality of being a category
|
||||||
module _ {ℓa ℓb : Level} (ℂ : RawCategory ℓa ℓb) where
|
module _ {ℓa ℓb : Level} (ℂ : RawCategory ℓa ℓb) where
|
||||||
|
|
Loading…
Reference in a new issue