module Cat.Displayed.Adjoint where
Displayed adjunctionsπ
Following the general theme of defining displayed structure over 1-categorical structure, we can define a notion of displayed adjoint functors.
Let be categories displayed over resp. Furthermore, let and be a pair of adjoint functors. We say 2 displayed functors over and resp. are displayed adjoint functors if we have displayed natural transformations and displayed over the unit and counit of the adjunction in the base that satisfy the usual triangle identities.
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} {L : Functor A B} {R : Functor B A} where private module β° = Displayed β° module β± = Displayed β± open Displayed-functor lvl : Level lvl = oa β βa β ob β βb β oe β βe β of β βf infix 15 _β£[_]_
record _β£[_]_ (L' : Displayed-functor β° β± L) (adj : L β£ R) (R' : Displayed-functor β± β° R ) : Type lvl where no-eta-equality open _β£_ adj field unit' : Id' =[ unit ]=> R' Fβ' L' counit' : L' Fβ' R' =[ counit ]=> Id' module unit' = _=[_]=>_ unit' module counit' = _=[_]=>_ counit' renaming (Ξ·' to Ξ΅') field zig' : β {x} {x' : β°.Ob[ x ]} β (counit'.Ξ΅' (L' .Fβ' x') β±.β' L' .Fβ' (unit'.Ξ·' x')) β±.β‘[ zig ] β±.id' zag' : β {x} {x' : β±.Ob[ x ]} β (R' .Fβ' (counit'.Ξ΅' x') β°.β' unit'.Ξ·' (R' .Fβ' x')) β°.β‘[ zag ] β°.id'
Fibred adjunctionsπ
Let and be categories displayed over some We say that a pair of vertical fibred functors are fibred adjoint functors if they are displayed adjoint functors, and the unit and counit are vertical natural transformations.
module _ {ob βb oe βe of βf} {B : Precategory ob βb} {β° : Displayed B oe βe} {β± : Displayed B of βf} where private open Precategory B module β° = Displayed β° module β± = Displayed β± open Vertical-fibred-functor lvl : Level lvl = ob β βb β oe β βe β of β βf infix 15 _β£β_
record _β£β_ (L : Vertical-fibred-functor β° β±) (R : Vertical-fibred-functor β± β°) : Type lvl where no-eta-equality field unit' : IdVf =>fβ R Vfβ L counit' : L Vfβ R =>fβ IdVf module unit' = _=>β_ unit' module counit' = _=>β_ counit' renaming (Ξ·' to Ξ΅') field zig' : β {x} {x' : β°.Ob[ x ]} β counit'.Ξ΅' (L .Fβ' x') β±.β' L .Fβ' (unit'.Ξ·' x') β±.β‘[ idl id ] β±.id' zag' : β {x} {x' : β±.Ob[ x ]} β R .Fβ' (counit'.Ξ΅' x') β°.β' unit'.Ξ·' (R .Fβ' x') β°.β‘[ idl id ] β°.id'