awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
e_a : ¬c₂.Rel i₂ (c₂.next i₂)
⊢ Eq (α :=
    (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
      X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')
    (0 :
      (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
        X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')
    (d₂ F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄ i₁ i₂ i₃ j' :
      (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
        X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')

Tactic:
rw [d₂_eq_zero]

Premises used: HomologicalComplex.mapBifunctor₂₃.d₂_eq_zero
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
h₂ : c₂.Rel i₂ (c₂.next i₂)
e_a : c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
⊢ False

Tactic:
apply h₁
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
h₂ : c₂.Rel i₂ (c₂.next i₂)
⊢ c₂₃.Rel i₂₃ (c₂₃.next i₂₃)

Tactic:
simpa only [← ComplexShape.next_π₁ c₃ c₂₃ h₂ i₃]
          using ComplexShape.rel_π₁ c₃ c₂₃ h₂ i₃

Premises used: ComplexShape.rel_π₁, ComplexShape.next_π₁
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
e_a : ¬c₃.Rel i₃ (c₃.next i₃)
⊢ Eq (α :=
    (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
      X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')
    (0 :
      (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
        X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')
    (d₃ F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄ i₁ i₂ i₃ j' :
      (F.obj (K₁.X i₁)).obj ((G₂₃.obj (K₂.X i₂)).obj (K₃.X i₃)) ⟶
        X (K₁.mapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄) j')

Tactic:
rw [d₃_eq_zero]

Premises used: HomologicalComplex.mapBifunctor₂₃.d₃_eq_zero
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
h₂ : c₃.Rel i₃ (c₃.next i₃)
e_a : c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
⊢ False

Tactic:
apply h₁
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_6, u_4} C₂₃
inst_5 : HasZeroMorphisms.{v_1, u_1} C₁
inst_6 : HasZeroMorphisms.{v_2, u_2} C₂
inst_7 : HasZeroMorphisms.{v_3, u_5} C₃
inst_8 : Preadditive.{v_6, u_4} C₂₃
inst_9 : Preadditive.{v_4, u_6} C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_10 : G₂₃.PreservesZeroMorphisms
inst_11 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_12 : F.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F.obj X₁).Additive
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_14 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_15 : TotalComplexShape c₁ c₂ c₁₂
inst_16 : TotalComplexShape c₁₂ c₃ c₄
inst_17 : TotalComplexShape c₂ c₃ c₂₃
inst_18 : TotalComplexShape c₁ c₂₃ c₄
inst_19 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_20 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_21 : DecidableEq ι₂₃
inst_22 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_23 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
i₂₃ : ι₂₃ := c₂.π c₃ c₂₃ (i₂, i₃)
h₁ : ¬c₂₃.Rel i₂₃ (c₂₃.next i₂₃)
h₂ : c₃.Rel i₃ (c₃.next i₃)
⊢ c₂₃.Rel i₂₃ (c₂₃.next i₂₃)

Tactic:
simpa only [i₂₃, ComplexShape.next_π₂ c₂ c₂₃ i₂ h₂]
          using ComplexShape.rel_π₂ c₂ c₂₃ i₂ h₂

Premises used: ComplexShape.rel_π₂, ComplexShape.next_π₂
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₁₂ : Type u_3
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_5, u_3} C₁₂
inst_5 : Category.{v_6, u_4} C₂₃
inst_6 : HasZeroMorphisms.{v_1, u_1} C₁
inst_7 : HasZeroMorphisms.{v_2, u_2} C₂
inst_8 : HasZeroMorphisms.{v_3, u_5} C₃
inst_9 : Preadditive.{v_5, u_3} C₁₂
inst_10 : Preadditive.{v_6, u_4} C₂₃
inst_11 : Preadditive.{v_4, u_6} C₄
F₁₂ : C₁ ⥤ CategoryTheory.Functor.{v_2, v_5, u_2, u_3} C₂ C₁₂
G : C₁₂ ⥤ CategoryTheory.Functor.{v_3, v_4, u_5, u_6} C₃ C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_12 : F₁₂.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F₁₂.obj X₁).PreservesZeroMorphisms
inst_14 : G.Additive
inst_15 : ∀ (X₁₂ : C₁₂), (G.obj X₁₂).PreservesZeroMorphisms
inst_16 : G₂₃.PreservesZeroMorphisms
inst_17 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_18 : F.PreservesZeroMorphisms
inst_19 : ∀ (X₁ : C₁), (F.obj X₁).Additive
associator : bifunctorComp₁₂ F₁₂ G ≅ bifunctorComp₂₃ F G₂₃
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_20 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_21 : TotalComplexShape c₁ c₂ c₁₂
inst_22 : TotalComplexShape c₁₂ c₃ c₄
inst_23 : TotalComplexShape c₂ c₃ c₂₃
inst_24 : TotalComplexShape c₁ c₂₃ c₄
inst_25 : K₁.HasMapBifunctor K₂ F₁₂ c₁₂
inst_26 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_27 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_28 : DecidableEq ι₁₂
inst_29 : DecidableEq ι₂₃
inst_30 : HasMapBifunctor (K₁.mapBifunctor K₂ F₁₂ c₁₂) K₃ G c₄
inst_31 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_32 : HasGoodTrifunctor₁₂Obj F₁₂ G K₁ K₂ K₃ c₁₂ c₄
inst_33 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
h₁ : c₁.Rel i₁ (c₁.next i₁)
⊢ Eq (α :=
    (((bifunctorComp₁₂ F₁₂ G).obj (K₁.X i₁)).obj (K₂.X i₂)).obj (K₃.X i₃) ⟶
      (((bifunctorComp₂₃ F G₂₃).obj (K₁.X (c₁.next i₁))).obj (K₂.X i₂)).obj (K₃.X i₃))
    (NatTrans.app (NatTrans.app ((bifunctorComp₁₂ F₁₂ G).map (K₁.d i₁ (c₁.next i₁))) (K₂.X i₂)) (K₃.X i₃) ≫
      NatTrans.app (NatTrans.app (associator.hom.app (K₁.X (c₁.next i₁))) (K₂.X i₂)) (K₃.X i₃))
    (NatTrans.app (NatTrans.app (associator.hom.app (K₁.X i₁)) (K₂.X i₂)) (K₃.X i₃) ≫
      NatTrans.app (NatTrans.app ((bifunctorComp₂₃ F G₂₃).map (K₁.d i₁ (c₁.next i₁))) (K₂.X i₂)) (K₃.X i₃))

Tactic:
have := NatTrans.naturality_app_app associator.hom
      (K₁.d i₁ (c₁.next i₁)) (K₂.X i₂) (K₃.X i₃)
-- Module: Mathlib.Algebra.Homology.BifunctorAssociator
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₁₂ : Type u_3
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_5} C₃
inst_3 : Category.{v_4, u_6} C₄
inst_4 : Category.{v_5, u_3} C₁₂
inst_5 : Category.{v_6, u_4} C₂₃
inst_6 : HasZeroMorphisms.{v_1, u_1} C₁
inst_7 : HasZeroMorphisms.{v_2, u_2} C₂
inst_8 : HasZeroMorphisms.{v_3, u_5} C₃
inst_9 : Preadditive.{v_5, u_3} C₁₂
inst_10 : Preadditive.{v_6, u_4} C₂₃
inst_11 : Preadditive.{v_4, u_6} C₄
F₁₂ : C₁ ⥤ CategoryTheory.Functor.{v_2, v_5, u_2, u_3} C₂ C₁₂
G : C₁₂ ⥤ CategoryTheory.Functor.{v_3, v_4, u_5, u_6} C₃ C₄
F : C₁ ⥤ CategoryTheory.Functor.{v_6, v_4, u_4, u_6} C₂₃ C₄
G₂₃ : C₂ ⥤ CategoryTheory.Functor.{v_3, v_6, u_5, u_4} C₃ C₂₃
inst_12 : F₁₂.PreservesZeroMorphisms
inst_13 : ∀ (X₁ : C₁), (F₁₂.obj X₁).PreservesZeroMorphisms
inst_14 : G.Additive
inst_15 : ∀ (X₁₂ : C₁₂), (G.obj X₁₂).PreservesZeroMorphisms
inst_16 : G₂₃.PreservesZeroMorphisms
inst_17 : ∀ (X₂ : C₂), (G₂₃.obj X₂).PreservesZeroMorphisms
inst_18 : F.PreservesZeroMorphisms
inst_19 : ∀ (X₁ : C₁), (F.obj X₁).Additive
associator : bifunctorComp₁₂ F₁₂ G ≅ bifunctorComp₂₃ F G₂₃
ι₁ : Type u_7
ι₂ : Type u_8
ι₃ : Type u_9
ι₁₂ : Type u_10
ι₂₃ : Type u_11
ι₄ : Type u_12
inst_20 : DecidableEq ι₄
c₁ : ComplexShape ι₁
c₂ : ComplexShape ι₂
c₃ : ComplexShape ι₃
K₁ : HomologicalComplex.{v_1, u_1, u_7} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_8} C₂ c₂
K₃ : HomologicalComplex.{v_3, u_5, u_9} C₃ c₃
c₁₂ : ComplexShape ι₁₂
c₂₃ : ComplexShape ι₂₃
c₄ : ComplexShape ι₄
inst_21 : TotalComplexShape c₁ c₂ c₁₂
inst_22 : TotalComplexShape c₁₂ c₃ c₄
inst_23 : TotalComplexShape c₂ c₃ c₂₃
inst_24 : TotalComplexShape c₁ c₂₃ c₄
inst_25 : K₁.HasMapBifunctor K₂ F₁₂ c₁₂
inst_26 : K₂.HasMapBifunctor K₃ G₂₃ c₂₃
inst_27 : c₁.Associative c₂ c₃ c₁₂ c₂₃ c₄
inst_28 : DecidableEq ι₁₂
inst_29 : DecidableEq ι₂₃
inst_30 : HasMapBifunctor (K₁.mapBifunctor K₂ F₁₂ c₁₂) K₃ G c₄
inst_31 : K₁.HasMapBifunctor (K₂.mapBifunctor K₃ G₂₃ c₂₃) F c₄
inst_32 : HasGoodTrifunctor₁₂Obj F₁₂ G K₁ K₂ K₃ c₁₂ c₄
inst_33 : HasGoodTrifunctor₂₃Obj F G₂₃ K₁ K₂ K₃ c₁₂ c₂₃ c₄
j j' : ι₄
i₁ : ι₁
i₂ : ι₂
i₃ : ι₃
h : c₁.r c₂ c₃ c₁₂ c₄ (i₁, i₂, i₃) = j
h₁ : c₂.Rel i₂ (c₂.next i₂)
⊢ Eq (α :=
    (((bifunctorComp₁₂ F₁₂ G).obj (K₁.X i₁)).obj (K₂.X i₂)).obj (K₃.X i₃) ⟶
      (((bifunctorComp₂₃ F G₂₃).obj (K₁.X i₁)).obj (K₂.X (c₂.next i₂))).obj (K₃.X i₃))
    (NatTrans.app (((bifunctorComp₁₂ F₁₂ G).obj (K₁.X i₁)).map (K₂.d i₂ (c₂.next i₂))) (K₃.X i₃) ≫
      NatTrans.app (NatTrans.app (associator.hom.app (K₁.X i₁)) (K₂.X (c₂.next i₂))) (K₃.X i₃))
    (NatTrans.app (NatTrans.app (associator.hom.app (K₁.X i₁)) (K₂.X i₂)) (K₃.X i₃) ≫
      NatTrans.app (((bifunctorComp₂₃ F G₂₃).obj (K₁.X i₁)).map (K₂.d i₂ (c₂.next i₂))) (K₃.X i₃))

Tactic:
have := NatTrans.naturality_app (associator.hom.app (K₁.X i₁)) (K₃.X i₃) (K₂.d i₂ (c₂.next i₂))
-- Module: Mathlib.Algebra.Homology.BifunctorFlip
Goal:
C₁ : Type u_1
C₂ : Type u_2
D : Type u_3
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} D
I₁ : Type u_4
I₂ : Type u_5
J : Type u_6
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
inst_3 : HasZeroMorphisms.{v_1, u_1} C₁
inst_4 : HasZeroMorphisms.{v_2, u_2} C₂
inst_5 : Preadditive.{v_3, u_3} D
K₁ : HomologicalComplex.{v_1, u_1, u_4} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_5} C₂ c₂
F : C₁ ⥤ CategoryTheory.Functor.{v_2, v_3, u_2, u_3} C₂ D
inst_6 : F.PreservesZeroMorphisms
inst_7 : ∀ (X₁ : C₁), (F.obj X₁).PreservesZeroMorphisms
c : ComplexShape J
inst_8 : TotalComplexShape c₁ c₂ c
inst_9 : TotalComplexShape c₂ c₁ c
inst_10 : TotalComplexShapeSymmetry c₁ c₂ c
⊢ K₂.HasMapBifunctor K₁ F.flip c ↔ K₁.HasMapBifunctor K₂ F c

Tactic:
(((F.mapBifunctorHomologicalComplex c₁ c₂).obj K₁).obj K₂).flip_hasTotal_iff c

Premises used: HomologicalComplex₂.ofGradedObject, CategoryTheory.Functor.mapBifunctorHomologicalComplex, HomologicalComplex₂.flip, HomologicalComplex₂.flip_hasTotal_iff, CategoryTheory.Functor.obj
-- Module: Mathlib.Algebra.Homology.BifunctorFlip
Goal:
C₁ : Type u_1
C₂ : Type u_2
D : Type u_3
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} D
I₁ : Type u_4
I₂ : Type u_5
J : Type u_6
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
inst_3 : HasZeroMorphisms.{v_1, u_1} C₁
inst_4 : HasZeroMorphisms.{v_2, u_2} C₂
inst_5 : Preadditive.{v_3, u_3} D
K₁ L₁ : HomologicalComplex.{v_1, u_1, u_4} C₁ c₁
φ₁ : K₁ ⟶ L₁
K₂ L₂ : HomologicalComplex.{v_2, u_2, u_5} C₂ c₂
φ₂ : K₂ ⟶ L₂
F : C₁ ⥤ CategoryTheory.Functor.{v_2, v_3, u_2, u_3} C₂ D
inst_6 : F.PreservesZeroMorphisms
inst_7 : ∀ (X₁ : C₁), (F.obj X₁).PreservesZeroMorphisms
c : ComplexShape J
inst_8 : TotalComplexShape c₁ c₂ c
inst_9 : TotalComplexShape c₂ c₁ c
inst_10 : TotalComplexShapeSymmetry c₁ c₂ c
inst_11 : DecidableEq J
inst_12 : K₁.HasMapBifunctor K₂ F c
inst_13 : L₁.HasMapBifunctor L₂ F c
rw : K₁.HasMapBifunctor K₂ F c
⊢ K₂.HasMapBifunctor K₁ F.flip c

Tactic:
rw [hasMapBifunctor_flip_iff]

Premises used: HomologicalComplex.hasMapBifunctor_flip_iff
-- Module: Mathlib.Algebra.Homology.BifunctorFlip
Goal:
C₁ : Type u_1
C₂ : Type u_2
D : Type u_3
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} D
I₁ : Type u_4
I₂ : Type u_5
J : Type u_6
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
inst_3 : HasZeroMorphisms.{v_1, u_1} C₁
inst_4 : HasZeroMorphisms.{v_2, u_2} C₂
inst_5 : Preadditive.{v_3, u_3} D
K₁ L₁ : HomologicalComplex.{v_1, u_1, u_4} C₁ c₁
φ₁ : K₁ ⟶ L₁
K₂ L₂ : HomologicalComplex.{v_2, u_2, u_5} C₂ c₂
φ₂ : K₂ ⟶ L₂
F : C₁ ⥤ CategoryTheory.Functor.{v_2, v_3, u_2, u_3} C₂ D
inst_6 : F.PreservesZeroMorphisms
inst_7 : ∀ (X₁ : C₁), (F.obj X₁).PreservesZeroMorphisms
c : ComplexShape J
inst_8 : TotalComplexShape c₁ c₂ c
inst_9 : TotalComplexShape c₂ c₁ c
inst_10 : TotalComplexShapeSymmetry c₁ c₂ c
inst_11 : DecidableEq J
inst_12 : K₁.HasMapBifunctor K₂ F c
inst_13 : L₁.HasMapBifunctor L₂ F c
⊢ K₁.HasMapBifunctor K₂ F c

Tactic:
infer_instance
-- Module: Mathlib.Algebra.Homology.BifunctorFlip
Goal:
C₁ : Type u_1
C₂ : Type u_2
D : Type u_3
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} D
I₁ : Type u_4
I₂ : Type u_5
J : Type u_6
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
inst_3 : HasZeroMorphisms.{v_1, u_1} C₁
inst_4 : HasZeroMorphisms.{v_2, u_2} C₂
inst_5 : Preadditive.{v_3, u_3} D
K₁ L₁ : HomologicalComplex.{v_1, u_1, u_4} C₁ c₁
φ₁ : K₁ ⟶ L₁
K₂ L₂ : HomologicalComplex.{v_2, u_2, u_5} C₂ c₂
φ₂ : K₂ ⟶ L₂
F : C₁ ⥤ CategoryTheory.Functor.{v_2, v_3, u_2, u_3} C₂ D
inst_6 : F.PreservesZeroMorphisms
inst_7 : ∀ (X₁ : C₁), (F.obj X₁).PreservesZeroMorphisms
c : ComplexShape J
inst_8 : TotalComplexShape c₁ c₂ c
inst_9 : TotalComplexShape c₂ c₁ c
inst_10 : TotalComplexShapeSymmetry c₁ c₂ c
inst_11 : DecidableEq J
inst_12 : K₁.HasMapBifunctor K₂ F c
inst_13 : L₁.HasMapBifunctor L₂ F c
i₁ : I₁
i₂ : I₂
j : J
hj rw : c₂.π c₁ c (i₂, i₁) = j
rw₁ rw₂ : j = j
⊢ c₁.π c₂ c (i₁, i₂) = j

Tactic:
rw [← ComplexShape.π_symm c₁ c₂ c i₁ i₂, hj]

Premises used: ComplexShape.π_symm
-- Module: Mathlib.Algebra.Homology.BifunctorFlip
Goal:
C₁ : Type u_1
C₂ : Type u_2
D : Type u_3
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} D
I₁ : Type u_4
I₂ : Type u_5
J : Type u_6
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
inst_3 : HasZeroMorphisms.{v_1, u_1} C₁
inst_4 : HasZeroMorphisms.{v_2, u_2} C₂
inst_5 : Preadditive.{v_3, u_3} D
K₁ : HomologicalComplex.{v_1, u_1, u_4} C₁ c₁
K₂ : HomologicalComplex.{v_2, u_2, u_5} C₂ c₂
F : C₁ ⥤ CategoryTheory.Functor.{v_2, v_3, u_2, u_3} C₂ D
inst_6 : F.PreservesZeroMorphisms
inst_7 : ∀ (X₁ : C₁), (F.obj X₁).PreservesZeroMorphisms
c : ComplexShape J
inst_8 : TotalComplexShape c₁ c₂ c
inst_9 : TotalComplexShape c₂ c₁ c
inst_10 : TotalComplexShapeSymmetry c₁ c₂ c
inst_11 : DecidableEq J
inst_12 : K₁.HasMapBifunctor K₂ F c
i₁ : I₁
i₂ : I₂
j : J
hj : c₂.π c₁ c (i₂, i₁) = j
⊢ CategoryStruct.comp (Y := X (K₂.mapBifunctor K₁ F.flip c) j)
      (K₂.ιMapBifunctor K₁ F.flip c i₂ i₁ j hj :
        (F.flip.obj (K₂.X i₂)).obj (K₁.X i₁) ⟶ X (K₂.mapBifunctor K₁ F.flip c) j)
      (Hom.f (Iso.hom (K₁.mapBifunctorFlipIso K₂ F c)) j :
        X (K₂.mapBifunctor K₁ F.flip c) j ⟶ X (K₁.mapBifunctor K₂ F c) j) =
    HSMul.hSMul (β := (F.obj (K₁.X i₁)).obj (K₂.X i₂) ⟶ X (K₁.mapBifunctor K₂ F c) j) (c₁.σ c₂ c i₁ i₂)
      (K₁.ιMapBifunctor K₂ F c i₁ i₂ j ⋯)

Tactic:
HomologicalComplex₂.ιTotal_totalFlipIso_f_hom
    (((F.mapBifunctorHomologicalComplex c₁ c₂).obj K₁).obj K₂) c i₁ i₂ j hj

Premises used: HomologicalComplex₂.ofGradedObject, CategoryTheory.Functor.mapBifunctorHomologicalComplex, HomologicalComplex₂.flip, HomologicalComplex₂.ιTotal_totalFlipIso_f_hom, CategoryTheory.Functor.obj