module category-theory.concrete-category where
open import foundations.universe open import foundations.proposition open import foundations.sigma-type open import category-theory.category open import category-theory.displayed-category
具体圏はdisplayed categoryを用いて定義する。こうすると、忠実関手を使った定義と比べて、具体関手の定義において対象間の「等価性」に言及せずに済む。
isConcreteCategory : ∀ {o h} {𝒞 : Category o h}
→ ∀ {o′ h′} (𝒟 : DisplayedCategory 𝒞 o′ h′)
→ Type (o ⊔ h ⊔ o′ ⊔ h′)
isConcreteCategory {𝒞 = 𝒞} 𝒟 =
∀ {A B} {f : 𝒞.Hom A B} {X Y} → isProp (Hom f X Y)
where
open DisplayedCategory 𝒟
module 𝒞 = Category 𝒞
ConcreteCategory : ∀ {o h} (𝒞 : Category o h) o′ h′
→ Type (o ⊔ h ⊔ lsuc o′ ⊔ lsuc h′)
ConcreteCategory 𝒞 o′ h′ =
Σ (DisplayedCategory 𝒞 o′ h′) isConcreteCategory