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
: Level
lvl = oa β βa β ob β βb β oe β βe β of β βf
lvl
infix 15 _β£[_]_
record _β£[_]_
(L' : Displayed-functor L β° β±)
(adj : L β£ R)
(R' : Displayed-functor R β± β°)
: Type lvl where
no-eta-equality
open _β£_ adj
field
: Id' =[ unit ]=> R' Fβ' L'
unit' : L' Fβ' R' =[ counit ]=> Id'
counit'
module unit' = _=[_]=>_ unit'
module counit' = _=[_]=>_ counit' renaming (Ξ·' to Ξ΅')
field
: β {x} {x' : β°.Ob[ x ]}
zig' β (counit'.Ξ΅' (L' .Fβ' x') β±.β' L' .Fβ' (unit'.Ξ·' x')) β±.β‘[ zig ] β±.id'
: β {x} {x' : β±.Ob[ x ]}
zag' β (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.
Unlike vertical functors and vertical natural transformations, we have to define fibred adjunctions as a separate type: general displayed adjunctions use composition of displayed functors for the unit and counit, whereas fibred adjunctions use vertical composition instead.
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-functor
: Level
lvl = ob β βb β oe β βe β of β βf
lvl
infix 15 _β£β_
record _β£β_
(L : Vertical-functor β° β±)
(R : Vertical-functor β± β°)
: Type lvl where
no-eta-equality
field
: Id' =>β R βV L
unit' : L βV R =>β Id'
counit'
module unit' = _=>β_ unit'
module counit' = _=>β_ counit' renaming (Ξ·' to Ξ΅')
field
: β {x} {x' : β°.Ob[ x ]}
zig' β counit'.Ξ΅' (L .Fβ' x') β±.β' L .Fβ' (unit'.Ξ·' x') β±.β‘[ idl id ] β±.id'
: β {x} {x' : β±.Ob[ x ]}
zag' β R .Fβ' (counit'.Ξ΅' x') β°.β' unit'.Ξ·' (R .Fβ' x') β°.β‘[ idl id ] β°.id'