-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Constructions.Over.Products (goal)
Goal:
J_1 : Type w
C : Type u
inst : Category.{v, u} C
X Y Z B : C
J : Type w
F : Discrete J ⥤ Over.{v, u} B
c : Cone F
⊢ Eq.{v + 1} (α :=
    c.pt.left ⟶
      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none)
    (𝟙 c.pt.left ≫
      Option.rec (motive := fun (x : WidePullbackShape J) ↦
        c.pt.left ⟶
          Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
            (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
        c.pt.hom (fun (val : J) ↦ Hom.left (c.π.app { as := val })) none)
    (CategoryStruct.comp (Y :=
      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none)
      (Option.rec (motive := fun (x : WidePullbackShape J) ↦
        c.pt.left ⟶
          Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
            (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
        c.pt.hom (fun (val : J) ↦ Hom.left (c.π.app { as := val })) none)
      (@WidePullbackShape.Hom.rec _
        (fun (a a_1 : WidePullbackShape J) (x : a.Hom a_1) ↦
          (h : none = a) →
            (h : none = a_1) →
              (h : HEq (α := Quiver.Hom (V := WidePullbackShape J) none none) (WidePullbackShape.Hom.id none) x) →
                Quiver.Hom.{v, u} (V := C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C))
        (fun (X : WidePullbackShape J) (h : none = X) ↦
          Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
            (h : none = x) →
              (h :
                  HEq (α := Quiver.Hom (V := WidePullbackShape J) none none) (WidePullbackShape.Hom.id none) (β :=
                    x.Hom x) (𝟙 x)) →
                Quiver.Hom.{v, u} (V := C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C))
            (fun (h : Eq.{w + 1} (α := WidePullbackShape J) none none) ↦
              Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
                (f : none ⟶ x) →
                  (h :
                      HEq f (β := WidePullbackShape.Hom (J := J) none none)
                        (𝟙 none : Quiver.Hom (V := WidePullbackShape J) none none)) →
                    Quiver.Hom.{v, u} (V := C)
                      (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                          (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                        C)
                      (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                          (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x :
                        C))
                (fun (f : Quiver.Hom (V := WidePullbackShape J) none none)
                    (h :
                      HEq f (β := WidePullbackShape.Hom (J := J) none none)
                        (𝟙 none : Quiver.Hom (V := WidePullbackShape J) none none)) ↦
                  𝟙
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none))
                ⋯ (WidePullbackShape.Hom.id none))
            h)
        (fun (j : J) (h : none = some j) ↦
          Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : some j = x) ↦
            (f : x ⟶ none) →
              (h : Eq.{w + 1} (α := WidePullbackShape J) none none) →
                (h : f ≍ WidePullbackShape.Hom.term j) →
                  Quiver.Hom.{v, u} (V := C)
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x :
                      C)
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                      C))
            (fun (f : some j ⟶ none) (h : Eq.{w + 1} (α := WidePullbackShape J) none none) ↦
              Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
                (f : some j ⟶ x) →
                  (h : f ≍ WidePullbackShape.Hom.term j) →
                    (F.obj { as := j : Discrete J }).left ⟶
                      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
                (fun (f : some j ⟶ none) (h : f ≍ WidePullbackShape.Hom.term j) ↦ (F.obj { as := j }).hom) ⋯ f)
            ⋯ (WidePullbackShape.Hom.id none))
        none _ (WidePullbackShape.Hom.id none) ⋯ ⋯ ⋯))
have none : Eq.{v + 1} (α :=
  c.pt.left ⟶
    Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left)
      none)
  (Option.rec (motive := fun (x : WidePullbackShape J) ↦
      c.pt.left ⟶
        Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
          (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
      c.pt.hom (fun (val : J) ↦ Hom.left (c.π.app { as := val })) none :
    c.pt.left ⟶
      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none)
  (CategoryStruct.comp (Y :=
      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none)
      (Option.rec (motive := fun (x : WidePullbackShape J) ↦
        c.pt.left ⟶
          Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
            (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
        c.pt.hom (fun (val : J) ↦ Hom.left (c.π.app { as := val })) none)
      (@WidePullbackShape.Hom.rec _
        (fun (a a_1 : WidePullbackShape J) (x : a.Hom a_1) ↦
          (h : none = a) →
            (h : none = a_1) →
              (h : HEq (α := Quiver.Hom (V := WidePullbackShape J) none none) (WidePullbackShape.Hom.id none) x) →
                Quiver.Hom.{v, u} (V := C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C))
        (fun (X : WidePullbackShape J) (h : none = X) ↦
          Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
            (h : none = x) →
              (h :
                  HEq (α := Quiver.Hom (V := WidePullbackShape J) none none) (WidePullbackShape.Hom.id none) (β :=
                    x.Hom x) (𝟙 x)) →
                Quiver.Hom.{v, u} (V := C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C)
                  (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                    C))
            (fun (h : Eq.{w + 1} (α := WidePullbackShape J) none none) ↦
              Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
                (f : none ⟶ x) →
                  (h :
                      HEq f (β := WidePullbackShape.Hom (J := J) none none)
                        (𝟙 none : Quiver.Hom (V := WidePullbackShape J) none none)) →
                    Quiver.Hom.{v, u} (V := C)
                      (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                          (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                        C)
                      (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                          (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x :
                        C))
                (fun (f : Quiver.Hom (V := WidePullbackShape J) none none)
                    (h :
                      HEq f (β := WidePullbackShape.Hom (J := J) none none)
                        (𝟙 none : Quiver.Hom (V := WidePullbackShape J) none none)) ↦
                  𝟙
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                      (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none))
                sorry (WidePullbackShape.Hom.id none))
            h)
        (fun (j : J) (h : none = some j) ↦
          Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : some j = x) ↦
            (f : x ⟶ none) →
              (h : Eq.{w + 1} (α := WidePullbackShape J) none none) →
                (h : f ≍ WidePullbackShape.Hom.term j) →
                  Quiver.Hom.{v, u} (V := C)
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x :
                      C)
                    (Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none :
                      C))
            (fun (f : some j ⟶ none) (h : Eq.{w + 1} (α := WidePullbackShape J) none none) ↦
              Eq.rec (motive := fun (x : WidePullbackShape J) (x_1 : none = x) ↦
                (f : some j ⟶ x) →
                  (h : f ≍ WidePullbackShape.Hom.term j) →
                    (F.obj { as := j : Discrete J }).left ⟶
                      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
                        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) x)
                (fun (f : some j ⟶ none) (h : f ≍ WidePullbackShape.Hom.term j) ↦ (F.obj { as := j }).hom) sorry f)
            sorry (WidePullbackShape.Hom.id none))
        none _ (WidePullbackShape.Hom.id none) sorry sorry sorry) :
    c.pt.left ⟶
      Option.rec (motive := fun (x : WidePullbackShape J) ↦ C) B
        (fun (val : J) ↦ (F.obj { as := val : Discrete J }).left) none)
Tactic: rw [Category.id_comp, Category.comp_id]