Over and under categories #
Over (and under) categories are special cases of comma categories.
- If
Lis the identity functor andRis a constant functor, thenComma L Ris the "slice" or "over" category over the objectRmaps to. - Conversely, if
Lis a constant functor andRis the identity functor, thenComma L Ris the "coslice" or "under" category under the objectLmaps to.
Tags #
Comma, Slice, Coslice, Over, Under
The over category has as objects arrows in T with codomain X and as morphisms commutative
triangles.
See
Equations
Instances For
Equations
- CategoryTheory.instCategoryOver X = CategoryTheory.commaCategory
Equations
- CategoryTheory.Over.inhabited = { default := { left := default, right := default, hom := CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id T).obj default) } }
To give an object in the over category, it suffices to give a morphism with codomain X.
Equations
Instances For
We can set up a coercion from arrows with codomain X to over X. This most likely should not
be a global instance, but it is sometimes useful.
Equations
- CategoryTheory.Over.coeFromHom = { coe := CategoryTheory.Over.mk }
Instances For
To give a morphism in the over category, it suffices to give an arrow fitting in a commutative triangle.
Instances For
Construct an isomorphism in the over category given isomorphisms of the objects whose forward direction gives a commutative triangle.
Equations
Instances For
The forgetful functor mapping an arrow to its domain.
See
Equations
Instances For
The natural cocone over the forgetful functor Over X ⥤ T with cocone point X.
Equations
- CategoryTheory.Over.forgetCocone X = { pt := X, ι := CategoryTheory.NatTrans.mk CategoryTheory.Comma.hom }
Instances For
A morphism f : X ⟶ Y induces a functor Over X ⥤ Over Y in the obvious way.
See
Equations
Instances For
Mapping by the identity morphism is just the identity functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Mapping by the composite morphism f ≫ g is the same as mapping by f then by g.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity over X is terminal.
Equations
- CategoryTheory.Over.mkIdTerminal = CategoryTheory.CostructuredArrow.mkIdTerminal
Instances For
If k.left is an epimorphism, then k is an epimorphism. In other words, Over.forget X reflects
epimorphisms.
The converse does not hold without additional assumptions on the underlying category, see
CategoryTheory.Over.epi_left_of_epi.
If k.left is a monomorphism, then k is a monomorphism. In other words, Over.forget X reflects
monomorphisms.
The converse of CategoryTheory.Over.mono_left_of_mono.
This lemma is not an instance, to avoid loops in type class inference.
If k is a monomorphism, then k.left is a monomorphism. In other words, Over.forget X preserves
monomorphisms.
The converse of CategoryTheory.Over.mono_of_mono_left.
Given f : Y ⟶ X, this is the obvious functor from (T/X)/f to T/Y
Equations
- CategoryTheory.Over.iteratedSliceForward f = CategoryTheory.Functor.mk { obj := fun α => CategoryTheory.Over.mk α.hom.left, map := fun {X_1 Y} κ => CategoryTheory.Over.homMk κ.left.left }
Instances For
Given f : Y ⟶ X, this is the obvious functor from T/Y to (T/X)/f
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor F : T ⥤ D induces a functor Over X ⥤ Over (F.obj X) in the obvious way.
Equations
- CategoryTheory.Over.post F = CategoryTheory.Functor.mk { obj := fun Y => CategoryTheory.Over.mk (F.map Y.hom), map := fun {X_1 Y} f => CategoryTheory.Over.homMk (F.map f.left) }
Instances For
Reinterpreting an F-costructured arrow F.obj d ⟶ X as an arrow over X induces a functor
CostructuredArrow F X ⥤ Over X.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.CostructuredArrow.instFullCostructuredArrowInstCategoryCostructuredArrowOverInstCategoryOverToOver F X = let_fun this := inferInstance; this
Equations
- One or more equations did not get rendered due to their size.
An equivalence F induces an equivalence CostructuredArrow F X ≌ Over X.
Equations
Instances For
The under category has as objects arrows with domain X and as morphisms commutative
triangles.
Equations
Instances For
Equations
- CategoryTheory.instCategoryUnder X = CategoryTheory.commaCategory
Equations
- One or more equations did not get rendered due to their size.
To give an object in the under category, it suffices to give an arrow with domain X.
Equations
Instances For
To give a morphism in the under category, it suffices to give a morphism fitting in a commutative triangle.
Instances For
Construct an isomorphism in the over category given isomorphisms of the objects whose forward direction gives a commutative triangle.
Equations
Instances For
The forgetful functor mapping an arrow to its domain.
Equations
Instances For
The natural cone over the forgetful functor Under X ⥤ T with cone point X.
Equations
- CategoryTheory.Under.forgetCone X = { pt := X, π := CategoryTheory.NatTrans.mk CategoryTheory.Comma.hom }
Instances For
A morphism X ⟶ Y induces a functor Under Y ⥤ Under X in the obvious way.
Equations
Instances For
Mapping by the identity morphism is just the identity functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Mapping by the composite morphism f ≫ g is the same as mapping by f then by g.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity under X is initial.
Equations
- CategoryTheory.Under.mkIdInitial = CategoryTheory.StructuredArrow.mkIdInitial
Instances For
If k.right is a monomorphism, then k is a monomorphism. In other words, Under.forget X
reflects epimorphisms.
The converse does not hold without additional assumptions on the underlying category, see
CategoryTheory.Under.mono_right_of_mono.
If k.right is an epimorphism, then k is an epimorphism. In other words, Under.forget X
reflects epimorphisms.
The converse of CategoryTheory.Under.epi_right_of_epi.
This lemma is not an instance, to avoid loops in type class inference.
If k is an epimorphism, then k.right is an epimorphism. In other words, Under.forget X
preserves epimorphisms.
The converse of CategoryTheory.under.epi_of_epi_right.
A functor F : T ⥤ D induces a functor Under X ⥤ Under (F.obj X) in the obvious way.
Equations
- CategoryTheory.Under.post F = CategoryTheory.Functor.mk { obj := fun Y => CategoryTheory.Under.mk (F.map Y.hom), map := fun {X_1 Y} f => CategoryTheory.Under.homMk (F.map f.right) }
Instances For
Reinterpreting an F-structured arrow X ⟶ F.obj d as an arrow under X induces a functor
StructuredArrow X F ⥤ Under X.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.StructuredArrow.instFullStructuredArrowInstCategoryStructuredArrowUnderInstCategoryUnderToUnder X F = let_fun this := inferInstance; this
Equations
- One or more equations did not get rendered due to their size.
An equivalence F induces an equivalence StructuredArrow X F ≌ Under X.
Equations
Instances For
Given X : T, to upgrade a functor F : S ⥤ T to a functor S ⥤ Over X, it suffices to
provide maps F.obj Y ⟶ X for all Y making the obvious triangles involving all F.map g
commute.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Upgrading a functor S ⥤ T to a functor S ⥤ Over X and composing with the forgetful functor
Over X ⥤ T recovers the original functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given X : T, to upgrade a functor F : S ⥤ T to a functor S ⥤ Under X, it suffices to
provide maps X ⟶ F.obj Y for all Y making the obvious triangles involving all F.map g
commute.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Upgrading a functor S ⥤ T to a functor S ⥤ Under X and composing with the forgetful functor
Under X ⥤ T recovers the original functor.
Equations
- One or more equations did not get rendered due to their size.