-- Module: Mathlib.CategoryTheory.Sites.Point.Skyscraper
Goal:
C : Type u
inst : Category.{v, u} C
J : GrothendieckTopology.{v, u} C
Φ : Point.{w, v, u} J
A : Type u'
inst_1 : Category.{v', u'} A
inst_2 : HasProducts.{w, v', u'} A
M : A
X : C
R : Sieve.{v, u} X
hR : R ∈ (J : (a : C) → Set (Sieve a)) X
s : Cone (R.arrows.diagram.op ⋙ Φ.skyscraperPresheaf M)
x : Φ.fiber.obj X
Y₁ : C
f₁ : Y₁ ⟶ X
hf₁ : R.arrows f₁
y₁ : Φ.fiber.obj Y₁
hy₁ :
  (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map f₁) :
        (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₁)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj X))
      y₁ =
    x
Y₂ : C
f₂ : Y₂ ⟶ X
hf₂ : R.arrows f₂
y₂ : Φ.fiber.obj Y₂
hy₂ :
  (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map f₂) :
        (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₂)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj X))
      y₂ =
    x
α₁ : Φ.fiber.elementsMk Y₁ y₁ ⟶ Φ.fiber.elementsMk X x :=
  Subtype.mk (p :=
    fun
      (f :
        (Φ.fiber.elementsMk Y₁ y₁).fst (β := fun (c : C) ↦ Φ.fiber.obj c) ⟶
          (Φ.fiber.elementsMk X x).fst (β := fun (c : C) ↦ Φ.fiber.obj c)) ↦
    (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map f) :
          (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj (Φ.fiber.elementsMk Y₁ y₁).fst)) →
            (fun (X : Type w) ↦ X) (Φ.fiber.obj (Φ.fiber.elementsMk X x).fst))
        ((Φ.fiber.elementsMk Y₁ y₁).snd (β := fun (c : C) ↦ Φ.fiber.obj c)) =
      (Φ.fiber.elementsMk X x).snd (β := fun (c : C) ↦ Φ.fiber.obj c))
    f₁ hy₁
α₂ : Φ.fiber.elementsMk Y₂ y₂ ⟶ Φ.fiber.elementsMk X x :=
  Subtype.mk (p :=
    fun
      (f :
        (Φ.fiber.elementsMk Y₂ y₂).fst (β := fun (c : C) ↦ Φ.fiber.obj c) ⟶
          (Φ.fiber.elementsMk X x).fst (β := fun (c : C) ↦ Φ.fiber.obj c)) ↦
    (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map f) :
          (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj (Φ.fiber.elementsMk Y₂ y₂).fst)) →
            (fun (X : Type w) ↦ X) (Φ.fiber.obj (Φ.fiber.elementsMk X x).fst))
        ((Φ.fiber.elementsMk Y₂ y₂).snd (β := fun (c : C) ↦ Φ.fiber.obj c)) =
      (Φ.fiber.elementsMk X x).snd (β := fun (c : C) ↦ Φ.fiber.obj c))
    f₂ hy₂
obtain :
  ∀ (z : Φ.fiber.Elements) (q₁ : z ⟶ Φ.fiber.elementsMk Y₁ y₁) (q₂ : z ⟶ Φ.fiber.elementsMk Y₂ y₂)
    (fac : q₁ ≫ α₁ = q₂ ≫ α₂),
    ∃ (Z : C) (p₁ : Z ⟶ Y₁) (p₂ : Z ⟶ Y₂) (z : Φ.fiber.obj Z),
      p₁ ≫ f₁ = p₂ ≫ f₂ ∧
        (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map p₁) :
                (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Z)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₁))
              z =
            y₁ ∧
          (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map p₂) :
                (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Z)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₂))
              z =
            y₂
⊢ ∃ (Z : C) (p₁ : Z ⟶ Y₁) (p₂ : Z ⟶ Y₂) (z : Φ.fiber.obj Z),
    p₁ ≫ f₁ = p₂ ≫ f₂ ∧
      (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map p₁) :
              (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Z)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₁))
            z =
          y₁ ∧
        (ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map p₂) :
              (a : (fun (X : Type w) ↦ X) (Φ.fiber.obj Z)) → (fun (X : Type w) ↦ X) (Φ.fiber.obj Y₂))
            z =
          y₂

Tactic:
obtain ⟨z, q₁, q₂, fac⟩ := IsCofiltered.cospan α₁ α₂

Premises used: CategoryTheory.IsCofiltered.cospan