Documentation

Mathlib.CategoryTheory.Triangulated.Pretriangulated

Pretriangulated Categories #

This file contains the definition of pretriangulated categories and triangulated functors between them.

Implementation Notes #

We work under the assumption that pretriangulated categories are preadditive categories, but not necessarily additive categories, as is assumed in some sources.

TODO: generalise this to n-angulated categories as in https://arxiv.org/abs/1006.4592

A preadditive category C with an additive shift, and a class of "distinguished triangles" relative to that shift is called pretriangulated if the following hold:

  • Any triangle that is isomorphic to a distinguished triangle is also distinguished.
  • Any triangle of the form (X,X,0,id,0,0) is distinguished.
  • For any morphism f : X ⟶ Y there exists a distinguished triangle of the form (X,Y,Z,f,g,h).
  • The triangle (X,Y,Z,f,g,h) is distinguished if and only if (Y,Z,X⟦1⟧,g,h,-f⟦1⟧) is.
  • Given a diagram:
          f       g       h
      X  ───> Y  ───> Z  ───> X⟦1⟧
      │       │                │
      │a      │b               │a⟦1⟧'
      V       V                V
      X' ───> Y' ───> Z' ───> X'⟦1⟧
          f'      g'      h'
    
    where the left square commutes, and whose rows are distinguished triangles, there exists a morphism c : Z ⟶ Z' such that (a,b,c) is a triangle morphism.
Instances

    distinguished triangles in a pretriangulated category

    Equations
      Instances For

        Given any distinguished triangle T, then we know T.rotate is also distinguished.

        Given any distinguished triangle T, then we know T.inv_rotate is also distinguished.

        Given any distinguished triangle

              f       g       h
          X  ───> Y  ───> Z  ───> X⟦1⟧
        

        the composition f ≫ g = 0.

        Stacks Tag 0146

        Given any distinguished triangle

              f       g       h
          X  ───> Y  ───> Z  ───> X⟦1⟧
        

        the composition g ≫ h = 0.

        Stacks Tag 0146

        Given any distinguished triangle

              f       g       h
          X  ───> Y  ───> Z  ───> X⟦1⟧
        

        the composition h ≫ f⟦1⟧ = 0.

        Stacks Tag 0146

        The short complex T.obj₁ ⟶ T.obj₂ ⟶ T.obj₃ attached to a distinguished triangle.

        Equations
          Instances For

            The isomorphism between the short complex attached to two isomorphic distinguished triangles.

            Equations
              Instances For

                Any morphism Y ⟶ Z is part of a distinguished triangle X ⟶ Y ⟶ Z ⟶ X⟦1⟧

                Any morphism Z ⟶ X⟦1⟧ is part of a distinguished triangle X ⟶ Y ⟶ Z ⟶ X⟦1⟧

                A commutative square involving the morphisms mor₂ of two distinguished triangles can be extended as morphism of triangles

                A commutative square involving the morphisms mor₃ of two distinguished triangles can be extended as morphism of triangles

                Obvious triangles 0 ⟶ X ⟶ X ⟶ 0⟦1⟧ are distinguished

                Obvious triangles X ⟶ 0 ⟶ X⟦1⟧ ⟶ X⟦1⟧ are distinguished

                Given a distinguished triangle T such that T.mor₃ = 0 and the datum of morphisms inr : T.obj₃ ⟶ T.obj₂ and fst : T.obj₂ ⟶ T.obj₁ satisfying suitable relations, this is the binary biproduct data expressing that T.obj₂ identifies to the binary biproduct of T.obj₁ and T.obj₃. See also exists_iso_binaryBiproduct_of_distTriang.

                Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Pretriangulated.binaryBiproductData_isBilimit {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T : Triangle C) (hT : T distinguishedTriangles) (hT₀ : T.mor₃ = 0) (inr : T.obj₃ T.obj₂) (inr_snd : CategoryStruct.comp inr T.mor₂ = CategoryStruct.id T.obj₃) (fst : T.obj₂ T.obj₁) (total : CategoryStruct.comp fst T.mor₁ + CategoryStruct.comp T.mor₂ inr = CategoryStruct.id T.obj₂) :
                    (binaryBiproductData T hT hT₀ inr inr_snd fst total).isBilimit = Limits.isBinaryBilimitOfTotal { pt := T.obj₂, fst := fst, snd := T.mor₂, inl := T.mor₁, inr := inr, inl_fst := , inl_snd := , inr_fst := , inr_snd := inr_snd } total

                    A chosen extension of a commutative square into a morphism of distinguished triangles.

                    Equations
                      Instances For
                        theorem CategoryTheory.Pretriangulated.productTriangle_distinguished {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] {J : Type u_1} (T : JTriangle C) (hT : ∀ (j : J), T j distinguishedTriangles) [Limits.HasProduct fun (j : J) => (T j).obj₁] [Limits.HasProduct fun (j : J) => (T j).obj₂] [Limits.HasProduct fun (j : J) => (T j).obj₃] [Limits.HasProduct fun (j : J) => (shiftFunctor C 1).obj (T j).obj₁] :

                        A product of distinguished triangles is distinguished

                        def CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂ {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T₁ T₂ : Triangle C) (hT₁ : T₁ distinguishedTriangles) (hT₂ : T₂ distinguishedTriangles) (e₁ : T₁.obj₁ T₂.obj₁) (e₂ : T₁.obj₂ T₂.obj₂) (comm : CategoryStruct.comp T₁.mor₁ e₂.hom = CategoryStruct.comp e₁.hom T₂.mor₁) :
                        T₁ T₂

                        A choice of isomorphism T₁ ≅ T₂ between two distinguished triangles when we are given two isomorphisms e₁ : T₁.obj₁ ≅ T₂.obj₁ and e₂ : T₁.obj₂ ≅ T₂.obj₂.

                        Equations
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂_inv_hom₂ {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T₁ T₂ : Triangle C) (hT₁ : T₁ distinguishedTriangles) (hT₂ : T₂ distinguishedTriangles) (e₁ : T₁.obj₁ T₂.obj₁) (e₂ : T₁.obj₂ T₂.obj₂) (comm : CategoryStruct.comp T₁.mor₁ e₂.hom = CategoryStruct.comp e₁.hom T₂.mor₁) :
                            (isoTriangleOfIso₁₂ T₁ T₂ hT₁ hT₂ e₁ e₂ comm).inv.hom₂ = e₂.inv
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂_inv_hom₁ {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T₁ T₂ : Triangle C) (hT₁ : T₁ distinguishedTriangles) (hT₂ : T₂ distinguishedTriangles) (e₁ : T₁.obj₁ T₂.obj₁) (e₂ : T₁.obj₂ T₂.obj₂) (comm : CategoryStruct.comp T₁.mor₁ e₂.hom = CategoryStruct.comp e₁.hom T₂.mor₁) :
                            (isoTriangleOfIso₁₂ T₁ T₂ hT₁ hT₂ e₁ e₂ comm).inv.hom₁ = e₁.inv
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂_hom_hom₂ {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T₁ T₂ : Triangle C) (hT₁ : T₁ distinguishedTriangles) (hT₂ : T₂ distinguishedTriangles) (e₁ : T₁.obj₁ T₂.obj₁) (e₂ : T₁.obj₂ T₂.obj₂) (comm : CategoryStruct.comp T₁.mor₁ e₂.hom = CategoryStruct.comp e₁.hom T₂.mor₁) :
                            (isoTriangleOfIso₁₂ T₁ T₂ hT₁ hT₂ e₁ e₂ comm).hom.hom₂ = e₂.hom
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂_hom_hom₁ {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [HasShift C ] [Preadditive C] [∀ (n : ), (shiftFunctor C n).Additive] [hC : Pretriangulated C] (T₁ T₂ : Triangle C) (hT₁ : T₁ distinguishedTriangles) (hT₂ : T₂ distinguishedTriangles) (e₁ : T₁.obj₁ T₂.obj₁) (e₂ : T₁.obj₂ T₂.obj₂) (comm : CategoryStruct.comp T₁.mor₁ e₂.hom = CategoryStruct.comp e₁.hom T₂.mor₁) :
                            (isoTriangleOfIso₁₂ T₁ T₂ hT₁ hT₂ e₁ e₂ comm).hom.hom₁ = e₁.hom