-- Lean 4 proof step from Mathlib.Algebra.Homology.HomotopyCategory.Shift (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : Preadditive.{v, u} C
D : Type u'
inst_2 : Category.{v', u'} D
inst_3 : Preadditive.{v', u'} D
F : Functor.{v, v', u, u'} C D
inst_4 : F.Additive
⊢ Eq (α :=
    Iso (C := HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ) ⥤ HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ))
      (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
        F.mapHomologicalComplex (ComplexShape.up ℤ))
      (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
        shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0))
    (F.mapCochainComplexShiftIso 0 :
      Iso (C :=
        HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ) ⥤ HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ))
        (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
          F.mapHomologicalComplex (ComplexShape.up ℤ))
        (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
          shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0))
    (CommShift.isoZero (F.mapHomologicalComplex (ComplexShape.up ℤ)) ℤ :
      Iso (C :=
        HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ) ⥤ HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ))
        (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
          F.mapHomologicalComplex (ComplexShape.up ℤ))
        (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
          shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0))
have w : ∀ (x : HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (i : ℤ),
  Eq (α :=
    HomologicalComplex.X
        (obj
          (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
            F.mapHomologicalComplex (ComplexShape.up ℤ))
          x)
        i ⟶
      HomologicalComplex.X
        (obj
          (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
            shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0)
          x)
        i)
    (HomologicalComplex.Hom.f (NatTrans.app (Iso.hom (F.mapCochainComplexShiftIso 0)) x) i :
      HomologicalComplex.X
          (obj
            (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
              F.mapHomologicalComplex (ComplexShape.up ℤ))
            x)
          i ⟶
        HomologicalComplex.X
          (obj
            (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
              shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0)
            x)
          i)
    (HomologicalComplex.Hom.f
        (NatTrans.app (Iso.hom (CommShift.isoZero (F.mapHomologicalComplex (ComplexShape.up ℤ)) ℤ)) x) i :
      HomologicalComplex.X
          (obj
            (shiftFunctor (HomologicalComplex.{v, u, 0} C (ComplexShape.up ℤ)) (A := ℤ) 0 ⋙
              F.mapHomologicalComplex (ComplexShape.up ℤ))
            x)
          i ⟶
        HomologicalComplex.X
          (obj
            (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
              shiftFunctor (HomologicalComplex.{v', u', 0} D (ComplexShape.up ℤ)) (A := ℤ) 0)
            x)
          i)
Tactic: ext