Theorem: CategoryTheory.Functor.mapTriangleInvRotateIso_hom_app_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.222118, u_1} C
inst✝¹⁰ : Category.{?u.222122, u_2} D
inst✝⁹ : Category.{?u.222126, u_3} E
inst✝⁸ : HasShift C ℤ
inst✝⁷ : HasShift D ℤ
inst✝⁶ : HasShift E ℤ
F : C ⥤ D
inst✝⁵ : F.CommShift ℤ
G : D ⥤ E
inst✝⁴ : G.CommShift ℤ
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ inst✝ : F.Additive
T : Triangle C
⊢ ((F.mapTriangle ⋙ invRotate D).obj T).mor₁ ≫ (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₂).hom =
    ((F.commShiftIso (-1)).symm.app T.obj₃).hom ≫ ((invRotate C ⋙ F.mapTriangle).obj T).mor₁
state_after: no goals
tactic: aesop_cat
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹¹ : Category.{?u.222118, u_1} C
inst✝¹⁰ : Category.{?u.222122, u_2} D
inst✝⁹ : Category.{?u.222126, u_3} E
inst✝⁸ : HasShift C ℤ
inst✝⁷ : HasShift D ℤ
inst✝⁶ : HasShift E ℤ
F : C ⥤ D
inst✝⁵ : F.CommShift ℤ
G : D ⥤ E
inst✝⁴ : G.CommShift ℤ
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ inst✝ : F.Additive
T : Triangle C
⊢ ((F.mapTriangle ⋙ invRotate D).obj T).mor₂ ≫ (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₃).hom =
    (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₂).hom ≫ ((invRotate C ⋙ F.mapTriangle).obj T).mor₂
state_after: no goals
tactic: aesop_cat
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹¹ : Category.{?u.222118, u_1} C
inst✝¹⁰ : Category.{?u.222122, u_2} D
inst✝⁹ : Category.{?u.222126, u_3} E
inst✝⁸ : HasShift C ℤ
inst✝⁷ : HasShift D ℤ
inst✝⁶ : HasShift E ℤ
F : C ⥤ D
inst✝⁵ : F.CommShift ℤ
G : D ⥤ E
inst✝⁴ : G.CommShift ℤ
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ inst✝ : F.Additive
T : Triangle C
⊢ ((F.mapTriangle ⋙ invRotate D).obj T).mor₃ ≫ (shiftFunctor D 1).map ((F.commShiftIso (-1)).symm.app T.obj₃).hom =
    (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₃).hom ≫ ((invRotate C ⋙ F.mapTriangle).obj T).mor₃
state_after: no goals
tactic: aesop_cat
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹¹ : Category.{?u.222118, u_1} C
inst✝¹⁰ : Category.{?u.222122, u_2} D
inst✝⁹ : Category.{?u.222126, u_3} E
inst✝⁸ : HasShift C ℤ
inst✝⁷ : HasShift D ℤ
inst✝⁶ : HasShift E ℤ
F : C ⥤ D
inst✝⁵ : F.CommShift ℤ
G : D ⥤ E
inst✝⁴ : G.CommShift ℤ
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ inst✝ : F.Additive
⊢ ∀ {X Y : Triangle C} (f : X ⟶ Y),
    (F.mapTriangle ⋙ invRotate D).map f ≫
        ((fun T =>
              ((F.mapTriangle ⋙ invRotate D).obj T).isoMk ((invRotate C ⋙ F.mapTriangle).obj T)
                ((F.commShiftIso (-1)).symm.app T.obj₃) (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₂)
                (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₃) ⋯ ⋯ ⋯)
            Y).hom =
      ((fun T =>
              ((F.mapTriangle ⋙ invRotate D).obj T).isoMk ((invRotate C ⋙ F.mapTriangle).obj T)
                ((F.commShiftIso (-1)).symm.app T.obj₃) (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₂)
                (Iso.refl ((F.mapTriangle ⋙ invRotate D).obj T).obj₃) ⋯ ⋯ ⋯)
            X).hom ≫
        (invRotate C ⋙ F.mapTriangle).map f
state_after: no goals
tactic: aesop_cat