Lean4
/-- A cone in `HomologicalComplex C c` is limit if the induced cones obtained
by applying `eval C c i : HomologicalComplex C c ⥤ C` for all `i` are limit. -/
def isLimitOfEval (s : Cone F) (hs : ∀ (i : ι), IsLimit ((eval C c i).mapCone s)) : IsLimit s
where
lift
t :=
{ f := fun i => (hs i).lift ((eval C c i).mapCone t)
comm' := fun i i' _ => by
apply IsLimit.hom_ext (hs i')
intro j
have eq := fun k => (hs k).fac ((eval C c k).mapCone t)
simp only [Functor.mapCone_π_app, eval_map] at eq
simp only [Functor.mapCone_π_app, eval_map, assoc]
rw [eq i', ← Hom.comm, reassoc_of% (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).mapCone t)
intro j
dsimp
simp only [← comp_f, hm]