-- Lean 4 proof step from Mathlib.Algebra.Homology.ShortComplex.ConcreteCategory (goal)
Goal:
C : Type u
inst : Category.{v, u} C
FC : C → C → Type u_1
CC : C → Type w
inst_1 : (X Y : C) → FunLike.{u_1 + 1, w + 1, w + 1} (FC X Y) (CC X) (CC Y)
inst_2 : ConcreteCategory.{w, v, u, u_1} C FC (CC := CC)
inst_3 :
  HasForget₂.{w, v, u, u_1, w, w + 1, w} C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
    (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier)
inst_4 : Preadditive.{v, u} C
inst_5 :
  Functor.Additive.{v, u, w, w + 1}
    (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w))
      (CD := AddCommGrpCat.carrier))
inst_6 :
  Functor.PreservesHomology.{v, u, w, w + 1}
    (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w))
      (CD := AddCommGrpCat.carrier))
inst_7 : HasZeroObject.{v, u} C
X Y : C
f : X ⟶ Y
⊢ Arrow.mk (X :=
      (↑(Functor.obj.{v, w, u, w + 1}
            (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
              (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
            X) :
        Type w))
      (Y :=
      (↑(Functor.obj.{v, w, u, w + 1}
            (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
              (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
            Y) :
        Type w))
      (↾(⇑(ConcreteCategory.hom (FC := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w)) (CC :=
              AddCommGrpCat.carrier) (X :=
              Functor.obj.{v, w, u, w + 1}
                (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
                  (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
                X)
              (Functor.map
                (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
                  (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
                f)) :
          (a : (↑((forget₂ C Ab).obj X) : Type w)) → (↑((forget₂ C Ab).obj Y) : Type w))) ≅
    Arrow.mk (X := CC X) (Y := CC Y) (↾(⇑(ConcreteCategory.hom (FC := FC) (CC := CC) f) : (a : CC X) → CC Y))
have have : (e :
    Iso (C := Functor.{v, w, u, w + 1} C (Type w))
      (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w))
          (CD := AddCommGrpCat.carrier) ⋙
        forget Ab (FC := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w)) (CC :=
          AddCommGrpCat.carrier))
      (forget C (FC := FC) (CC := CC))) →
  Arrow.mk (X :=
      (↑(Functor.obj.{v, w, u, w + 1}
            (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
              (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
            X) :
        Type w))
      (Y :=
      (↑(Functor.obj.{v, w, u, w + 1}
            (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
              (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
            Y) :
        Type w))
      (↾(⇑(ConcreteCategory.hom (FC := fun (x1 x2 : AddCommGrpCat.{w}) ↦ (↑x1 : Type w) →+ (↑x2 : Type w)) (CC :=
              AddCommGrpCat.carrier) (X :=
              Functor.obj.{v, w, u, w + 1}
                (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
                  (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
                X)
              (Functor.map
                (forget₂ C (FC := FC) (CC := CC) Ab (FD := fun (x1 x2 : AddCommGrpCat.{w}) ↦
                  (↑x1 : Type w) →+ (↑x2 : Type w)) (CD := AddCommGrpCat.carrier))
                f)) :
          (a : (↑((forget₂ C Ab).obj X) : Type w)) → (↑((forget₂ C Ab).obj Y) : Type w))) ≅
    Arrow.mk (X := CC X) (Y := CC Y) (↾(⇑(ConcreteCategory.hom (FC := FC) (CC := CC) f) : (a : CC X) → CC Y))
Tactic: have e : forget₂ C Ab ⋙ forget Ab ≅ forget C := eqToIso (HasForget₂.forget_comp)