Module: Mathlib.CategoryTheory.Triangulated.SpectralObject

Goal state before:
pp: C : Type u_1
ι : Type u_2
inst✝¹³ : Category.{v_1, u_1} C
inst✝¹² : Category.{v_2, u_2} ι
inst✝¹¹ : HasZeroObject C
inst✝¹⁰ : HasShift C ℤ
inst✝⁹ : Preadditive C
inst✝⁸ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝⁷ : Pretriangulated C
D : Type u_3
inst✝⁶ : Category.{v_3, u_3} D
inst✝⁵ : HasZeroObject D
inst✝⁴ : HasShift D ℤ
inst✝³ : Preadditive D
inst✝² : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝¹ : Pretriangulated D
X : SpectralObject C ι
ι' : Type u_4
inst✝ : Category.{?u.64, u_4} ι'
F : ι' ⥤ ι
D₁ D₂ : ComposableArrows ι' 2
f : D₁ ⟶ D₂
this :
  X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).hom ≫
      (functorArrows ι 1 2 2 _proof_2 _proof_4 ⋙ X.ω₁).map ((F.mapComposableArrows 2).map f) ≫
        X.δ'.app ((F.mapComposableArrows 2).obj D₂) =
    X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).hom ≫
      X.δ'.app ((F.mapComposableArrows 2).obj D₁) ≫
        (functorArrows ι 0 1 2 _proof_6 _proof_2 ⋙ X.ω₁ ⋙ shiftFunctor C 1).map ((F.mapComposableArrows 2).map f)
⊢ (functorArrows ι' 1 2 2 _proof_2 _proof_4 ⋙ F.mapComposableArrows 1 ⋙ X.ω₁).map f ≫
      X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map' 1 2 _proof_2 _proof_4)).hom ≫
        X.δ'.app ((F.mapComposableArrows 2).obj D₂) ≫
          (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map (homOfLE ⋯))).inv) =
    (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map' 1 2 _proof_2 _proof_4)).hom ≫
        X.δ'.app ((F.mapComposableArrows 2).obj D₁) ≫
          (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).inv)) ≫
      (functorArrows ι' 0 1 2 _proof_6 _proof_2 ⋙ (F.mapComposableArrows 1 ⋙ X.ω₁) ⋙ shiftFunctor C 1).map f

Tactic:
rw [← cancel_mono ((X.ω₁.map (F.mapComposableArrowsObjMk₁Iso _).hom)⟦(1 : ℤ)⟧')]

Goal state after:
C : Type u_1
ι : Type u_2
inst✝¹³ : Category.{v_1, u_1} C
inst✝¹² : Category.{v_2, u_2} ι
inst✝¹¹ : HasZeroObject C
inst✝¹⁰ : HasShift C ℤ
inst✝⁹ : Preadditive C
inst✝⁸ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝⁷ : Pretriangulated C
D : Type u_3
inst✝⁶ : Category.{v_3, u_3} D
inst✝⁵ : HasZeroObject D
inst✝⁴ : HasShift D ℤ
inst✝³ : Preadditive D
inst✝² : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝¹ : Pretriangulated D
X : SpectralObject C ι
ι' : Type u_4
inst✝ : Category.{?u.64, u_4} ι'
F : ι' ⥤ ι
D₁ D₂ : ComposableArrows ι' 2
f : D₁ ⟶ D₂
this :
  X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).hom ≫
      (functorArrows ι 1 2 2 _proof_2 _proof_4 ⋙ X.ω₁).map ((F.mapComposableArrows 2).map f) ≫
        X.δ'.app ((F.mapComposableArrows 2).obj D₂) =
    X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).hom ≫
      X.δ'.app ((F.mapComposableArrows 2).obj D₁) ≫
        (functorArrows ι 0 1 2 _proof_6 _proof_2 ⋙ X.ω₁ ⋙ shiftFunctor C 1).map ((F.mapComposableArrows 2).map f)
⊢ ((functorArrows ι' 1 2 2 _proof_2 _proof_4 ⋙ F.mapComposableArrows 1 ⋙ X.ω₁).map f ≫
        X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map' 1 2 _proof_2 _proof_4)).hom ≫
          X.δ'.app ((F.mapComposableArrows 2).obj D₂) ≫
            (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map (homOfLE ⋯))).inv)) ≫
      (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map' 0 1 _proof_6 _proof_2)).hom) =
    ((X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map' 1 2 _proof_2 _proof_4)).hom ≫
          X.δ'.app ((F.mapComposableArrows 2).obj D₁) ≫
            (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₁.map (homOfLE ⋯))).inv)) ≫
        (functorArrows ι' 0 1 2 _proof_6 _proof_2 ⋙ (F.mapComposableArrows 1 ⋙ X.ω₁) ⋙ shiftFunctor C 1).map f) ≫
      (shiftFunctor C 1).map (X.ω₁.map (F.mapComposableArrowsObjMk₁Iso (D₂.map' 0 1 _proof_6 _proof_2)).hom)