{-# OPTIONS --without-K --safe #-}
open import Level
open import Categories.Category.Core using (Category)
module Categories.Object.StrictInitial {o ℓ e} (C : Category o ℓ e) where
open Category C
open import Categories.Morphism C using (Epi; _≅_)
open import Categories.Object.Initial C
record IsStrictInitial (⊥ : Obj) : Set (o ⊔ ℓ ⊔ e) where
field
is-initial : IsInitial ⊥
open IsInitial is-initial public
field
is-strict : ∀ {A} → A ⇒ ⊥ → A ≅ ⊥
open IsStrictInitial
record StrictInitial : Set (o ⊔ ℓ ⊔ e) where
field
⊥ : Obj
is-strict-initial : IsStrictInitial ⊥
initial : Initial
initial .Initial.⊥ = ⊥
initial .Initial.⊥-is-initial = is-strict-initial .is-initial
open Initial initial public