-- Module: Mathlib.CategoryTheory.Abelian.LeftDerived
Goal:
C : Type u
inst : Category.{v, u} C
D : Type u_1
inst_1 : Category.{v_1, u_1} D
inst_2 : Abelian.{v, u} C
inst_3 : HasProjectiveResolutions.{v, u} C
inst_4 : Abelian.{v_1, u_1} D
F G : Functor.{v, v_1, u, u_1} C D
inst_5 : F.Additive
inst_6 : G.Additive
α : F ⟶ G
X : C
P : ProjectiveResolution.{v, u} X
n : ℕ
erw :
  Eq (α := (F.leftDerived n).obj X ⟶ (G.leftDerived n).obj X)
    (Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
        (Iso.hom (P.isoLeftDerivedToHomotopyCategoryObj F)) ≫
      Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
          (Functor.map (HomotopyCategory.quotient D (ComplexShape.down ℕ))
            (NatTrans.app (NatTrans.mapHomologicalComplex α (ComplexShape.down ℕ)) P.complex)) ≫
        Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
          (Iso.inv (P.isoLeftDerivedToHomotopyCategoryObj G)))
    (Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
        (Iso.hom (P.isoLeftDerivedToHomotopyCategoryObj F)) ≫
      Functor.map
          (HomotopyCategory.quotient D (ComplexShape.down ℕ) ⋙
            HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
          (NatTrans.app (NatTrans.mapHomologicalComplex α (ComplexShape.down ℕ)) P.complex) ≫
        NatTrans.app (Iso.hom (HomotopyCategory.homologyFunctorFactors D (ComplexShape.down ℕ) n))
            (Functor.obj (G.mapHomologicalComplex (ComplexShape.down ℕ)) P.complex) ≫
          NatTrans.app (Iso.inv (HomotopyCategory.homologyFunctorFactors D (ComplexShape.down ℕ) n))
              (Functor.obj (G.mapHomologicalComplex (ComplexShape.down ℕ)) P.complex) ≫
            Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
              (Iso.inv (P.isoLeftDerivedToHomotopyCategoryObj G)))
⊢ Eq (α := (F.leftDerived n).obj X ⟶ (G.leftDerived n).obj X)
    (Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
        (Iso.hom (P.isoLeftDerivedToHomotopyCategoryObj F)) ≫
      Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
          (Functor.map (HomotopyCategory.quotient D (ComplexShape.down ℕ))
            (NatTrans.app (NatTrans.mapHomologicalComplex α (ComplexShape.down ℕ)) P.complex)) ≫
        Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
          (Iso.inv (P.isoLeftDerivedToHomotopyCategoryObj G)))
    (Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
        (Iso.hom (P.isoLeftDerivedToHomotopyCategoryObj F)) ≫
      NatTrans.app (Iso.hom (HomotopyCategory.homologyFunctorFactors D (ComplexShape.down ℕ) n))
          (Functor.obj (F.mapHomologicalComplex (ComplexShape.down ℕ)) P.complex) ≫
        HomologicalComplex.homologyMap (NatTrans.app (NatTrans.mapHomologicalComplex α (ComplexShape.down ℕ)) P.complex)
            n ≫
          NatTrans.app (Iso.inv (HomotopyCategory.homologyFunctorFactors D (ComplexShape.down ℕ) n))
              (Functor.obj (G.mapHomologicalComplex (ComplexShape.down ℕ)) P.complex) ≫
            Functor.map (HomotopyCategory.homologyFunctor D (ComplexShape.down ℕ) n)
              (Iso.inv (P.isoLeftDerivedToHomotopyCategoryObj G)))

Tactic:
erw [← (HomotopyCategory.homologyFunctorFactors D (ComplexShape.down ℕ) n).hom.naturality_assoc
    ((NatTrans.mapHomologicalComplex α (ComplexShape.down ℕ)).app P.complex)]

Premises used: HomotopyCategory.homologyFunctorFactors, CategoryTheory.ProjectiveResolution.complex, CategoryTheory.NatTrans.mapHomologicalComplex, Nat, ComplexShape.down, CategoryTheory.Iso.hom, CategoryTheory.NatTrans.app, CategoryTheory.NatTrans.naturality_assoc