Documentation

Mathlib.CategoryTheory.Triangulated.Basic

Triangles #

This file contains the definition of triangles in an additive category with an additive shift. It also defines morphisms between these triangles.

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

A triangle in C is a sextuple (X,Y,Z,f,g,h) where X,Y,Z are objects of C, and f : X ⟶ Y, g : Y ⟶ Z, h : Z ⟶ X⟦1⟧ are morphisms in C.

Instances For
    def CategoryTheory.Pretriangulated.Triangle.mk {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :

    A triangle (X,Y,Z,f,g,h) in C is defined by the morphisms f : X ⟶ Y, g : Y ⟶ Z and h : Z ⟶ X⟦1⟧.

    Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_obj₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).obj₁ = X
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_mor₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).mor₂ = g
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_mor₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).mor₃ = h
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_obj₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).obj₃ = Z
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_mor₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).mor₁ = f
        @[simp]
        theorem CategoryTheory.Pretriangulated.Triangle.mk_obj₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {X Y Z : C} (f : X Y) (g : Y Z) (h : Z (CategoryTheory.shiftFunctor C 1).obj X) :
        (mk f g h).obj₂ = Y

        For each object in C, there is a triangle of the form (X,X,0,𝟙 X,0,0)

        Equations
          Instances For

            A morphism of triangles (X,Y,Z,f,g,h) ⟶ (X',Y',Z',f',g',h') in C is a triple of morphisms a : X ⟶ X', b : Y ⟶ Y', c : Z ⟶ Z' such that a ≫ f' = f ≫ b, b ≫ g' = g ≫ c, and a⟦1⟧' ≫ h = h' ≫ c. In other words, we have a commutative diagram:

                 f      g      h
              X  ───> Y  ───> Z  ───> X⟦1⟧
              │       │       │        │
              │a      │b      │c       │a⟦1⟧'
              V       V       V        V
              X' ───> Y' ───> Z' ───> X'⟦1⟧
                 f'     g'     h'
            
            Instances For
              theorem CategoryTheory.Pretriangulated.TriangleMorphism.ext {C : Type u} {inst✝ : Category.{v, u} C} {inst✝¹ : HasShift C } {T₁ T₂ : Triangle C} {x y : TriangleMorphism T₁ T₂} (hom₁ : x.hom₁ = y.hom₁) (hom₂ : x.hom₂ = y.hom₂) (hom₃ : x.hom₃ = y.hom₃) :
              x = y
              theorem CategoryTheory.Pretriangulated.TriangleMorphism.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {inst✝¹ : HasShift C } {T₁ T₂ : Triangle C} {x y : TriangleMorphism T₁ T₂} :
              @[simp]

              the second commutative square of a triangle morphism

              @[simp]

              the third commutative square of a triangle morphism

              @[simp]

              the first commutative square of a triangle morphism

              The identity triangle morphism.

              Equations
                Instances For
                  def CategoryTheory.Pretriangulated.TriangleMorphism.comp {C : Type u} [Category.{v, u} C] [HasShift C ] {T₁ T₂ T₃ : Triangle C} (f : TriangleMorphism T₁ T₂) (g : TriangleMorphism T₂ T₃) :

                  Composition of triangle morphisms gives a triangle morphism.

                  Equations
                    Instances For

                      Triangles with triangle morphisms form a category.

                      Equations
                        theorem CategoryTheory.Pretriangulated.Triangle.hom_ext {C : Type u} [Category.{v, u} C] [HasShift C ] {A B : Triangle C} (f g : A B) (h₁ : f.hom₁ = g.hom₁) (h₂ : f.hom₂ = g.hom₂) (h₃ : f.hom₃ = g.hom₃) :
                        f = g
                        def CategoryTheory.Pretriangulated.Triangle.homMk {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (hom₁ : A.obj₁ B.obj₁) (hom₂ : A.obj₂ B.obj₂) (hom₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ hom₂ = CategoryStruct.comp hom₁ B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ hom₃ = CategoryStruct.comp hom₂ B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map hom₁) = CategoryStruct.comp hom₃ B.mor₃ := by cat_disch) :
                        A B

                        Make a morphism between triangles from the required data.

                        Equations
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.Triangle.homMk_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (hom₁ : A.obj₁ B.obj₁) (hom₂ : A.obj₂ B.obj₂) (hom₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ hom₂ = CategoryStruct.comp hom₁ B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ hom₃ = CategoryStruct.comp hom₂ B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map hom₁) = CategoryStruct.comp hom₃ B.mor₃ := by cat_disch) :
                            (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₃ = hom₃
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.Triangle.homMk_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (hom₁ : A.obj₁ B.obj₁) (hom₂ : A.obj₂ B.obj₂) (hom₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ hom₂ = CategoryStruct.comp hom₁ B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ hom₃ = CategoryStruct.comp hom₂ B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map hom₁) = CategoryStruct.comp hom₃ B.mor₃ := by cat_disch) :
                            (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₁ = hom₁
                            @[simp]
                            theorem CategoryTheory.Pretriangulated.Triangle.homMk_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (hom₁ : A.obj₁ B.obj₁) (hom₂ : A.obj₂ B.obj₂) (hom₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ hom₂ = CategoryStruct.comp hom₁ B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ hom₃ = CategoryStruct.comp hom₂ B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map hom₁) = CategoryStruct.comp hom₃ B.mor₃ := by cat_disch) :
                            (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₂ = hom₂
                            def CategoryTheory.Pretriangulated.Triangle.isoMk {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (iso₁ : A.obj₁ B.obj₁) (iso₂ : A.obj₂ B.obj₂) (iso₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map iso₁.hom) = CategoryStruct.comp iso₃.hom B.mor₃ := by cat_disch) :
                            A B

                            Make an isomorphism between triangles from the required data.

                            Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.Pretriangulated.Triangle.isoMk_inv {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (iso₁ : A.obj₁ B.obj₁) (iso₂ : A.obj₂ B.obj₂) (iso₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map iso₁.hom) = CategoryStruct.comp iso₃.hom B.mor₃ := by cat_disch) :
                                (A.isoMk B iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).inv = B.homMk A iso₁.inv iso₂.inv iso₃.inv
                                @[simp]
                                theorem CategoryTheory.Pretriangulated.Triangle.isoMk_hom {C : Type u} [Category.{v, u} C] [HasShift C ] (A B : Triangle C) (iso₁ : A.obj₁ B.obj₁) (iso₂ : A.obj₂ B.obj₂) (iso₃ : A.obj₃ B.obj₃) (comm₁ : CategoryStruct.comp A.mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom B.mor₁ := by cat_disch) (comm₂ : CategoryStruct.comp A.mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom B.mor₂ := by cat_disch) (comm₃ : CategoryStruct.comp A.mor₃ ((CategoryTheory.shiftFunctor C 1).map iso₁.hom) = CategoryStruct.comp iso₃.hom B.mor₃ := by cat_disch) :
                                (A.isoMk B iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom = A.homMk B iso₁.hom iso₂.hom iso₃.hom comm₁ comm₂ comm₃
                                instance CategoryTheory.Pretriangulated.Triangle.instSMulHom {C : Type u} [Category.{v, u} C] [HasShift C ] {T₁ T₂ : Triangle C} [Preadditive C] {R : Type u_1} [Semiring R] [Linear R C] [∀ (n : ), Functor.Linear R (CategoryTheory.shiftFunctor C n)] :
                                SMul R (T₁ T₂)
                                Equations
                                  @[simp]
                                  theorem CategoryTheory.Pretriangulated.Triangle.smul_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {T₁ T₂ : Triangle C} [Preadditive C] {R : Type u_1} [Semiring R] [Linear R C] [∀ (n : ), Functor.Linear R (CategoryTheory.shiftFunctor C n)] (n : R) (f : T₁ T₂) :
                                  (n f).hom₁ = n f.hom₁
                                  @[simp]
                                  theorem CategoryTheory.Pretriangulated.Triangle.smul_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {T₁ T₂ : Triangle C} [Preadditive C] {R : Type u_1} [Semiring R] [Linear R C] [∀ (n : ), Functor.Linear R (CategoryTheory.shiftFunctor C n)] (n : R) (f : T₁ T₂) :
                                  (n f).hom₂ = n f.hom₂
                                  @[simp]
                                  theorem CategoryTheory.Pretriangulated.Triangle.smul_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {T₁ T₂ : Triangle C} [Preadditive C] {R : Type u_1} [Semiring R] [Linear R C] [∀ (n : ), Functor.Linear R (CategoryTheory.shiftFunctor C n)] (n : R) (f : T₁ T₂) :
                                  (n f).hom₃ = n f.hom₃

                                  The obvious triangle X₁ ⟶ X₁ ⊞ X₂ ⟶ X₂ ⟶ X₁⟦1⟧.

                                  Equations
                                    Instances For

                                      The obvious triangle X₁ ⟶ X₁ ⨯ X₂ ⟶ X₂ ⟶ X₁⟦1⟧.

                                      Equations
                                        Instances For
                                          def CategoryTheory.Pretriangulated.productTriangle {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :

                                          The product of a family of triangles.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_mor₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).mor₁ = Limits.Pi.map fun (j : J) => (T j).mor₁
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_obj₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).obj₁ = ∏ᶜ fun (j : J) => (T j).obj₁
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_obj₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).obj₃ = ∏ᶜ fun (j : J) => (T j).obj₃
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_obj₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).obj₂ = ∏ᶜ fun (j : J) => (T j).obj₂
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_mor₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).mor₂ = Limits.Pi.map fun (j : J) => (T j).mor₂
                                              @[simp]
                                              theorem CategoryTheory.Pretriangulated.productTriangle_mor₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :
                                              (productTriangle T).mor₃ = CategoryStruct.comp (Limits.Pi.map fun (j : J) => (T j).mor₃) (inv (Limits.piComparison (shiftFunctor C 1) fun (j : J) => (T j).obj₁))
                                              def CategoryTheory.Pretriangulated.productTriangle.π {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] (j : J) :

                                              A projection from the product of a family of triangles.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Pretriangulated.productTriangle.π_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] (j : J) :
                                                  (π T j).hom₁ = Limits.Pi.π (fun (j : J) => (T j).obj₁) j
                                                  @[simp]
                                                  theorem CategoryTheory.Pretriangulated.productTriangle.π_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] (j : J) :
                                                  (π T j).hom₂ = Limits.Pi.π (fun (j : J) => (T j).obj₂) j
                                                  @[simp]
                                                  theorem CategoryTheory.Pretriangulated.productTriangle.π_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] (j : J) :
                                                  (π T j).hom₃ = Limits.Pi.π (fun (j : J) => (T j).obj₃) j
                                                  def CategoryTheory.Pretriangulated.productTriangle.fan {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :

                                                  The fan given by productTriangle T.

                                                  Equations
                                                    Instances For
                                                      def CategoryTheory.Pretriangulated.productTriangle.lift {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] {T' : Triangle C} (φ : (j : J) → T' T j) :

                                                      A family of morphisms T' ⟶ T j lifts to a morphism T' ⟶ productTriangle T.

                                                      Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.Pretriangulated.productTriangle.lift_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] {T' : Triangle C} (φ : (j : J) → T' T j) :
                                                          (lift T φ).hom₃ = Limits.Pi.lift fun (j : J) => (φ j).hom₃
                                                          @[simp]
                                                          theorem CategoryTheory.Pretriangulated.productTriangle.lift_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] {T' : Triangle C} (φ : (j : J) → T' T j) :
                                                          (lift T φ).hom₁ = Limits.Pi.lift fun (j : J) => (φ j).hom₁
                                                          @[simp]
                                                          theorem CategoryTheory.Pretriangulated.productTriangle.lift_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] {T' : Triangle C} (φ : (j : J) → T' T j) :
                                                          (lift T φ).hom₂ = Limits.Pi.lift fun (j : J) => (φ j).hom₂
                                                          def CategoryTheory.Pretriangulated.productTriangle.isLimitFan {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} (T : JTriangle C) [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₁] :

                                                          The triangle productTriangle T satisfies the universal property of the categorical product of the triangles T.

                                                          Equations
                                                            Instances For

                                                              The first projection Triangle C ⥤ C.

                                                              Equations
                                                                Instances For

                                                                  The second projection Triangle C ⥤ C.

                                                                  Equations
                                                                    Instances For

                                                                      The third projection Triangle C ⥤ C.

                                                                      Equations
                                                                        Instances For

                                                                          The first morphism of a triangle, as a natural transformation π₁π₂.

                                                                          Equations
                                                                            Instances For

                                                                              The second morphism of a triangle, as a natural transformation π₂π₃.

                                                                              Equations
                                                                                Instances For

                                                                                  The third morphism of a triangle, as a natural transformation π₃π₁ ⋙ shiftFunctor _ (1 : ℤ).

                                                                                  Equations
                                                                                    Instances For
                                                                                      def CategoryTheory.Pretriangulated.Triangle.functorMk {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} (mor₁ : obj₁ obj₂) (mor₂ : obj₂ obj₃) (mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)) :

                                                                                      Constructor for functors to the category of triangles.

                                                                                      Equations
                                                                                        Instances For
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorMk_map_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} (mor₁ : obj₁ obj₂) (mor₂ : obj₂ obj₃) (mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)) {X✝ Y✝ : J} (φ : X✝ Y✝) :
                                                                                          ((functorMk mor₁ mor₂ mor₃).map φ).hom₂ = obj₂.map φ
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorMk_map_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} (mor₁ : obj₁ obj₂) (mor₂ : obj₂ obj₃) (mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)) {X✝ Y✝ : J} (φ : X✝ Y✝) :
                                                                                          ((functorMk mor₁ mor₂ mor₃).map φ).hom₃ = obj₃.map φ
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorMk_obj {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} (mor₁ : obj₁ obj₂) (mor₂ : obj₂ obj₃) (mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)) (j : J) :
                                                                                          (functorMk mor₁ mor₂ mor₃).obj j = mk (mor₁.app j) (mor₂.app j) (mor₃.app j)
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorMk_map_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} (mor₁ : obj₁ obj₂) (mor₂ : obj₂ obj₃) (mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)) {X✝ Y✝ : J} (φ : X✝ Y✝) :
                                                                                          ((functorMk mor₁ mor₂ mor₃).map φ).hom₁ = obj₁.map φ

                                                                                          Constructor for natural transformations between functors to the category of triangles.

                                                                                          Equations
                                                                                            Instances For
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk_app_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] (A B : Functor J (Triangle C)) (hom₁ : A.comp π₁ B.comp π₁) (hom₂ : A.comp π₂ B.comp π₂) (hom₃ : A.comp π₃ B.comp π₃) (comm₁ : CategoryStruct.comp (A.whiskerLeft π₁Toπ₂) hom₂ = CategoryStruct.comp hom₁ (B.whiskerLeft π₁Toπ₂) := by cat_disch) (comm₂ : CategoryStruct.comp (A.whiskerLeft π₂Toπ₃) hom₃ = CategoryStruct.comp hom₂ (B.whiskerLeft π₂Toπ₃) := by cat_disch) (comm₃ : CategoryStruct.comp (A.whiskerLeft π₃Toπ₁) (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ (B.whiskerLeft π₃Toπ₁) := by cat_disch) (j : J) :
                                                                                              ((functorHomMk A B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₃ = hom₃.app j
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk_app_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] (A B : Functor J (Triangle C)) (hom₁ : A.comp π₁ B.comp π₁) (hom₂ : A.comp π₂ B.comp π₂) (hom₃ : A.comp π₃ B.comp π₃) (comm₁ : CategoryStruct.comp (A.whiskerLeft π₁Toπ₂) hom₂ = CategoryStruct.comp hom₁ (B.whiskerLeft π₁Toπ₂) := by cat_disch) (comm₂ : CategoryStruct.comp (A.whiskerLeft π₂Toπ₃) hom₃ = CategoryStruct.comp hom₂ (B.whiskerLeft π₂Toπ₃) := by cat_disch) (comm₃ : CategoryStruct.comp (A.whiskerLeft π₃Toπ₁) (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ (B.whiskerLeft π₃Toπ₁) := by cat_disch) (j : J) :
                                                                                              ((functorHomMk A B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₁ = hom₁.app j
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk_app_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] (A B : Functor J (Triangle C)) (hom₁ : A.comp π₁ B.comp π₁) (hom₂ : A.comp π₂ B.comp π₂) (hom₃ : A.comp π₃ B.comp π₃) (comm₁ : CategoryStruct.comp (A.whiskerLeft π₁Toπ₂) hom₂ = CategoryStruct.comp hom₁ (B.whiskerLeft π₁Toπ₂) := by cat_disch) (comm₂ : CategoryStruct.comp (A.whiskerLeft π₂Toπ₃) hom₃ = CategoryStruct.comp hom₂ (B.whiskerLeft π₂Toπ₃) := by cat_disch) (comm₃ : CategoryStruct.comp (A.whiskerLeft π₃Toπ₁) (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ (B.whiskerLeft π₃Toπ₁) := by cat_disch) (j : J) :
                                                                                              ((functorHomMk A B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₂ = hom₂.app j
                                                                                              def CategoryTheory.Pretriangulated.Triangle.functorHomMk' {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (hom₁ : obj₁ obj₁') (hom₂ : obj₂ obj₂') (hom₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ hom₂ = CategoryStruct.comp hom₁ mor₁') (comm₂ : CategoryStruct.comp mor₂ hom₃ = CategoryStruct.comp hom₂ mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ mor₃') :
                                                                                              functorMk mor₁ mor₂ mor₃ functorMk mor₁' mor₂' mor₃'

                                                                                              Constructor for natural transformations between functors constructed with functorMk.

                                                                                              Equations
                                                                                                Instances For
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk'_app_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (hom₁ : obj₁ obj₁') (hom₂ : obj₂ obj₂') (hom₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ hom₂ = CategoryStruct.comp hom₁ mor₁') (comm₂ : CategoryStruct.comp mor₂ hom₃ = CategoryStruct.comp hom₂ mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ mor₃') (j : J) :
                                                                                                  ((functorHomMk' hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₁ = hom₁.app j
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk'_app_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (hom₁ : obj₁ obj₁') (hom₂ : obj₂ obj₂') (hom₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ hom₂ = CategoryStruct.comp hom₁ mor₁') (comm₂ : CategoryStruct.comp mor₂ hom₃ = CategoryStruct.comp hom₂ mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ mor₃') (j : J) :
                                                                                                  ((functorHomMk' hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₂ = hom₂.app j
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Pretriangulated.Triangle.functorHomMk'_app_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (hom₁ : obj₁ obj₁') (hom₂ : obj₂ obj₂') (hom₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ hom₂ = CategoryStruct.comp hom₁ mor₁') (comm₂ : CategoryStruct.comp mor₂ hom₃ = CategoryStruct.comp hom₂ mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight hom₁ (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp hom₃ mor₃') (j : J) :
                                                                                                  ((functorHomMk' hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).app j).hom₃ = hom₃.app j

                                                                                                  Constructor for natural isomorphisms between functors to the category of triangles.

                                                                                                  Equations
                                                                                                    Instances For
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk_hom {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] (A B : Functor J (Triangle C)) (iso₁ : A.comp π₁ B.comp π₁) (iso₂ : A.comp π₂ B.comp π₂) (iso₃ : A.comp π₃ B.comp π₃) (comm₁ : CategoryStruct.comp (A.whiskerLeft π₁Toπ₂) iso₂.hom = CategoryStruct.comp iso₁.hom (B.whiskerLeft π₁Toπ₂)) (comm₂ : CategoryStruct.comp (A.whiskerLeft π₂Toπ₃) iso₃.hom = CategoryStruct.comp iso₂.hom (B.whiskerLeft π₂Toπ₃)) (comm₃ : CategoryStruct.comp (A.whiskerLeft π₃Toπ₁) (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom (B.whiskerLeft π₃Toπ₁)) :
                                                                                                      (functorIsoMk A B iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom = functorHomMk A B iso₁.hom iso₂.hom iso₃.hom comm₁ comm₂ comm₃
                                                                                                      def CategoryTheory.Pretriangulated.Triangle.functorIsoMk' {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') :
                                                                                                      functorMk mor₁ mor₂ mor₃ functorMk mor₁' mor₂' mor₃'

                                                                                                      Constructor for natural isomorphisms between functors constructed with functorMk.

                                                                                                      Equations
                                                                                                        Instances For
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_inv_app_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).inv.app j).hom₁ = iso₁.inv.app j
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_inv_app_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).inv.app j).hom₃ = iso₃.inv.app j
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_hom_app_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom.app j).hom₂ = iso₂.hom.app j
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_inv_app_hom₂ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).inv.app j).hom₂ = iso₂.inv.app j
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_hom_app_hom₁ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom.app j).hom₁ = iso₁.hom.app j
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Pretriangulated.Triangle.functorIsoMk'_hom_app_hom₃ {C : Type u} [Category.{v, u} C] [HasShift C ] {J : Type u_1} [Category.{v_1, u_1} J] {obj₁ obj₂ obj₃ : Functor J C} {mor₁ : obj₁ obj₂} {mor₂ : obj₂ obj₃} {mor₃ : obj₃ obj₁.comp (CategoryTheory.shiftFunctor C 1)} {obj₁' obj₂' obj₃' : Functor J C} {mor₁' : obj₁' obj₂'} {mor₂' : obj₂' obj₃'} {mor₃' : obj₃' obj₁'.comp (CategoryTheory.shiftFunctor C 1)} (iso₁ : obj₁ obj₁') (iso₂ : obj₂ obj₂') (iso₃ : obj₃ obj₃') (comm₁ : CategoryStruct.comp mor₁ iso₂.hom = CategoryStruct.comp iso₁.hom mor₁') (comm₂ : CategoryStruct.comp mor₂ iso₃.hom = CategoryStruct.comp iso₂.hom mor₂') (comm₃ : CategoryStruct.comp mor₃ (Functor.whiskerRight iso₁.hom (CategoryTheory.shiftFunctor C 1)) = CategoryStruct.comp iso₃.hom mor₃') (j : J) :
                                                                                                          ((functorIsoMk' iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom.app j).hom₃ = iso₃.hom.app j