-- Module: Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
J : Type u₂
inst_1 : Category.{v₂, u₂} J
X Y Z : Cᵒᵖ
f : X ⟶ Z
g : Y ⟶ Z
none none₁ none₂ none₃ :
  Eq (α :=
    (span f.unop g.unop).obj Option.none ⟶
      obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) Option.none)
    ((span f.unop g.unop).map (WidePushoutShape.Hom.id Option.none) ≫
      Iso.hom
        ((fun (x : WalkingSpan) ↦
            (match (motive :=
                (x : WalkingSpan) →
                  (span f.unop g.unop).obj x ≅
                    obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x)
                x with
              | Option.none => Iso.refl ((span f.unop g.unop).obj Option.none)
              | some WalkingPair.left => Iso.refl ((span f.unop g.unop).obj WalkingSpan.left)
              | some WalkingPair.right => Iso.refl ((span f.unop g.unop).obj WalkingSpan.right) :
              (span f.unop g.unop).obj x ≅
                obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x))
          Option.none))
    (Iso.hom
        ((fun (x : WalkingSpan) ↦
            (match (motive :=
                (x : WalkingSpan) →
                  (span f.unop g.unop).obj x ≅
                    obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x)
                x with
              | Option.none => Iso.refl ((span f.unop g.unop).obj Option.none)
              | some WalkingPair.left => Iso.refl ((span f.unop g.unop).obj WalkingSpan.left)
              | some WalkingPair.right => Iso.refl ((span f.unop g.unop).obj WalkingSpan.right) :
              (span f.unop g.unop).obj x ≅
                obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x))
          Option.none) ≫
      map (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) (WidePushoutShape.Hom.id Option.none))
⊢ Eq (α :=
    (span f.unop g.unop).obj Option.none ⟶
      obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) Option.none)
    ((span f.unop g.unop).map (WidePushoutShape.Hom.id Option.none) ≫
      Iso.hom
        ((fun (x : WalkingSpan) ↦
            (match (motive :=
                (x : WalkingSpan) →
                  (span f.unop g.unop).obj x ≅
                    obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x)
                x with
              | Option.none => Iso.refl ((span f.unop g.unop).obj Option.none)
              | some WalkingPair.left => Iso.refl ((span f.unop g.unop).obj WalkingSpan.left)
              | some WalkingPair.right => Iso.refl ((span f.unop g.unop).obj WalkingSpan.right) :
              (span f.unop g.unop).obj x ≅
                obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x))
          Option.none))
    (Iso.hom
        ((fun (x : WalkingSpan) ↦
            (match (motive :=
                (x : WalkingSpan) →
                  (span f.unop g.unop).obj x ≅
                    obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x)
                x with
              | Option.none => Iso.refl ((span f.unop g.unop).obj Option.none)
              | some WalkingPair.left => Iso.refl ((span f.unop g.unop).obj WalkingSpan.left)
              | some WalkingPair.right => Iso.refl ((span f.unop g.unop).obj WalkingSpan.right) :
              (span f.unop g.unop).obj x ≅
                obj.{0, v₁, 0, u₁} (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) x))
          Option.none) ≫
      map (walkingCospanOpEquiv.inverse ⋙ Functor.leftOp (cospan f g)) (WidePushoutShape.Hom.id Option.none))

Tactic:
cat_disch