-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
Goal:
A : Type u₁
B : Type u₂
C : Type u₃
inst : Category.{v₁, u₁} A
inst_1 : Category.{v₂, u₂} B
inst_2 : Category.{v₃, u₃} C
F : Functor.{v₁, v₂, u₁, u₂} A B
G : Functor.{v₃, v₂, u₃, u₂} C B
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : Category.{v₆, u₆} C₁
F₁ : Functor.{v₄, v₅, u₄, u₅} A₁ B₁
G₁ : Functor.{v₆, v₅, u₆, u₅} C₁ B₁
X : Type u₇
Y : Type u₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
ψ : CatCospanTransform F G F₁ G₁
U : Functor.{v₇, v₈, u₇, u₈} X Y
x y : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y
f : x ⟶ y
h₁ :
  ∀ (x_1 : X),
    NatTrans.app
        (Hom.fst
          ((obj (precompose F G) U ⋙ obj (transform X) ψ).map f ≫
            Iso.hom
              ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                  (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
                    (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                      (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
                y)))
        x_1 =
      NatTrans.app
        (Hom.fst
          (Iso.hom
              ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                  (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
                    (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                      (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
                x) ≫
            (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f))
        x_1
⊢ (obj (precompose F G) U ⋙ obj (transform X) ψ).map f ≫
      Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
              (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
          y) =
    Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
              (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
          x) ≫
      (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f
have h₂ : ∀ (x_1 : X),
  NatTrans.app
      (Hom.snd
        ((obj (precompose F G) U ⋙ obj (transform X) ψ).map f ≫
          Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) sorry :
                  (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                    (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
              y)))
      x_1 =
    NatTrans.app
      (Hom.snd
        (Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) sorry :
                  (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                    (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
              x) ≫
          (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f))
      x_1
Tactic: ext