-- Module: Mathlib.Topology.Category.CompHausLike.Cartesian
Goal:
P : TopCat.{u} → Prop
X Y : CompHausLike P
inst : HasProp P ((↑(X.toTop (P := P)) : Type u) × (↑(Y.toTop (P := P)) : Type u))
x_1 : BinaryFan X Y
x_2 : x_1.pt ⟶ of P ((↑(X.toTop (P := P)) : Type u) × (↑(Y.toTop (P := P)) : Type u))
h₁ : x_2 ≫ ofHom P { toFun := Prod.fst, continuous_toFun := ⋯ } = x_1.fst
h₂ : x_2 ≫ ofHom P { toFun := Prod.snd, continuous_toFun := ⋯ } = x_1.snd
x : (↑(x_1.pt.toTop (P := P)) : Type u)
⊢ Eq.{u + 1} (α := (↑(X.toTop (P := P)) : Type u))
    ((ConcreteCategory.hom (FC := fun (x1 x2 : CompHausLike P) ↦
            C((↑(x1.toTop (P := P)) : Type u), (↑(x2.toTop (P := P)) : Type u))) (CC := fun (X : CompHausLike P) ↦
            (↑(X.toTop (P := P)) : Type u)) x_2 :
          (a : (↑x_1.pt.toTop : Type u)) → (↑(of P ((↑X.toTop : Type u) × (↑Y.toTop : Type u))).toTop : Type u))
        x).1
    ((@ConcreteCategory.hom _ (category P)
            (fun (x1 x2 : CompHausLike P) ↦ C((↑(x1.toTop (P := P)) : Type u), (↑(x2.toTop (P := P)) : Type u)))
            (fun (X : CompHausLike P) ↦ (↑(X.toTop (P := P)) : Type u)) _ _ x_1.pt
            (of P ((↑(X.toTop (P := P)) : Type u) × (↑(Y.toTop (P := P)) : Type u)))
            ((fun (s : BinaryFan X Y) ↦
                (ofHom P
                    {
                      toFun := fun (x : (↑s.1.1 : Type u)) ↦
                        ((ConcreteCategory.hom (FC := fun (x1 x2 : CompHausLike P) ↦
                                C((↑(x1.toTop (P := P)) : Type u), (↑(x2.toTop (P := P)) : Type u))) (CC :=
                                fun (X : CompHausLike P) ↦ (↑(X.toTop (P := P)) : Type u)) s.fst :
                              (a :
                                  (fun (X : CompHausLike P) ↦ (↑X.toTop : Type u))
                                    (((Functor.const (Discrete WalkingPair)).obj s.pt).obj
                                      { as := WalkingPair.left })) →
                                (fun (X : CompHausLike P) ↦ (↑X.toTop : Type u))
                                  ((pair X Y).obj { as := WalkingPair.left }))
                            x,
                          (ConcreteCategory.hom (FC := fun (x1 x2 : CompHausLike P) ↦
                                C((↑(x1.toTop (P := P)) : Type u), (↑(x2.toTop (P := P)) : Type u))) (CC :=
                                fun (X : CompHausLike P) ↦ (↑(X.toTop (P := P)) : Type u)) s.snd :
                              (a :
                                  (fun (X : CompHausLike P) ↦ (↑X.toTop : Type u))
                                    (((Functor.const (Discrete WalkingPair)).obj s.pt).obj
                                      { as := WalkingPair.right })) →
                                (fun (X : CompHausLike P) ↦ (↑X.toTop : Type u))
                                  ((pair X Y).obj { as := WalkingPair.right }))
                            x),
                      continuous_toFun := ⋯ } :
                  of P (↑s.1.1 : Type u) ⟶ of P ((↑(X.toTop (P := P)) : Type u) × (↑(Y.toTop (P := P)) : Type u))))
              x_1) :
          (a : (↑x_1.pt.toTop : Type u)) → (↑(of P ((↑X.toTop : Type u) × (↑Y.toTop : Type u))).toTop : Type u))
        x).1

Tactic:
ConcreteCategory.congr_hom h₁ _

Premises used: CategoryTheory.ConcreteCategory.congr_hom