-- Module: Mathlib.CategoryTheory.Yoneda
Goal:
C_1 : Type u₁
inst : Category.{v₁, u₁} C_1
C : Type u₁
inst_1 : Category.{v₁, u₁} C
X : C
Y Z : C ⥤ Type (max w v₁)
f : Y ⟶ Z
h :
  ∀ (g : obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) Y),
    Eq (α :=
      obj
        (obj
          (evaluation C (Type (max v₁ w)) ⋙
            obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
              uliftFunctor.{u₁, max v₁ w})
          X)
        Z)
      (TypeCat.Fun.toFun
        (ConcreteCategory.hom (FC := TypeCat.Fun)
          (map (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) f ≫
            Iso.hom
              ((fun (x : C ⥤ Type (max w v₁)) ↦
                  (Equiv.toIso (Equiv.trans uliftCoyonedaEquiv (Equiv.symm Equiv.ulift)) :
                    obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) x ≅
                      obj
                        (obj
                          (evaluation C (Type (max v₁ w)) ⋙
                            obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
                              uliftFunctor.{u₁, max v₁ w})
                          X)
                        x))
                Z)))
        g)
      (TypeCat.Fun.toFun
        (ConcreteCategory.hom (FC := TypeCat.Fun)
          (Iso.hom
              ((fun (x : C ⥤ Type (max w v₁)) ↦
                  (Equiv.toIso (Equiv.trans uliftCoyonedaEquiv (Equiv.symm Equiv.ulift)) :
                    obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) x ≅
                      obj
                        (obj
                          (evaluation C (Type (max v₁ w)) ⋙
                            obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
                              uliftFunctor.{u₁, max v₁ w})
                          X)
                        x))
                Y) ≫
            map
              (obj
                (evaluation C (Type (max v₁ w)) ⋙
                  obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
                    uliftFunctor.{u₁, max v₁ w})
                X)
              f))
        g)
⊢ Eq (α :=
    obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) Y ⟶
      obj
        (obj
          (evaluation C (Type (max v₁ w)) ⋙
            obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
              uliftFunctor.{u₁, max v₁ w})
          X)
        Z)
    (map (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) f ≫
      Iso.hom
        ((fun (x : C ⥤ Type (max w v₁)) ↦
            (Equiv.toIso (Equiv.trans uliftCoyonedaEquiv (Equiv.symm Equiv.ulift)) :
              obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) x ≅
                obj
                  (obj
                    (evaluation C (Type (max v₁ w)) ⋙
                      obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
                        uliftFunctor.{u₁, max v₁ w})
                    X)
                  x))
          Z))
    (Iso.hom
        ((fun (x : C ⥤ Type (max w v₁)) ↦
            (Equiv.toIso (Equiv.trans uliftCoyonedaEquiv (Equiv.symm Equiv.ulift)) :
              obj (obj (Functor.rightOp uliftCoyoneda.{w, v₁, u₁} ⋙ coyoneda) X) x ≅
                obj
                  (obj
                    (evaluation C (Type (max v₁ w)) ⋙
                      obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
                        uliftFunctor.{u₁, max v₁ w})
                    X)
                  x))
          Y) ≫
      map
        (obj
          (evaluation C (Type (max v₁ w)) ⋙
            obj (whiskeringRight (C ⥤ Type (max v₁ w)) (Type (max v₁ w)) (Type (max (max w u₁) v₁)))
              uliftFunctor.{u₁, max v₁ w})
          X)
        f)

Tactic:
ext g