Limits and colimits in the over and under categories #

Show that the forgetful functor forget X : Over X ⥤ C creates colimits, and hence Over X has any colimits that C has (as well as the dual that forget X : Under X ⟶ C creates limits).

Note that the folder CategoryTheory.Limits.Shapes.Constructions.Over further shows that forget X : Over X ⥤ C creates connected limits (so Over X has connected limits), and that Over X has J-indexed products if C has J-indexed wide pullbacks.

TODO: If C has binary products, then forget X : Over X ⥤ C has a right adjoint.

theorem CategoryTheory.Over.pullback_map {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasPullbacks C] {X : C} {Y : C} (f : X Y) (g : CategoryTheory.Over Y) {h : CategoryTheory.Over Y} {k : g h} :
(CategoryTheory.Over.pullback f).map k = CategoryTheory.Over.homMk (CategoryTheory.Limits.pullback.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst k.left) CategoryTheory.Limits.pullback.snd (_ : CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst k.left) h.hom = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.snd f))

When C has pullbacks, a morphism f : X ⟶ Y induces a functor Over Y ⥤ Over X, by pulling back a morphism along f.

Instances For
    theorem CategoryTheory.Under.pushout_map {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasPushouts C] {X : C} {Y : C} (f : X Y) (g : CategoryTheory.Under X) {h : CategoryTheory.Under X} {k : g h} :
    (CategoryTheory.Under.pushout f).map k = CategoryTheory.Under.homMk (CategoryTheory.Limits.pushout.desc (CategoryTheory.CategoryStruct.comp k.right CategoryTheory.Limits.pushout.inl) CategoryTheory.Limits.pushout.inr (_ : CategoryTheory.CategoryStruct.comp g.hom (CategoryTheory.CategoryStruct.comp k.right CategoryTheory.Limits.pushout.inl) = CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.pushout.inr))

    When C has pushouts, a morphism f : X ⟶ Y induces a functor Under X ⥤ Under Y, by pushing a morphism forward along f.

    Instances For