Lean4
/-- A cocone in `HomologicalComplex C c` is colimit if the induced cocones obtained
by applying `eval C c i : HomologicalComplex C c ⥤ C` for all `i` are colimit. -/
def isColimitOfEval (s : Cocone F) (hs : ∀ (i : ι), IsColimit ((eval C c i).mapCocone s)) : IsColimit s
where
desc
t :=
{ f := fun i => (hs i).desc ((eval C c i).mapCocone t)
comm' := fun i i' _ => by
apply IsColimit.hom_ext (hs i)
intro j
have eq := fun k => (hs k).fac ((eval C c k).mapCocone t)
simp only [Functor.mapCocone_ι_app, eval_map] at eq
simp only [Functor.mapCocone_ι_app, eval_map]
rw [reassoc_of% (eq i), Hom.comm_assoc, eq i', Hom.comm] }
fac t
j := by
ext i
apply (hs i).fac
uniq t m
hm := by
ext i
apply (hs i).uniq ((eval C c i).mapCocone t)
intro j
dsimp
simp only [← comp_f, hm]