module Cat.Displayed.Instances.Functor where
Displayed functor (pre)categories🔗
Just as the functors between precategories and form a precategory the displayed functors between displayed precategories and over and form a displayed precategory over with displayed natural transformations as morphisms. The construction is analogous to the non-displayed functor category. For instance, we define identity displayed natural transformations by
module _ {oa ℓa ob ℓb oe ℓe of ℓf} {A : Precategory oa ℓa} {B : Precategory ob ℓb} {ℰ : Displayed A oe ℓe} {ℱ : Displayed B of ℓf} where private variable F G H : Functor A B F' : Displayed-functor F ℰ ℱ G' : Displayed-functor G ℰ ℱ H' : Displayed-functor H ℰ ℱ module A = Cr A module B = Cr B module ℱ = Dr ℱ module ℰ = Dr ℰ
idnt' : F' =[ idnt ]=> F' idnt' .η' _ = ℱ.id' idnt' .is-natural' _ _ _ = ℱ.to-pathp[] ℱ.id-comm-sym[]
Composition of displayed natural transformations is defined by
_∘nt'_ : ∀ {α β} → G' =[ α ]=> H' → F' =[ β ]=> G' → F' =[ α ∘nt β ]=> H' (α' ∘nt' β') .η' x' = α' .η' x' ℱ.∘' β' .η' x' _∘nt'_ {G' = G'} {H' = H'} {F' = F'} {α = α} {β = β} α' β' .is-natural' {x} {y} {f} x' y' f' = ℱ.begin[] (α' .η' y' ℱ.∘' β' .η' y') ℱ.∘' F₁' F' f' ℱ.≡[]⟨ ℱ.pullr[] (β .is-natural x y f) (is-natural' β' x' y' f') ⟩ℱ.≡[] α' .η' y' ℱ.∘' ₁' G' f' ℱ.∘' β' .η' x' ℱ.≡[]⟨ ℱ.extendl[] (α .is-natural x y f) (is-natural' α' x' y' f') ⟩ℱ.≡[] ₁' H' f' ℱ.∘' α' .η' x' ℱ.∘' β' .η' x' ℱ.∎[]
We then define the displayed category over so that an object over is a displayed functor over and a displayed natural transformation over is a morphism over
module _ {oa ℓa ob ℓb oe ℓe of ℓf} {A : Precategory oa ℓa} {B : Precategory ob ℓb} (ℰ : Displayed A oe ℓe) (ℱ : Displayed B of ℓf) where private module ℱ = Dr ℱ
DisCat[_,_] : Displayed Cat[ A , B ] (oa ⊔ ℓa ⊔ oe ⊔ ℓe ⊔ of ⊔ ℓf) (oa ⊔ ℓa ⊔ oe ⊔ ℓe ⊔ ℓf) DisCat[_,_] .Ob[_] F = Displayed-functor F ℰ ℱ DisCat[_,_] .Hom[_] α F' G' = F' =[ α ]=> G' DisCat[_,_] .Hom[_]-set α F' G' = hlevel 2 DisCat[_,_] .id' = idnt' DisCat[_,_] ._∘'_ = _∘nt'_ DisCat[_,_] .idr' α' = Nat'-path λ x' → ℱ.idr' (η' α' x') DisCat[_,_] .idl' α' = Nat'-path λ x' → ℱ.idl' (η' α' x') DisCat[_,_] .assoc' α' β' γ' = Nat'-path λ x' → ℱ.assoc' (η' α' x') (η' β' x') (η' γ' x') DisCat[_,_] .hom[_] {x = F'} {G'} p α' = record { η' = λ {x} x' → ℱ.hom[ p ηₚ x ] (α' .η' x') ; is-natural' = λ {x} {y} {f} x' y' f' → ℱ.begin[] ℱ.hom[ p ηₚ y ] (α' .η' y') ℱ.∘' ₁' F' f' ℱ.≡[]⟨ ℱ.unwrapl (p ηₚ y) ⟩ℱ.≡[] α' .η' y' ℱ.∘' ₁' F' f' ℱ.≡[]⟨ α' .is-natural' x' y' f' ⟩ℱ.≡[] ₁' G' f' ℱ.∘' α' .η' x' ℱ.≡[]⟨ ℱ.wrapr (p ηₚ x) ⟩ℱ.≡[] ₁' G' f' ℱ.∘' ℱ.hom[ p ηₚ x ] (α' .η' x') ℱ.∎[] } DisCat[_,_] .coh[_] p α' = Nat'-path λ {x} x' → ℱ.coh[ p ηₚ x ] (η' α' x')