ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Pretriangulated.Triangle.mk_mor₃
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).mor₃ = h
-- CategoryTheory.Pretriangulated.Triangle.mk_mor₁
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).mor₁ = f
-- CategoryTheory.Pretriangulated.Triangle.mk_obj₁
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).obj₁ = X
-- CategoryTheory.Pretriangulated.Triangle.mk_obj₃
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).obj₃ = Z
-- CategoryTheory.Pretriangulated.Triangle.mk_obj₂
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).obj₂ = Y
-- CategoryTheory.Pretriangulated.Triangle.mk_mor₂
@[simps]
def Triangle.mk {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (h : Z ⟶ (CategoryTheory.shiftFunctor C 1).obj X)
Goal: (CategoryTheory.Pretriangulated.Triangle.mk f g h).mor₂ = g
-- CategoryTheory.Pretriangulated.contractibleTriangle_obj₂
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).obj₂ = X
-- CategoryTheory.Pretriangulated.contractibleTriangle_mor₁
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).mor₁ = 𝟙 X
-- CategoryTheory.Pretriangulated.contractibleTriangle_mor₂
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).mor₂ = 0
-- CategoryTheory.Pretriangulated.contractibleTriangle_obj₁
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).obj₁ = X
-- CategoryTheory.Pretriangulated.contractibleTriangle_obj₃
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).obj₃ = 0
-- CategoryTheory.Pretriangulated.contractibleTriangle_mor₃
@[simps!]
def contractibleTriangle (X : C) : Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C)
Goal: (CategoryTheory.Pretriangulated.contractibleTriangle X).mor₃ = 0
-- CategoryTheory.Pretriangulated.TriangleMorphism.comm₁
@[ext]
structure TriangleMorphism (T₁ : Triangle C) (T₂ : Triangle C) where
    hom₁ : T₁.obj₁ ⟶ T₂.obj₁
    hom₂ : T₁.obj₂ ⟶ T₂.obj₂
    hom₃ : T₁.obj₃ ⟶ T₂.obj₃
    comm₁ : T₁.mor₁ ≫ hom₂ = hom₁ ≫ T₂.mor₁ := by aesop_cat
    comm₂ : T₁.mor₂ ≫ hom₃ = hom₂ ≫ T₂.mor₂ := by aesop_cat
    comm₃ : T₁.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ T₂.mor₃ := by aesop_cat
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ : CategoryTheory.Pretriangulated.Triangle C} (self : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂)
Goal: T₁.mor₁ ≫ self.hom₂ = self.hom₁ ≫ T₂.mor₁
-- CategoryTheory.Pretriangulated.TriangleMorphism.comm₂
@[ext]
structure TriangleMorphism (T₁ : Triangle C) (T₂ : Triangle C) where
    hom₁ : T₁.obj₁ ⟶ T₂.obj₁
    hom₂ : T₁.obj₂ ⟶ T₂.obj₂
    hom₃ : T₁.obj₃ ⟶ T₂.obj₃
    comm₁ : T₁.mor₁ ≫ hom₂ = hom₁ ≫ T₂.mor₁ := by aesop_cat
    comm₂ : T₁.mor₂ ≫ hom₃ = hom₂ ≫ T₂.mor₂ := by aesop_cat
    comm₃ : T₁.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ T₂.mor₃ := by aesop_cat
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ : CategoryTheory.Pretriangulated.Triangle C} (self : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂)
Goal: T₁.mor₂ ≫ self.hom₃ = self.hom₂ ≫ T₂.mor₂
-- CategoryTheory.Pretriangulated.TriangleMorphism.comm₃
@[ext]
structure TriangleMorphism (T₁ : Triangle C) (T₂ : Triangle C) where
    hom₁ : T₁.obj₁ ⟶ T₂.obj₁
    hom₂ : T₁.obj₂ ⟶ T₂.obj₂
    hom₃ : T₁.obj₃ ⟶ T₂.obj₃
    comm₁ : T₁.mor₁ ≫ hom₂ = hom₁ ≫ T₂.mor₁ := by aesop_cat
    comm₂ : T₁.mor₂ ≫ hom₃ = hom₂ ≫ T₂.mor₂ := by aesop_cat
    comm₃ : T₁.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ T₂.mor₃ := by aesop_cat
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ : CategoryTheory.Pretriangulated.Triangle C} (self : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂)
Goal: T₁.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map self.hom₁ = self.hom₃ ≫ T₂.mor₃
-- CategoryTheory.Pretriangulated.triangleMorphismId_hom₃
@[simps]
def triangleMorphismId (T : Triangle C) : TriangleMorphism T T 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (T : CategoryTheory.Pretriangulated.Triangle C)
Goal: (CategoryTheory.Pretriangulated.triangleMorphismId T).hom₃ = 𝟙 T.obj₃
-- CategoryTheory.Pretriangulated.triangleMorphismId_hom₂
@[simps]
def triangleMorphismId (T : Triangle C) : TriangleMorphism T T 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (T : CategoryTheory.Pretriangulated.Triangle C)
Goal: (CategoryTheory.Pretriangulated.triangleMorphismId T).hom₂ = 𝟙 T.obj₂
-- CategoryTheory.Pretriangulated.triangleMorphismId_hom₁
@[simps]
def triangleMorphismId (T : Triangle C) : TriangleMorphism T T 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (T : CategoryTheory.Pretriangulated.Triangle C)
Goal: (CategoryTheory.Pretriangulated.triangleMorphismId T).hom₁ = 𝟙 T.obj₁
-- CategoryTheory.Pretriangulated.TriangleMorphism.comp_hom₂
@[simps]
def TriangleMorphism.comp (f : TriangleMorphism T₁ T₂) (g : TriangleMorphism T₂ T₃) :
    TriangleMorphism T₁ T₃ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ T₃ : CategoryTheory.Pretriangulated.Triangle C} (f : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂) (g : CategoryTheory.Pretriangulated.TriangleMorphism T₂ T₃)
Goal: (f.comp g).hom₂ = f.hom₂ ≫ g.hom₂
-- CategoryTheory.Pretriangulated.TriangleMorphism.comp_hom₁
@[simps]
def TriangleMorphism.comp (f : TriangleMorphism T₁ T₂) (g : TriangleMorphism T₂ T₃) :
    TriangleMorphism T₁ T₃ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ T₃ : CategoryTheory.Pretriangulated.Triangle C} (f : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂) (g : CategoryTheory.Pretriangulated.TriangleMorphism T₂ T₃)
Goal: (f.comp g).hom₁ = f.hom₁ ≫ g.hom₁
-- CategoryTheory.Pretriangulated.TriangleMorphism.comp_hom₃
@[simps]
def TriangleMorphism.comp (f : TriangleMorphism T₁ T₂) (g : TriangleMorphism T₂ T₃) :
    TriangleMorphism T₁ T₃ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {T₁ T₂ T₃ : CategoryTheory.Pretriangulated.Triangle C} (f : CategoryTheory.Pretriangulated.TriangleMorphism T₁ T₂) (g : CategoryTheory.Pretriangulated.TriangleMorphism T₂ T₃)
Goal: (f.comp g).hom₃ = f.hom₃ ≫ g.hom₃
-- CategoryTheory.Pretriangulated.triangleCategory_comp
@[simps]
instance triangleCategory : Category (Triangle C) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ]
Goal: ∀ {X Y Z : CategoryTheory.Pretriangulated.Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z),
  f ≫ g = CategoryTheory.Pretriangulated.TriangleMorphism.comp f g
-- CategoryTheory.Pretriangulated.triangleCategory_id
@[simps]
instance triangleCategory : Category (Triangle C) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A : CategoryTheory.Pretriangulated.Triangle C)
Goal: 𝟙 A = CategoryTheory.Pretriangulated.triangleMorphismId A
-- CategoryTheory.Pretriangulated.Triangle.hom_ext
@[ext]
lemma Triangle.hom_ext {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 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (f g : A ⟶ B) (h₁ : f.hom₁ = g.hom₁) (h₂ : f.hom₂ = g.hom₂) (h₃ : f.hom₃ = g.hom₃)
Goal: f = g
-- CategoryTheory.Pretriangulated.id_hom₁
@[simp]
lemma id_hom₁ (A : Triangle C) : TriangleMorphism.hom₁ (𝟙 A) = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A : CategoryTheory.Pretriangulated.Triangle C)
Goal: (𝟙 A).hom₁ = 𝟙 A.obj₁
-- CategoryTheory.Pretriangulated.id_hom₂
@[simp]
lemma id_hom₂ (A : Triangle C) : TriangleMorphism.hom₂ (𝟙 A) = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A : CategoryTheory.Pretriangulated.Triangle C)
Goal: (𝟙 A).hom₂ = 𝟙 A.obj₂
-- CategoryTheory.Pretriangulated.id_hom₃
@[simp]
lemma id_hom₃ (A : Triangle C) : TriangleMorphism.hom₃ (𝟙 A) = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A : CategoryTheory.Pretriangulated.Triangle C)
Goal: (𝟙 A).hom₃ = 𝟙 A.obj₃
-- CategoryTheory.Pretriangulated.comp_hom₁
@[simp, reassoc]
lemma comp_hom₁ {X Y Z : Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z) :
    (f ≫ g).hom₁ = f.hom₁ ≫ g.hom₁ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : CategoryTheory.Pretriangulated.Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z)
Goal: (f ≫ g).hom₁ = f.hom₁ ≫ g.hom₁
-- CategoryTheory.Pretriangulated.comp_hom₂
@[simp, reassoc]
lemma comp_hom₂ {X Y Z : Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z) :
    (f ≫ g).hom₂ = f.hom₂ ≫ g.hom₂ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : CategoryTheory.Pretriangulated.Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z)
Goal: (f ≫ g).hom₂ = f.hom₂ ≫ g.hom₂
-- CategoryTheory.Pretriangulated.comp_hom₃
@[simp, reassoc]
lemma comp_hom₃ {X Y Z : Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z) :
    (f ≫ g).hom₃ = f.hom₃ ≫ g.hom₃ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {X Y Z : CategoryTheory.Pretriangulated.Triangle C} (f : X ⟶ Y) (g : Y ⟶ Z)
Goal: (f ≫ g).hom₃ = f.hom₃ ≫ g.hom₃
-- CategoryTheory.Pretriangulated.Triangle.homMk_hom₁
@[simps]
def Triangle.homMk (A B : Triangle C)
    (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃)
    (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat)
    (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat)
    (comm₃ : A.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ B.mor₃ := by aesop_cat) :
    A ⟶ B 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A B : CategoryTheory.Pretriangulated.Triangle C) (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃) (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat) (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat) (comm₃ : A.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map hom₁ = hom₃ ≫ B.mor₃ := by aesop_cat)
Goal: (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₁ = hom₁
-- CategoryTheory.Pretriangulated.Triangle.homMk_hom₂
@[simps]
def Triangle.homMk (A B : Triangle C)
    (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃)
    (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat)
    (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat)
    (comm₃ : A.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ B.mor₃ := by aesop_cat) :
    A ⟶ B 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A B : CategoryTheory.Pretriangulated.Triangle C) (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃) (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat) (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat) (comm₃ : A.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map hom₁ = hom₃ ≫ B.mor₃ := by aesop_cat)
Goal: (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₂ = hom₂
-- CategoryTheory.Pretriangulated.Triangle.homMk_hom₃
@[simps]
def Triangle.homMk (A B : Triangle C)
    (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃)
    (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat)
    (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat)
    (comm₃ : A.mor₃ ≫ hom₁⟦1⟧' = hom₃ ≫ B.mor₃ := by aesop_cat) :
    A ⟶ B 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A B : CategoryTheory.Pretriangulated.Triangle C) (hom₁ : A.obj₁ ⟶ B.obj₁) (hom₂ : A.obj₂ ⟶ B.obj₂) (hom₃ : A.obj₃ ⟶ B.obj₃) (comm₁ : A.mor₁ ≫ hom₂ = hom₁ ≫ B.mor₁ := by aesop_cat) (comm₂ : A.mor₂ ≫ hom₃ = hom₂ ≫ B.mor₂ := by aesop_cat) (comm₃ : A.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map hom₁ = hom₃ ≫ B.mor₃ := by aesop_cat)
Goal: (A.homMk B hom₁ hom₂ hom₃ comm₁ comm₂ comm₃).hom₃ = hom₃
-- CategoryTheory.Pretriangulated.Triangle.isoMk_hom
@[simps]
def Triangle.isoMk (A B : Triangle C)
    (iso₁ : A.obj₁ ≅ B.obj₁) (iso₂ : A.obj₂ ≅ B.obj₂) (iso₃ : A.obj₃ ≅ B.obj₃)
    (comm₁ : A.mor₁ ≫ iso₂.hom = iso₁.hom ≫ B.mor₁ := by aesop_cat)
    (comm₂ : A.mor₂ ≫ iso₃.hom = iso₂.hom ≫ B.mor₂ := by aesop_cat)
    (comm₃ : A.mor₃ ≫ iso₁.hom⟦1⟧' = iso₃.hom ≫ B.mor₃ := by aesop_cat) : A ≅ B 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A B : CategoryTheory.Pretriangulated.Triangle C) (iso₁ : A.obj₁ ≅ B.obj₁) (iso₂ : A.obj₂ ≅ B.obj₂) (iso₃ : A.obj₃ ≅ B.obj₃) (comm₁ : A.mor₁ ≫ iso₂.hom = iso₁.hom ≫ B.mor₁ := by aesop_cat) (comm₂ : A.mor₂ ≫ iso₃.hom = iso₂.hom ≫ B.mor₂ := by aesop_cat) (comm₃ : A.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map iso₁.hom = iso₃.hom ≫ B.mor₃ := by aesop_cat)
Goal: (A.isoMk B iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).hom = A.homMk B iso₁.hom iso₂.hom iso₃.hom comm₁ comm₂ comm₃
-- CategoryTheory.Pretriangulated.Triangle.isoMk_inv
@[simps]
def Triangle.isoMk (A B : Triangle C)
    (iso₁ : A.obj₁ ≅ B.obj₁) (iso₂ : A.obj₂ ≅ B.obj₂) (iso₃ : A.obj₃ ≅ B.obj₃)
    (comm₁ : A.mor₁ ≫ iso₂.hom = iso₁.hom ≫ B.mor₁ := by aesop_cat)
    (comm₂ : A.mor₂ ≫ iso₃.hom = iso₂.hom ≫ B.mor₂ := by aesop_cat)
    (comm₃ : A.mor₃ ≫ iso₁.hom⟦1⟧' = iso₃.hom ≫ B.mor₃ := by aesop_cat) : A ≅ B 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (A B : CategoryTheory.Pretriangulated.Triangle C) (iso₁ : A.obj₁ ≅ B.obj₁) (iso₂ : A.obj₂ ≅ B.obj₂) (iso₃ : A.obj₃ ≅ B.obj₃) (comm₁ : A.mor₁ ≫ iso₂.hom = iso₁.hom ≫ B.mor₁ := by aesop_cat) (comm₂ : A.mor₂ ≫ iso₃.hom = iso₂.hom ≫ B.mor₂ := by aesop_cat) (comm₃ : A.mor₃ ≫ (CategoryTheory.shiftFunctor C 1).map iso₁.hom = iso₃.hom ≫ B.mor₃ := by aesop_cat)
Goal: (A.isoMk B iso₁ iso₂ iso₃ comm₁ comm₂ comm₃).inv = B.homMk A iso₁.inv iso₂.inv iso₃.inv ⋯ ⋯ ⋯
-- CategoryTheory.Pretriangulated.Triangle.isIso_of_isIsos
lemma Triangle.isIso_of_isIsos {A B : Triangle C} (f : A ⟶ B)
    (h₁ : IsIso f.hom₁) (h₂ : IsIso f.hom₂) (h₃ : IsIso f.hom₃) : IsIso f 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (f : A ⟶ B) (h₁ : CategoryTheory.IsIso f.hom₁) (h₂ : CategoryTheory.IsIso f.hom₂) (h₃ : CategoryTheory.IsIso f.hom₃)
Goal: CategoryTheory.IsIso f
-- CategoryTheory.Iso.hom_inv_id_triangle_hom₁
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.hom_inv_id_triangle_hom₁ {A B : Triangle C} (e : A ≅ B) :
    e.hom.hom₁ ≫ e.inv.hom₁ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.hom.hom₁ ≫ e.inv.hom₁ = 𝟙 A.obj₁
-- CategoryTheory.Iso.hom_inv_id_triangle_hom₂
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.hom_inv_id_triangle_hom₂ {A B : Triangle C} (e : A ≅ B) :
    e.hom.hom₂ ≫ e.inv.hom₂ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.hom.hom₂ ≫ e.inv.hom₂ = 𝟙 A.obj₂
-- CategoryTheory.Iso.hom_inv_id_triangle_hom₃
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.hom_inv_id_triangle_hom₃ {A B : Triangle C} (e : A ≅ B) :
    e.hom.hom₃ ≫ e.inv.hom₃ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.hom.hom₃ ≫ e.inv.hom₃ = 𝟙 A.obj₃
-- CategoryTheory.Iso.inv_hom_id_triangle_hom₁
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.inv_hom_id_triangle_hom₁ {A B : Triangle C} (e : A ≅ B) :
    e.inv.hom₁ ≫ e.hom.hom₁ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.inv.hom₁ ≫ e.hom.hom₁ = 𝟙 B.obj₁
-- CategoryTheory.Iso.inv_hom_id_triangle_hom₂
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.inv_hom_id_triangle_hom₂ {A B : Triangle C} (e : A ≅ B) :
    e.inv.hom₂ ≫ e.hom.hom₂ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.inv.hom₂ ≫ e.hom.hom₂ = 𝟙 B.obj₂
-- CategoryTheory.Iso.inv_hom_id_triangle_hom₃
@[reassoc (attr := simp)]
lemma _root_.CategoryTheory.Iso.inv_hom_id_triangle_hom₃ {A B : Triangle C} (e : A ≅ B) :
    e.inv.hom₃ ≫ e.hom.hom₃ = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (e : A ≅ B)
Goal: e.inv.hom₃ ≫ e.hom.hom₃ = 𝟙 B.obj₃
-- CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₁
lemma Triangle.eqToHom_hom₁ {A B : Triangle C} (h : A = B) :
    (eqToHom h).hom₁ = eqToHom (by subst h; rfl) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (h : A = B)
Goal: (CategoryTheory.eqToHom h).hom₁ = CategoryTheory.eqToHom ⋯
-- CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₂
lemma Triangle.eqToHom_hom₂ {A B : Triangle C} (h : A = B) :
    (eqToHom h).hom₂ = eqToHom (by subst h; rfl) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (h : A = B)
Goal: (CategoryTheory.eqToHom h).hom₂ = CategoryTheory.eqToHom ⋯
-- CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₃
lemma Triangle.eqToHom_hom₃ {A B : Triangle C} (h : A = B) :
    (eqToHom h).hom₃ = eqToHom (by subst h; rfl) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] {A B : CategoryTheory.Pretriangulated.Triangle C} (h : A = B)
Goal: (CategoryTheory.eqToHom h).hom₃ = CategoryTheory.eqToHom ⋯
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_mor₁
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).mor₁ = CategoryTheory.Limits.biprod.inl
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_mor₃
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).mor₃ = 0
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_mor₂
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).mor₂ = CategoryTheory.Limits.biprod.snd
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_obj₂
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).obj₂ = (X₁ ⊞ X₂)
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_obj₃
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).obj₃ = X₂
-- CategoryTheory.Pretriangulated.binaryBiproductTriangle_obj₁
@[simps!]
def binaryBiproductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryBiproduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryBiproductTriangle X₁ X₂).obj₁ = X₁
-- CategoryTheory.Pretriangulated.binaryProductTriangle_obj₂
@[simps!]
def binaryProductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryProduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryProduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryProductTriangle X₁ X₂).obj₂ = (X₁ ⨯ X₂)
-- CategoryTheory.Pretriangulated.binaryProductTriangle_obj₃
@[simps!]
def binaryProductTriangle (X₁ X₂ : C) [HasZeroMorphisms C] [HasBinaryProduct X₁ X₂] :
    Triangle C 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.HasShift C ℤ] (X₁ X₂ : C) [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryProduct X₁ X₂]
Goal: (CategoryTheory.Pretriangulated.binaryProductTriangle X₁ X₂).obj₃ = X₂