Documentation

Mathlib.CategoryTheory.Shift.Opposite

The (naive) shift on the opposite category #

If C is a category equipped with a shift by a monoid A, the opposite category can be equipped with a shift such that the shift functor by n is (shiftFunctor C n).op. This is the "naive" opposite shift, which we shall set on a category OppositeShift C A, which is a type synonym for Cᵒᵖ.

However, for the application to (pre)triangulated categories, we would like to define the shift on Cᵒᵖ so that shiftFunctor Cᵒᵖ n for n : ℤ identifies to (shiftFunctor C (-n)).op rather than (shiftFunctor C n).op. Then, the construction of the shift on Cᵒᵖ shall combine the shift on OppositeShift C A and another construction of the "pullback" of a shift by a monoid morphism like n ↦ -n.

If F : C ⥤ D is a functor between categories equipped with shifts by A, we define a type synonym OppositeShift.functor A F for F.op. When F has a CommShift structure by A, we define a CommShift structure by A on OppositeShift.functor A F. In this way, we can make this an instance and reserve F.op for the CommShift instance by the modified shift in the case of (pre)triangulated categories.

Similarly, if τ is a natural transformation between functors F,G : C ⥤ D, we define a type synonym for τ.op called OppositeShift.natTrans A τ : OppositeShift.functor A F ⟶ OppositeShift.functor A G. When τ has a CommShift structure by A (i.e. is compatible with CommShift structures on F and G), we define a CommShift structure by A on OppositeShift.natTrans A τ.

Finally, if we have an adjunction F ⊣ G (with G : D ⥤ C), we define a type synonym OppositeShift.adjunction A adj : OppositeShift.functor A G ⊣ OppositeShift.functor A F for adj.op, and we show that, if adj compatible with CommShift structures on F and G, then OppositeShift.adjunction A adj is also compatible with the pulled back CommShift structures.

Given a CommShift structure on a functor F, we define a CommShift structure on F.op (and vice versa). We also prove that, if an adjunction F ⊣ G is compatible with CommShift structures on F and G, then the opposite adjunction G.op ⊣ F.op is compatible with the opposite CommShift structures.

Construction of the naive shift on the opposite category of a category C: the shiftfunctor by n is (shiftFunctor C n).op.

Equations
    Instances For

      The category OppositeShift C A is the opposite category Cᵒᵖ equipped with the naive shift: shiftFunctor (OppositeShift C A) n is (shiftFunctor C n).op.

      Equations
        Instances For
          noncomputable instance CategoryTheory.instHasShiftOppositeShift (C : Type u_1) [Category.{u_3, u_1} C] (A : Type u_2) [AddMonoid A] [HasShift C A] :
          Equations
            theorem CategoryTheory.oppositeShiftFunctorAdd'_inv_app {C : Type u_1} [Category.{u_3, u_1} C] {A : Type u_2} [AddMonoid A] [HasShift C A] (X : OppositeShift C A) (a b c : A) (h : a + b = c) :
            theorem CategoryTheory.oppositeShiftFunctorAdd'_hom_app {C : Type u_1} [Category.{u_3, u_1} C] {A : Type u_2} [AddMonoid A] [HasShift C A] (X : OppositeShift C A) (a b c : A) (h : a + b = c) :

            The functor F.op, seen as a functor from OppositeShift C A to OppositeShift D A. (We will use this to carry a CommShift instance for the naive shifts on the opposite category. Then, in the pretriangulated case, we will be able to put a CommShift instance on F.op for the modified shifts and not deal with instance clashes.

            Equations
              Instances For
                def CategoryTheory.OppositeShift.natTrans {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_5, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] {F G : Functor C D} (τ : F G) :

                The natural transformation τ, seen as a natural transformation from OppositeShift.functor F A to OppositeShift.functor G A..

                Equations
                  Instances For
                    noncomputable instance CategoryTheory.Functor.commShiftOp {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_5, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] (F : Functor C D) [F.CommShift A] :

                    Given a CommShift structure on F, this is the corresponding CommShift structure on OppositeShift.functor F (for the naive shifts on the opposite categories).

                    Equations
                      noncomputable def CategoryTheory.Functor.commShiftUnop {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_5, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] (F : Functor C D) [(OppositeShift.functor A F).CommShift A] :

                      Given a CommShift structure on OppositeShift.functor F (for the naive shifts on the opposite categories), this is the corresponding CommShift structure on F.

                      Equations
                        Instances For
                          instance CategoryTheory.NatTrans.commShift_op {C : Type u_1} {D : Type u_2} [Category.{u_5, u_1} C] [Category.{u_4, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] {F G : Functor C D} [F.CommShift A] [G.CommShift A] (τ : F G) [CommShift τ A] :

                          The obvious isomorphism between the identity of OppositeShift C A and OppositeShift.functor (𝟙 C).

                          Equations
                            Instances For

                              The obvious isomorphism between OppositeShift.functor (F ⋙ G) and the composition of OppositeShift.functor F and OppositeShift.functor G.

                              Equations
                                Instances For
                                  def CategoryTheory.OppositeShift.adjunction {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_5, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] {F : Functor C D} {G : Functor D C} (adj : F G) :

                                  The adjunction adj, seen as an adjunction between OppositeShift.functor G and OppositeShift.functor F.

                                  Equations
                                    Instances For
                                      instance CategoryTheory.Adjunction.commShift_op {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_5, u_2} D] (A : Type u_3) [AddMonoid A] [HasShift C A] [HasShift D A] {F : Functor C D} {G : Functor D C} (adj : F G) [F.CommShift A] [G.CommShift A] [adj.CommShift A] :

                                      If an adjunction F ⊣ G is compatible with CommShift structures on F and G, then the opposite adjunction OppositeShift.adjunction adj is compatible with the opposite CommShift structures.