module Cat.Instances.StrictCat where
open Product
open is-product
open Precategory
open Functor
private variable
: Level o h
The category of strict categoriesπ
Recall that a precategory is said strict
if its space of objects is a Set
. While general
precategories are too homotopically interesting to fit into a Precategory
(because functor spaces will
not, in general, be h-sets), the strict categories do form a
precategory, which we denote
private unquoteDecl eqv = declare-record-iso eqv (quote Functor)
: β {o h} {C D : Precategory o h} β is-set (Ob D)
Functor-is-set β is-set (Functor C D)
{o = o} {h} {C} {D} dobset = Isoβis-hlevel! 2 eqv where instance
Functor-is-set : H-Level (Ob D) 2
Dob = basic-instance 2 dobset Dob
: β o h β Precategory _ _
Strict-cats .Ob = Ξ£[ C β Precategory o h ] (is-strict C)
Strict-cats o h .Hom (C , _) (D , _) = Functor C D
Strict-cats o h .id = Id
Strict-cats o h ._β_ = _Fβ_
Strict-cats o h .idr _ = Functor-path (Ξ» _ β refl) Ξ» _ β refl
Strict-cats o h .idl _ = Functor-path (Ξ» _ β refl) Ξ» _ β refl
Strict-cats o h .assoc _ _ _ = Functor-path (Ξ» _ β refl) Ξ» _ β refl Strict-cats o h
This assembles into a Precategory
because the only bit of a
Functor
that doesnβt have a fixed
h-level is the object mapping; By asking that D
be a strict category, this fixes the
functors to be sets.
.Hom-set _ (D , dset) = Functor-is-set dset Strict-cats o h
Productsπ
We prove that Strict-cats
has
products. This is because
is
and h-levels are closed under products.
Strict-cats-products: {C D : Precategory o h}
β (cob : is-set (Ob C)) (dob : is-set (Ob D))
β Product (Strict-cats o h) (C , cob) (D , dob)
{C = C} {D = D} cob dob = prod where
Strict-cats-products : Product (Strict-cats _ _) (C , cob) (D , dob)
prod .apex = C ΓαΆ D , Γ-is-hlevel 2 cob dob
prod .Οβ = Fst {C = C} {D = D}
prod .Οβ = Snd {C = C} {D = D}
prod .has-is-product .β¨_,_β© p q = Catβ¨ p , q β©
prod .has-is-product .Οβββ¨β© = Functor-path (Ξ» _ β refl) Ξ» _ β refl
prod .has-is-product .Οβββ¨β© = Functor-path (Ξ» _ β refl) Ξ» _ β refl
prod .has-is-product .unique p q =
prod (Ξ» x i β Fβ (p i) x , Fβ (q i) x) Ξ» f i β Fβ (p i) f , Fβ (q i) f Functor-path