-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Constructions.Filtered (goal)
Goal:
C : Type u
inst : Category.{v, u} C
α : Type w
inst_1 : HasFiniteCoproducts.{v, u} C
inst_2 : HasColimitsOfShape.{w, w, v, u} (Finset (Discrete α)) C
F : Functor.{w, v, w, u} (Discrete α) C
s : Cocone F
m :
  Cocone.pt.{w, v, w, u} (J := Discrete α) (F := F)
      { pt := colimit (liftToFinsetObj F),
        ι :=
          Discrete.natTrans fun (j : Discrete α) ↦
            CategoryStruct.comp (Y := sigmaObj.{w, v, u} fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
              (Sigma.ι.{w, v, u} (C := C) (fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
                (Subtype.mk (p := fun (x : Discrete α) ↦ Membership.mem (γ := Finset (Discrete α)) {j} x) j ⋯))
              (colimit.ι (liftToFinsetObj F) {j}) :
        Cocone F } ⟶
    s.pt
h :
  ∀ (j : Discrete α),
    NatTrans.app
          (Cocone.ι
            { pt := colimit (liftToFinsetObj F),
              ι :=
                Discrete.natTrans fun (j : Discrete α) ↦
                  CategoryStruct.comp (Y := sigmaObj.{w, v, u} fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
                    (Sigma.ι.{w, v, u} (C := C) (fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
                      (Subtype.mk (p := fun (x : Discrete α) ↦ Membership.mem (γ := Finset (Discrete α)) {j} x) j ⋯))
                    (colimit.ι (liftToFinsetObj F) {j}) })
          j ≫
        m =
      s.ι.app j
t : Finset (Discrete α)
j : Discrete α
hj : j ∈ t
e_1 :
  (Functor.obj.{w, v, w, u} (Discrete.functor fun (x : ↥t) ↦ F.obj (↑x : Discrete α))
        { as := Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ t) j hj : Discrete ↥t } ⟶
      s.pt) =
    (F.obj j ⟶ s.pt)
⊢ colimit.ι (Discrete.functor fun (x : ↥t) ↦ F.obj (↑x : Discrete α))
        { as := Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ t) j hj : Discrete ↥t } ≫
      colimit.ι
          { obj := fun (s : Finset (Discrete α)) ↦ sigmaObj.{w, v, u} fun (x : ↥s) ↦ F.obj (↑x : Discrete α),
            map := fun {x Y : Finset (Discrete α)} (h : x ⟶ Y) ↦
              Sigma.desc fun (y : ↥x) ↦
                Sigma.ι.{w, v, u} (C := C) (fun (x : ↥Y) ↦ F.obj (↑x : Discrete α))
                  (Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ Y) (↑y : Discrete α) ⋯),
            map_id := ⋯, map_comp := ⋯ : Functor.{w, v, w, u} (Finset (Discrete α)) C }
          t ≫
        m =
    NatTrans.app
        (Cocone.ι
          { pt := colimit (liftToFinsetObj F),
            ι :=
              Discrete.natTrans fun (j : Discrete α) ↦
                CategoryStruct.comp (Y := sigmaObj.{w, v, u} fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
                  (Sigma.ι.{w, v, u} (C := C) (fun (x : ↥{j}) ↦ F.obj (↑x : Discrete α))
                    (Subtype.mk (p := fun (x : Discrete α) ↦ Membership.mem (γ := Finset (Discrete α)) {j} x) j ⋯))
                  (colimit.ι (liftToFinsetObj F) {j}) })
        j ≫
      m
have h₁ : colimit.ι (Discrete.functor fun (x : ↥t) ↦ F.obj (↑x : Discrete α))
      { as := Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ t) j hj : Discrete ↥t } ≫
    colimit.ι
        { obj := fun (s : Finset (Discrete α)) ↦ sigmaObj.{w, v, u} fun (x : ↥s) ↦ F.obj (↑x : Discrete α),
          map := fun {x Y : Finset (Discrete α)} (h : x ⟶ Y) ↦
            Sigma.desc fun (y : ↥x) ↦
              Sigma.ι.{w, v, u} (C := C) (fun (x : ↥Y) ↦ F.obj (↑x : Discrete α))
                (Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ Y) (↑y : Discrete α) sorry),
          map_id := sorry, map_comp := sorry : Functor.{w, v, w, u} (Finset (Discrete α)) C }
        t ≫
      m =
  Sigma.ι.{w, v, u} (C := C) (fun (x : ↥t) ↦ F.obj (↑x : Discrete α))
      (Subtype.mk (p := fun (x : Discrete α) ↦ x ∈ t) j sorry) ≫
    colimit.ι (liftToFinsetObj F) t ≫ m
Tactic: simp [← colimit.w (liftToFinsetObj F) ⟨⟨Finset.singleton_subset_iff.2 hj⟩⟩]