-- Module: Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
Goal:
C : Type u_1
D : Type u_2
inst : Category.{v_1, u_1} C
inst_1 : Category.{v_2, u_2} D
inst_2 : HasZeroMorphisms.{v_1, u_1} C
inst_3 : HasZeroMorphisms.{v_2, u_2} D
S₁ S₂ : ShortComplex.{v_1, u_1} C
φ : S₁ ⟶ S₂
F : Functor.{v_1, v_2, u_1, u_2} C D
inst_4 : F.PreservesZeroMorphisms
inst_5 : S₁.HasRightHomology
inst_6 : S₂.HasRightHomology
inst_7 : F.PreservesRightHomologyOf S₁
inst_8 : F.PreservesRightHomologyOf S₂
rw :
  Eq (α := rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := F.obj S₁.rightHomology) (Iso.hom (S₁.mapRightHomologyIso F))
        (CategoryStruct.comp (Y := F.obj S₂.rightHomology) (F.map (rightHomologyMap φ))
          (Iso.inv (S₂.mapRightHomologyIso F))) :
      rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := F.obj S₁.rightHomology) (Iso.hom (S₁.mapRightHomologyIso F))
        (CategoryStruct.comp (Y := rightHomology (S₁.map F))
          (Iso.inv (S₁.mapRightHomologyIso F) : F.obj S₁.rightHomology ⟶ rightHomology (S₁.map F))
          (rightHomologyMap (Functor.map F.mapShortComplex φ) :
            rightHomology (S₁.map F) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))) :
      rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
rw₁ :
  Eq (α := rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := rightHomology (Functor.obj F.mapShortComplex S₂))
        (rightHomologyMap (Functor.map F.mapShortComplex φ) :
          rightHomology (Functor.obj F.mapShortComplex S₁) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))
        (CategoryStruct.comp (Y := F.obj S₂.rightHomology) (Iso.hom (S₂.mapRightHomologyIso F))
            (Iso.inv (S₂.mapRightHomologyIso F)) :
          rightHomology (Functor.obj F.mapShortComplex S₂) ⟶ rightHomology (S₂.map F)) :
      rightHomology (Functor.obj F.mapShortComplex S₁) ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := F.obj S₁.rightHomology) (Iso.hom (S₁.mapRightHomologyIso F))
      (CategoryStruct.comp (Y := rightHomology (S₁.map F))
        (Iso.inv (S₁.mapRightHomologyIso F) : F.obj S₁.rightHomology ⟶ rightHomology (S₁.map F))
        (rightHomologyMap (Functor.map F.mapShortComplex φ) :
          rightHomology (S₁.map F) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))))
rw₂ :
  Eq (α := rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (rightHomologyMap (Functor.map F.mapShortComplex φ) ≫ 𝟙 (rightHomology (Functor.obj F.mapShortComplex S₂)) :
      rightHomology (Functor.obj F.mapShortComplex S₁) ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := F.obj S₁.rightHomology) (Iso.hom (S₁.mapRightHomologyIso F))
        (CategoryStruct.comp (Y := rightHomology (S₁.map F))
          (Iso.inv (S₁.mapRightHomologyIso F) : F.obj S₁.rightHomology ⟶ rightHomology (S₁.map F))
          (rightHomologyMap (Functor.map F.mapShortComplex φ) :
            rightHomology (S₁.map F) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))) :
      rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
rw₃ :
  Eq (α := rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (rightHomologyMap (Functor.map F.mapShortComplex φ) :
      rightHomology (Functor.obj F.mapShortComplex S₁) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))
    (CategoryStruct.comp (Y := F.obj S₁.rightHomology) (Iso.hom (S₁.mapRightHomologyIso F))
      (CategoryStruct.comp (Y := rightHomology (S₁.map F))
        (Iso.inv (S₁.mapRightHomologyIso F) : F.obj S₁.rightHomology ⟶ rightHomology (S₁.map F))
        (rightHomologyMap (Functor.map F.mapShortComplex φ) :
          rightHomology (S₁.map F) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))))
rw₄ rw₅ :
  Eq (α := rightHomology (S₁.map F) ⟶ rightHomology (S₂.map F))
    (rightHomologyMap (Functor.map F.mapShortComplex φ) :
      rightHomology (Functor.obj F.mapShortComplex S₁) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))
    (rightHomologyMap (Functor.map F.mapShortComplex φ))
⊢ Eq (α := F.obj S₁.rightHomology ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := F.obj S₂.rightHomology) (F.map (rightHomologyMap φ))
        (Iso.inv (S₂.mapRightHomologyIso F)) :
      F.obj S₁.rightHomology ⟶ rightHomology (S₂.map F))
    (CategoryStruct.comp (Y := rightHomology (S₁.map F))
        (Iso.inv (S₁.mapRightHomologyIso F) : F.obj S₁.rightHomology ⟶ rightHomology (S₁.map F))
        (rightHomologyMap (Functor.map F.mapShortComplex φ) :
          rightHomology (S₁.map F) ⟶ rightHomology (Functor.obj F.mapShortComplex S₂)) :
      F.obj S₁.rightHomology ⟶ rightHomology (Functor.obj F.mapShortComplex S₂))

Tactic:
rw [← cancel_epi (S₁.mapRightHomologyIso F).hom, ← mapRightHomologyIso_hom_naturality_assoc,
    Iso.hom_inv_id, comp_id, Iso.hom_inv_id_assoc]

Premises used: CategoryTheory.Iso.hom_inv_id, CategoryTheory.Category.comp_id, CategoryTheory.ShortComplex.mapRightHomologyIso, CategoryTheory.Iso.hom_inv_id_assoc, CategoryTheory.ShortComplex.mapRightHomologyIso_hom_naturality_assoc, CategoryTheory.cancel_epi, CategoryTheory.Iso.hom