Theorem: CategoryTheory.Functor.mapTriangle_map_hom₃
File: Mathlib/CategoryTheory/Triangulated/Functor.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) X✝).mor₁ ≫
      F.map f.hom₂ =
    F.map f.hom₁ ≫
      ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) Y✝).mor₁
state_after: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ F.map X✝.mor₁ ≫ F.map f.hom₂ = F.map f.hom₁ ≫ F.map Y✝.mor₁
tactic: dsimp
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ F.map X✝.mor₁ ≫ F.map f.hom₂ = F.map f.hom₁ ≫ F.map Y✝.mor₁
state_after: no goals
tactic: simp only [← F.map_comp, f.comm₁]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) X✝).mor₂ ≫
      F.map f.hom₃ =
    F.map f.hom₂ ≫
      ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) Y✝).mor₂
state_after: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ F.map X✝.mor₂ ≫ F.map f.hom₃ = F.map f.hom₂ ≫ F.map Y✝.mor₂
tactic: dsimp
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ F.map X✝.mor₂ ≫ F.map f.hom₃ = F.map f.hom₂ ≫ F.map Y✝.mor₂
state_after: no goals
tactic: simp only [← F.map_comp, f.comm₂]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) X✝).mor₃ ≫
      (shiftFunctor D 1).map (F.map f.hom₁) =
    F.map f.hom₃ ≫
      ((fun T => Triangle.mk (F.map T.mor₁) (F.map T.mor₂) (F.map T.mor₃ ≫ (F.commShiftIso 1).hom.app T.obj₁)) Y✝).mor₃
state_after: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ (F.map X✝.mor₃ ≫ (F.commShiftIso 1).hom.app X✝.obj₁) ≫ (shiftFunctor D 1).map (F.map f.hom₁) =
    F.map f.hom₃ ≫ F.map Y✝.mor₃ ≫ (F.commShiftIso 1).hom.app Y✝.obj₁
tactic: dsimp [Functor.comp]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{?u.284, u_1} C
inst✝⁶ : Category.{?u.288, u_2} D
inst✝⁵ : Category.{?u.292, u_3} E
inst✝⁴ : HasShift C ℤ
inst✝³ : HasShift D ℤ
inst✝² : HasShift E ℤ
F : C ⥤ D
inst✝¹ : F.CommShift ℤ
G : D ⥤ E
inst✝ : G.CommShift ℤ
X✝ Y✝ : Triangle C
f : X✝ ⟶ Y✝
⊢ (F.map X✝.mor₃ ≫ (F.commShiftIso 1).hom.app X✝.obj₁) ≫ (shiftFunctor D 1).map (F.map f.hom₁) =
    F.map f.hom₃ ≫ F.map Y✝.mor₃ ≫ (F.commShiftIso 1).hom.app Y✝.obj₁
state_after: no goals
tactic: simp only [Category.assoc, ← NatTrans.naturality,
          ← F.map_comp_assoc, f.comm₃]