English
Let I, J, K be types and C a category. For a graded object X with maps p: I → J, q: J → K, r: I → K and hpqr with q ∘ p = r, together with a family of cofans c and a higher cofan c′ (satisfying IsColimit conditions), the two-step cofan constructed by cofanMapObjComp X p q r hpqr k c c′ is a colimit. In other words, the coproducts built stage by stage along p and q realize the final coproduct along r.
Русский
Пусть I, J, K — множества, C — категория. Пусть X — градуированный объект с отображениями p : I → J, q : J → K, r : I → K и hpqr с условием q ∘ p = r. Пусть для каждого j ∈ J с q j = k задан ενώ cofAN c j hj, образующий coproduct по i с p i = j, и также есть cofAN c′, являющийся колимитом. Тогда кофан, полученный конструированием cofanMapObjComp X p q r hpqr k c c′, является колимитом. Иными словами, двухступенная конструкция копроDUCT даёт копроDUCT по r.
LaTeX
$$$\\operatorname{IsColimit}\\bigl(\\mathrm{cofanMapObjComp}\\, X\\, p\\, q\\, r\\, hpqr\\, k\\, c\\, c'\\bigr)$$$
Lean4
/-- Given maps `p : I → J`, `q : J → K` and `r : I → K` such that `q.comp p = r`,
`X : GradedObject I C`, `k : K`, the cofan constructed by `cofanMapObjComp` is a colimit.
In other words, if we have, for all `j : J` such that `hj : q j = k`,
a colimit cofan `c j hj` which computes the coproduct of the `X i` such that `p i = j`,
and also a colimit cofan which computes the coproduct of the points of these `c j hj`, then
the point of this latter cofan computes the coproduct of the `X i` such that `r i = k`. -/
@[simp]
def isColimitCofanMapObjComp : IsColimit (cofanMapObjComp X p q r hpqr k c c') :=
mkCofanColimit _
(fun s =>
Cofan.IsColimit.desc hc'
(fun ⟨j, (hj : q j = k)⟩ =>
Cofan.IsColimit.desc (hc j hj)
(fun ⟨i, (hi : p i = j)⟩ =>
s.inj ⟨i, by simp only [Set.mem_preimage, Set.mem_singleton_iff, ← hpqr, hi, hj]⟩)))
(fun s ⟨i, (hi : r i = k)⟩ => by simp)
(fun s m hm => by
apply Cofan.IsColimit.hom_ext hc'
rintro ⟨j, rfl : q j = k⟩
apply Cofan.IsColimit.hom_ext (hc j rfl)
rintro ⟨i, rfl : p i = j⟩
dsimp
rw [Cofan.IsColimit.fac, Cofan.IsColimit.fac, ← hm]
dsimp
rw [assoc])