Adjoints commute with shifts #
Given categories C
and D
that have shifts by an additive group A
, functors F : C ⥤ D
and G : C ⥤ D
, an adjunction F ⊣ G
and a CommShift
structure on F
, this file constructs
a CommShift
structure on G
. As an easy application, if E : C ≌ D
is an equivalence and
E.functor
has a CommShift
structure, we get a CommShift
structure on E.inverse
.
The CommShift
structure on G
must be compatible with the one on F
in the following sense
(cf. Adjunction.CommShift
):
for every a
in A
, the natural transformation adj.unit : 𝟭 C ⟶ G ⋙ F
commutes with
the isomorphism shiftFunctor C A ⋙ G ⋙ F ≅ G ⋙ F ⋙ shiftFunctor C A
induces by
F.commShiftIso a
and G.commShiftIso a
. We actually require a similar condition for
adj.counit
, but it follows from the one for adj.unit
.
In order to simplify the construction of the CommShift
structure on G
, we first introduce
the compatibility condition on adj.unit
for a fixed a
in A
and for isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
. We then prove that:
- If
e₁
ande₂
satusfy this condition, thene₁
uniquely determinese₂
and vice versa. - If
a = 0
, the isomorphismsFunctor.CommShift.isoZero F
andFunctor.CommShift.isoZero G
satisfy the condition. - The condition is stable by addition on
A
, if we useFunctor.CommShift.isoAdd
to deduce commutation isomorphism fora + b
from such isomorphism froma
andb
. - Given commutation isomorphisms for
F
, our candidate commutation isomorphisms forG
, constructed inAdjunction.RightAdjointCommShift.iso
, satisfy the compatibility condition.
Once we have established all this, the compatibility of the commutation isomorphism for
F
expressed in CommShift.zero
and CommShift.add
immediately implies the similar
statements for the commutation isomorphisms for G
.
TODO: Construct a CommShift
structure on F
from a CommShift
structure on G
, using
opposite categories.
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, this expresses the compatibility of
e₁
and e₂
with the unit of the adjunction adj
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, this expresses the compatibility of
e₁
and e₂
with the counit of the adjunction adj
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, compatibility of e₁
and e₂
with the
unit of the adjunction adj
implies compatibility with the counit of adj
.
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, if e₁
and e₂
are compatible with the
unit of the adjunction adj
, then we get a formula for e₂.inv
in terms of e₁
.
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, if e₁
and e₂
are compatible with the
counit of the adjunction adj
, then we get a formula for e₁.hom
in terms of e₂
.
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, if e₁
and e₂
are compatible with the
unit of the adjunction adj
, then e₁
uniquely determines e₂
.
Given an adjunction adj : F ⊣ G
, a
in A
and commutation isomorphisms
e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a
and
e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a
, if e₁
and e₂
are compatible with the
counit of the adjunction adj
, then e₂
uniquely determines e₁
.
The isomorphisms Functor.CommShift.isoZero F
and Functor.CommShift.isoZero G
are
compatible with the unit of an adjunction F ⊣ G
.
Given an adjunction adj : F ⊣ G
, a, b
in A
and commutation isomorphisms
between shifts by a
(resp. b
) and F
and G
, if these commutation isomorphisms are
compatible with the unit of adj
, then so are the commutation isomorphisms between shifts
by a + b
and F
and G
constructed by Functor.CommShift.isoAdd
.
The property for CommShift
structures on F
and G
to be compatible with an
adjunction F ⊣ G
.
- commShift_unit : CategoryTheory.NatTrans.CommShift adj.unit A
- commShift_counit : CategoryTheory.NatTrans.CommShift adj.counit A
Instances
Constructor for Adjunction.CommShift
.
Auxiliary definition for iso
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an adjunction F ⊣ G
and a CommShift
structure on F
, these are the candidate
CommShift.iso a
isomorphisms for a compatible CommShift
structure on G
.
Equations
Instances For
The commutation isomorphisms of Adjunction.RightAdjointCommShift.iso
are compatible with
the unit of the adjunction.
Given an adjunction F ⊣ G
and a CommShift
structure on F
, this constructs
the unique compatible CommShift
structure on G
.
Equations
- adj.rightAdjointCommShift A = { iso := fun (a : A) => CategoryTheory.Adjunction.RightAdjointCommShift.iso adj a, zero := ⋯, add := ⋯ }
Instances For
If E : C ≌ D
is an equivalence, this expresses the compatibility of CommShift
structures on E.functor
and E.inverse
.
Equations
- E.CommShift A = E.toAdjunction.CommShift A
Instances For
Constructor for Equivalence.CommShift
.
If E : C ≌ D
is an equivalence and we have compatible CommShift
structures on E.functor
and E.inverse
, then we also have compatible CommShift
structures on E.symm.functor
and E.symm.inverse
.
Constructor for Equivalence.CommShift
.
If E : C ≌ D
is an equivalence and we have a CommShift
structure on E.functor
,
this constructs the unique compatible CommShift
structure on E.inverse
.
Equations
- E.commShiftInverse A = E.toAdjunction.rightAdjointCommShift A
Instances For
If E : C ≌ D
is an equivalence and we have a CommShift
structure on E.inverse
,
this constructs the unique compatible CommShift
structure on E.functor
.
Equations
- E.commShiftFunctor A = E.symm.toAdjunction.rightAdjointCommShift A