# Documentation

Mathlib.CategoryTheory.Limits.Over

# 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.epi_left_of_epi {C : Type u} {X : C} {f : } {g : } (h : f g) :
theorem CategoryTheory.Over.epi_iff_epi_left {C : Type u} {X : C} {f : } {g : } (h : f g) :
@[simp]
theorem CategoryTheory.Over.pullback_map {C : Type u} {X : C} {Y : C} (f : X Y) (g : ) {h : } {k : g h} :
().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))
@[simp]
theorem CategoryTheory.Over.pullback_obj {C : Type u} {X : C} {Y : C} (f : X Y) (g : ) :
().obj g = CategoryTheory.Over.mk CategoryTheory.Limits.pullback.snd
def CategoryTheory.Over.pullback {C : Type u} {X : C} {Y : C} (f : X Y) :

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
def CategoryTheory.Over.mapPullbackAdj {C : Type u} {A : C} {B : C} (f : A B) :

Over.map f is left adjoint to Over.pullback f.

Instances For

pullback (𝟙 A) : over A ⥤ over A is the identity functor.

Instances For
def CategoryTheory.Over.pullbackComp {C : Type u} {X : C} {Y : C} {Z : C} (f : X Y) (g : Y Z) :

pullback commutes with composition (up to natural isomorphism).

Instances For
instance CategoryTheory.Over.pullbackIsRightAdjoint {C : Type u} {A : C} {B : C} (f : A B) :
theorem CategoryTheory.Under.mono_right_of_mono {C : Type u} {X : C} {f : } {g : } (h : f g) :
theorem CategoryTheory.Under.mono_iff_mono_right {C : Type u} {X : C} {f : } {g : } (h : f g) :
@[simp]
theorem CategoryTheory.Under.pushout_map {C : Type u} {X : C} {Y : C} (f : X Y) (g : ) {h : } {k : g h} :
().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))
@[simp]
theorem CategoryTheory.Under.pushout_obj {C : Type u} {X : C} {Y : C} (f : X Y) (g : ) :
().obj g = CategoryTheory.Under.mk CategoryTheory.Limits.pushout.inr
def CategoryTheory.Under.pushout {C : Type u} {X : C} {Y : C} (f : X Y) :

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