-- Module: Mathlib.CategoryTheory.Sites.LeftExact
Goal:
C : Type u
inst : Category.{v, u} C
J : GrothendieckTopology.{v, u} C
D : Type w
inst_1 : Category.{t, w} D
inst_2 : ∀ (P : Functor.{v, t, u, w} Cᵒᵖ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst_3 : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
FD : D → D → Type u_1
CD : D → Type t
inst_4 : (X Y : D) → FunLike.{u_1 + 1, t + 1, t + 1} (FD X Y) (CD X) (CD Y)
inst_5 : ConcreteCategory D FD (CC := CD)
inst_6 : ∀ (X : C), PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D (FC := FD) (CC := CD))
inst_7 : ∀ (X : C), Small.{t, max u v} (J.Cover X)ᵒᵖ
K : Type t
inst_8 : SmallCategory K
inst_9 : FinCategory K
inst_10 : HasLimitsOfShape K D
inst_11 : PreservesLimitsOfShape K (forget D (FC := FD) (CC := CD))
inst_12 : ReflectsLimitsOfShape K (forget D (FC := FD) (CC := CD))
F : K ⥤ Functor.{v, t, u, w} Cᵒᵖ D
X : Cᵒᵖ
S : Cone (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
m :
  S.pt ⟶
    Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
      (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F))
hm :
  ∀ (j : K),
    m ≫ NatTrans.app (Cone.π (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F))) j =
      S.π.app j
k : K
preservesLimit :
  ∀ (k_1 : (J.Cover (unop X))ᵒᵖ),
    Eq (α :=
      Functor.obj (J.diagram (limit.cone F).pt (unop X)) k_1 ⟶
        (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)
      (CategoryStruct.comp (Y := colimit (J := (J.Cover (unop X))ᵒᵖ) (J.diagram (limit.cone F).pt (unop X)))
          (colimit.ι (J.diagram (limit.cone F).pt (unop X)) k_1)
          (CategoryStruct.comp (Y := colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))))
            (Iso.hom
                (HasColimit.isoOfNatIso
                  (IsLimit.conePointUniqueUpToIso (isLimitOfPreserves (J.diagramFunctor D (unop X)) (limit.isLimit F))
                    (limit.isLimit (F ⋙ J.diagramFunctor D (unop X))))) :
              Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
                  (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F)) ⟶
                colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))))
            (CategoryStruct.comp (Y :=
                limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))))
                (Iso.hom (colimitLimitIso (F ⋙ J.diagramFunctor D (unop X))) :
                  colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))) ⟶
                    limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))))
                (CategoryStruct.comp (Y := limit (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X))
                    (Iso.inv
                      (HasLimit.isoOfNatIso
                        (Iso.symm
                          (NatIso.ofComponents
                            (fun (k : K) ↦
                              colimitObjIsoColimitCompEvaluation (Functor.flip (F ⋙ J.diagramFunctor D (unop X))) k)
                            ⋯))))
                    (limit.π (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) k) :
                  limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))) ⟶
                    (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k) :
              colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))) ⟶
                (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)) :
        Functor.obj (J.diagram (limit.cone F).pt (unop X)) k_1 ⟶
          (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)
      (CategoryStruct.comp (Y := colimit (J := (J.Cover (unop X))ᵒᵖ) (J.diagram (limit.cone F).pt (unop X)))
          (colimit.ι (J.diagram (limit.cone F).pt (unop X)) k_1)
          (NatTrans.app (Cone.π (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F)))
            k) :
        Functor.obj (J.diagram (limit.cone F).pt (unop X)) k_1 ⟶
          (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)
⊢ Eq (α :=
    Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
        (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F)) ⟶
      (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)
    (CategoryStruct.comp (Y := colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))))
        (Iso.hom
            (HasColimit.isoOfNatIso
              (IsLimit.conePointUniqueUpToIso (isLimitOfPreserves (J.diagramFunctor D (unop X)) (limit.isLimit F))
                (limit.isLimit (F ⋙ J.diagramFunctor D (unop X))))) :
          Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
              (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F)) ⟶
            colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))))
        (CategoryStruct.comp (Y :=
            limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))))
            (Iso.hom (colimitLimitIso (F ⋙ J.diagramFunctor D (unop X))) :
              colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))) ⟶
                limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))))
            (CategoryStruct.comp (Y := limit (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X))
                (Iso.inv
                  (HasLimit.isoOfNatIso
                    (Iso.symm
                      (NatIso.ofComponents
                        (fun (k : K) ↦
                          colimitObjIsoColimitCompEvaluation (Functor.flip (F ⋙ J.diagramFunctor D (unop X))) k)
                        ⋯))))
                (limit.π (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) k) :
              limit (colimit (J := (J.Cover (unop X))ᵒᵖ) (Functor.flip (F ⋙ J.diagramFunctor D (unop X)))) ⟶
                (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k) :
          colimit (J := (J.Cover (unop X))ᵒᵖ) (limit (F ⋙ J.diagramFunctor D (unop X))) ⟶
            (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k) :
      Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
          (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F)) ⟶
        (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)
    (NatTrans.app (Cone.π (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F))) k :
      Functor.obj
          (Functor.obj (Functor.const K)
            (Cone.pt (F := F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X)
              (Functor.mapCone (J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X) (limit.cone F))))
          k ⟶
        (F ⋙ J.plusFunctor D ⋙ Functor.obj (evaluation Cᵒᵖ D) X).obj k)

Tactic:
refine colimit.hom_ext (fun k => ?_)

Premises used: CategoryTheory.Limits.colimit.hom_ext