-- Lean 4 proof step from Mathlib.CategoryTheory.Abelian.Projective.Ext (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : Abelian.{v, u} C
inst_2 : HasExt.{w, v, u} C
X Y : C
R : ProjectiveResolution.{v, u} X
n : ℕ
inst_3 : HasDerivedCategory.{u_1, v, u} C
x : Cocycle R.cochainComplex (Functor.obj (singleFunctor C 0) Y) (↑n : ℤ)
⊢ Eq.{u_1 + 1} (α :=
    ShiftedHom (C := DerivedCategory.{u_1, v, u} C) (M := ℤ)
      (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) X))
      (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) Y)) (↑n : ℤ))
    ((SmallShiftedHom.equiv (HomologicalComplex.quasiIso C (ComplexShape.up ℤ)) DerivedCategory.Q :
          (a :
              SmallShiftedHom (HomologicalComplex.quasiIso C (ComplexShape.up ℤ)) ((singleFunctor C 0).obj X)
                ((singleFunctor C 0).obj Y) (↑n : ℤ)) →
            ShiftedHom (DerivedCategory.Q.obj ((singleFunctor C 0).obj X))
              (DerivedCategory.Q.obj ((singleFunctor C 0).obj Y)) (↑n : ℤ))
        (SmallShiftedHom.comp (W := HomologicalComplex.quasiIso C (ComplexShape.up ℤ))
          (SmallShiftedHom.mk₀Inv (W := HomologicalComplex.quasiIso C (ComplexShape.up ℤ)) 0 ⋯ R.π' ⋯)
          (CohomologyClass.mk x).toSmallShiftedHom ⋯) :
      ShiftedHom (C := DerivedCategory.{u_1, v, u} C) (M := ℤ)
        (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) X))
        (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) Y)) (↑n : ℤ))
    (ShiftedHom.comp
        (ShiftedHom.mk₀ 0 ⋯
          (NatTrans.app (Iso.hom (DerivedCategory.singleFunctorIsoCompQ C 0)) X ≫
            inv (Functor.map DerivedCategory.Q R.π')))
        (ShiftedHom.comp
          (ShiftedHom.map
            ((AddEquiv.symm Cocycle.equivHomShift :
                (a : Cocycle R.cochainComplex ((singleFunctor C 0).obj Y) (↑n : ℤ)) →
                  R.cochainComplex ⟶ (shiftFunctor (CochainComplex C ℤ) (↑n : ℤ)).obj ((singleFunctor C 0).obj Y))
              x)
            DerivedCategory.Q)
          (ShiftedHom.mk₀ 0 ⋯ (NatTrans.app (Iso.inv (DerivedCategory.singleFunctorIsoCompQ C 0)) Y)) ⋯)
        ⋯ :
      ShiftedHom (C := DerivedCategory.{u_1, v, u} C) (M := ℤ) (Functor.obj (DerivedCategory.singleFunctor C 0) X)
        (Functor.obj (DerivedCategory.singleFunctor C 0) Y) (↑n : ℤ))
have simp : Eq.{u_1 + 1} (α :=
  ShiftedHom (C := DerivedCategory.{u_1, v, u} C) (M := ℤ)
    (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) X))
    (Functor.obj DerivedCategory.Q (Functor.obj (singleFunctor C 0) Y)) (↑n : ℤ))
  (ShiftedHom.comp (ShiftedHom.mk₀ 0 sorry (inv (Functor.map DerivedCategory.Q R.π')))
    (ShiftedHom.map
      ((AddEquiv.symm Cocycle.equivHomShift :
          (a : Cocycle R.cochainComplex ((singleFunctor C 0).obj Y) (↑n : ℤ)) →
            R.cochainComplex ⟶ (shiftFunctor (CochainComplex C ℤ) (↑n : ℤ)).obj ((singleFunctor C 0).obj Y))
        x)
      DerivedCategory.Q)
    sorry)
  (ShiftedHom.comp (ShiftedHom.mk₀ 0 sorry (inv (Functor.map DerivedCategory.Q R.π')))
    (ShiftedHom.comp
      (ShiftedHom.map
        ((AddEquiv.symm Cocycle.equivHomShift :
            (a : Cocycle R.cochainComplex ((singleFunctor C 0).obj Y) (↑n : ℤ)) →
              R.cochainComplex ⟶ (shiftFunctor (CochainComplex C ℤ) (↑n : ℤ)).obj ((singleFunctor C 0).obj Y))
          x)
        DerivedCategory.Q)
      (ShiftedHom.mk₀ 0 sorry (𝟙 (Functor.obj (DerivedCategory.singleFunctor C 0) Y))) sorry)
    sorry)
Tactic: simp only [SmallShiftedHom.equiv_comp, SmallShiftedHom.equiv_mk₀Inv, isoOfHom, asIso_inv,
    CohomologyClass.equiv_toSmallShiftedHom_mk, Functor.comp_obj,
    DerivedCategory.singleFunctorIsoCompQ, Iso.refl_hom, NatTrans.id_app, Category.id_comp,
    Iso.refl_inv]