Preservation and reflection of (co)limits. #
There are various distinct notions of "preserving limits". The one we aim to capture here is: A functor F : C → D "preserves limits" if it sends every limit cone in C to a limit cone in D. Informally, F preserves all the limits which exist in C.
Note that:
-
Of course, we do not want to require F to strictly take chosen limit cones of C to chosen limit cones of D. Indeed, the above definition makes no reference to a choice of limit cones so it makes sense without any conditions on C or D.
-
Some diagrams in C may have no limit. In this case, there is no condition on the behavior of F on such diagrams. There are other notions (such as "flat functor") which impose conditions also on diagrams in C with no limits, but these are not considered here.
In order to be able to express the property of preserving limits of a certain form, we say that a functor F preserves the limit of a diagram K if F sends every limit cone on K to a limit cone. This is vacuously satisfied when K does not admit a limit, which is consistent with the above definition of "preserves limits".
- preserves : {c : CategoryTheory.Limits.Cone K} → CategoryTheory.Limits.IsLimit c → CategoryTheory.Limits.IsLimit (F.mapCone c)
A functor F preserves limits of K (written as PreservesLimit K F)
if F maps any limit cone over K to a limit cone.
Instances
- preserves : {c : CategoryTheory.Limits.Cocone K} → CategoryTheory.Limits.IsColimit c → CategoryTheory.Limits.IsColimit (F.mapCocone c)
A functor F preserves colimits of K (written as PreservesColimit K F)
if F maps any colimit cocone over K to a colimit cocone.
Instances
- preservesLimit : {K : CategoryTheory.Functor J C} → CategoryTheory.Limits.PreservesLimit K F
We say that F preserves limits of shape J if F preserves limits for every diagram
K : J ⥤ C, i.e., F maps limit cones over K to limit cones.
Instances
- preservesColimit : {K : CategoryTheory.Functor J C} → CategoryTheory.Limits.PreservesColimit K F
We say that F preserves colimits of shape J if F preserves colimits for every diagram
K : J ⥤ C, i.e., F maps colimit cocones over K to colimit cocones.
Instances
- preservesLimitsOfShape : {J : Type w} → [inst : CategoryTheory.Category.{w', w} J] → CategoryTheory.Limits.PreservesLimitsOfShape J F
PreservesLimitsOfSize.{v u} F means that F sends all limit cones over any
diagram J ⥤ C to limit cones, where J : Type u with [Category.{v} J].
Instances
We say that F preserves (small) limits if it sends small
limit cones over any diagram to limit cones.
Equations
Instances For
- preservesColimitsOfShape : {J : Type w} → [inst : CategoryTheory.Category.{w', w} J] → CategoryTheory.Limits.PreservesColimitsOfShape J F
PreservesColimitsOfSize.{v u} F means that F sends all colimit cocones over any
diagram J ⥤ C to colimit cocones, where J : Type u with [Category.{v} J].
Instances
We say that F preserves (small) limits if it sends small
limit cones over any diagram to limit cones.
Equations
Instances For
A convenience function for PreservesLimit, which takes the functor as an explicit argument to
guide typeclass resolution.
Equations
Instances For
A convenience function for PreservesColimit, which takes the functor as an explicit argument to
guide typeclass resolution.
Equations
Instances For
Equations
- CategoryTheory.Limits.idPreservesLimits = CategoryTheory.Limits.PreservesLimitsOfSize.mk
Equations
- CategoryTheory.Limits.idPreservesColimits = CategoryTheory.Limits.PreservesColimitsOfSize.mk
Equations
- CategoryTheory.Limits.compPreservesLimit F G = { preserves := fun {c} h => CategoryTheory.Limits.PreservesLimit.preserves (CategoryTheory.Limits.PreservesLimit.preserves h) }
Equations
- CategoryTheory.Limits.compPreservesLimitsOfShape F G = CategoryTheory.Limits.PreservesLimitsOfShape.mk
Equations
- CategoryTheory.Limits.compPreservesLimits F G = CategoryTheory.Limits.PreservesLimitsOfSize.mk
Equations
- CategoryTheory.Limits.compPreservesColimit F G = { preserves := fun {c} h => CategoryTheory.Limits.PreservesColimit.preserves (CategoryTheory.Limits.PreservesColimit.preserves h) }
Equations
- CategoryTheory.Limits.compPreservesColimitsOfShape F G = CategoryTheory.Limits.PreservesColimitsOfShape.mk
Equations
- CategoryTheory.Limits.compPreservesColimits F G = CategoryTheory.Limits.PreservesColimitsOfSize.mk
If F preserves one limit cone for the diagram K, then it preserves any limit cone for K.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer preservation of limits along a natural isomorphism in the diagram.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer preservation of a limit along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesLimitOfNatIso K h = { preserves := fun {c} t => CategoryTheory.Limits.IsLimit.mapConeEquiv h (CategoryTheory.Limits.PreservesLimit.preserves t) }
Instances For
Transfer preservation of limits of shape along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesLimitsOfShapeOfNatIso h = CategoryTheory.Limits.PreservesLimitsOfShape.mk
Instances For
Transfer preservation of limits along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesLimitsOfNatIso h = CategoryTheory.Limits.PreservesLimitsOfSize.mk
Instances For
Transfer preservation of limits along an equivalence in the shape.
Equations
- CategoryTheory.Limits.preservesLimitsOfShapeOfEquiv e F = CategoryTheory.Limits.PreservesLimitsOfShape.mk
Instances For
PreservesLimitsOfSizeShrink.{w w'} F tries to obtain PreservesLimitsOfSize.{w w'} F
from some other PreservesLimitsOfSize F.
Equations
- CategoryTheory.Limits.preservesLimitsOfSizeShrink F = CategoryTheory.Limits.PreservesLimitsOfSize.mk
Instances For
Preserving limits at any universe level implies preserving limits in universe 0.
Equations
Instances For
If F preserves one colimit cocone for the diagram K, then it preserves any colimit cocone for K.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer preservation of colimits along a natural isomorphism in the shape.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer preservation of a colimit along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesColimitOfNatIso K h = { preserves := fun {c} t => CategoryTheory.Limits.IsColimit.mapCoconeEquiv h (CategoryTheory.Limits.PreservesColimit.preserves t) }
Instances For
Transfer preservation of colimits of shape along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesColimitsOfShapeOfNatIso h = CategoryTheory.Limits.PreservesColimitsOfShape.mk
Instances For
Transfer preservation of colimits along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.preservesColimitsOfNatIso h = CategoryTheory.Limits.PreservesColimitsOfSize.mk
Instances For
Transfer preservation of colimits along an equivalence in the shape.
Equations
- CategoryTheory.Limits.preservesColimitsOfShapeOfEquiv e F = CategoryTheory.Limits.PreservesColimitsOfShape.mk
Instances For
PreservesColimitsOfSizeShrink.{w w'} F tries to obtain PreservesColimitsOfSize.{w w'} F
from some other PreservesColimitsOfSize F.
Equations
- CategoryTheory.Limits.preservesColimitsOfSizeShrink F = CategoryTheory.Limits.PreservesColimitsOfSize.mk
Instances For
Preserving colimits at any universe implies preserving colimits at universe 0.
Equations
Instances For
- reflects : {c : CategoryTheory.Limits.Cone K} → CategoryTheory.Limits.IsLimit (F.mapCone c) → CategoryTheory.Limits.IsLimit c
A functor F : C ⥤ D reflects limits for K : J ⥤ C if
whenever the image of a cone over K under F is a limit cone in D,
the cone was already a limit cone in C.
Note that we do not assume a priori that D actually has any limits.
Instances
- reflects : {c : CategoryTheory.Limits.Cocone K} → CategoryTheory.Limits.IsColimit (F.mapCocone c) → CategoryTheory.Limits.IsColimit c
A functor F : C ⥤ D reflects colimits for K : J ⥤ C if
whenever the image of a cocone over K under F is a colimit cocone in D,
the cocone was already a colimit cocone in C.
Note that we do not assume a priori that D actually has any colimits.
Instances
- reflectsLimit : {K : CategoryTheory.Functor J C} → CategoryTheory.Limits.ReflectsLimit K F
A functor F : C ⥤ D reflects limits of shape J if
whenever the image of a cone over some K : J ⥤ C under F is a limit cone in D,
the cone was already a limit cone in C.
Note that we do not assume a priori that D actually has any limits.
Instances
- reflectsColimit : {K : CategoryTheory.Functor J C} → CategoryTheory.Limits.ReflectsColimit K F
A functor F : C ⥤ D reflects colimits of shape J if
whenever the image of a cocone over some K : J ⥤ C under F is a colimit cocone in D,
the cocone was already a colimit cocone in C.
Note that we do not assume a priori that D actually has any colimits.
Instances
- reflectsLimitsOfShape : {J : Type w} → [inst : CategoryTheory.Category.{w', w} J] → CategoryTheory.Limits.ReflectsLimitsOfShape J F
A functor F : C ⥤ D reflects limits if
whenever the image of a cone over some K : J ⥤ C under F is a limit cone in D,
the cone was already a limit cone in C.
Note that we do not assume a priori that D actually has any limits.
Instances
A functor F : C ⥤ D reflects (small) limits if
whenever the image of a cone over some K : J ⥤ C under F is a limit cone in D,
the cone was already a limit cone in C.
Note that we do not assume a priori that D actually has any limits.
Equations
Instances For
- reflectsColimitsOfShape : {J : Type w} → [inst : CategoryTheory.Category.{w', w} J] → CategoryTheory.Limits.ReflectsColimitsOfShape J F
A functor F : C ⥤ D reflects colimits if
whenever the image of a cocone over some K : J ⥤ C under F is a colimit cocone in D,
the cocone was already a colimit cocone in C.
Note that we do not assume a priori that D actually has any colimits.
Instances
A functor F : C ⥤ D reflects (small) colimits if
whenever the image of a cocone over some K : J ⥤ C under F is a colimit cocone in D,
the cocone was already a colimit cocone in C.
Note that we do not assume a priori that D actually has any colimits.
Equations
Instances For
A convenience function for ReflectsLimit, which takes the functor as an explicit argument to
guide typeclass resolution.
Equations
Instances For
A convenience function for ReflectsColimit, which takes the functor as an explicit argument to
guide typeclass resolution.
Equations
Instances For
Equations
- CategoryTheory.Limits.reflectsLimitOfReflectsLimitsOfShape K F = CategoryTheory.Limits.ReflectsLimitsOfShape.reflectsLimit
Equations
- CategoryTheory.Limits.reflectsColimitOfReflectsColimitsOfShape K F = CategoryTheory.Limits.ReflectsColimitsOfShape.reflectsColimit
Equations
- CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsLimits J F = CategoryTheory.Limits.ReflectsLimitsOfSize.reflectsLimitsOfShape
Equations
- CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsColimits J F = CategoryTheory.Limits.ReflectsColimitsOfSize.reflectsColimitsOfShape
Equations
- CategoryTheory.Limits.idReflectsLimits = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Equations
- CategoryTheory.Limits.idReflectsColimits = CategoryTheory.Limits.ReflectsColimitsOfSize.mk
Equations
- CategoryTheory.Limits.compReflectsLimit F G = { reflects := fun {c} h => CategoryTheory.Limits.ReflectsLimit.reflects (CategoryTheory.Limits.ReflectsLimit.reflects h) }
Equations
- CategoryTheory.Limits.compReflectsLimitsOfShape F G = CategoryTheory.Limits.ReflectsLimitsOfShape.mk
Equations
- CategoryTheory.Limits.compReflectsLimits F G = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Equations
- CategoryTheory.Limits.compReflectsColimit F G = { reflects := fun {c} h => CategoryTheory.Limits.ReflectsColimit.reflects (CategoryTheory.Limits.ReflectsColimit.reflects h) }
Equations
- CategoryTheory.Limits.compReflectsColimitsOfShape F G = CategoryTheory.Limits.ReflectsColimitsOfShape.mk
Equations
- CategoryTheory.Limits.compReflectsColimits F G = CategoryTheory.Limits.ReflectsColimitsOfSize.mk
If F ⋙ G preserves limits for K, and G reflects limits for K ⋙ F,
then F preserves limits for K.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If F ⋙ G preserves limits of shape J and G reflects limits of shape J, then F preserves
limits of shape J.
Equations
- CategoryTheory.Limits.preservesLimitsOfShapeOfReflectsOfPreserves F G = CategoryTheory.Limits.PreservesLimitsOfShape.mk
Instances For
If F ⋙ G preserves limits and G reflects limits, then F preserves limits.
Equations
- CategoryTheory.Limits.preservesLimitsOfReflectsOfPreserves F G = CategoryTheory.Limits.PreservesLimitsOfSize.mk
Instances For
Transfer reflection of limits along a natural isomorphism in the diagram.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer reflection of a limit along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsLimitOfNatIso K h = { reflects := fun {c} t => CategoryTheory.Limits.ReflectsLimit.reflects (CategoryTheory.Limits.IsLimit.mapConeEquiv h.symm t) }
Instances For
Transfer reflection of limits of shape along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsLimitsOfShapeOfNatIso h = CategoryTheory.Limits.ReflectsLimitsOfShape.mk
Instances For
Transfer reflection of limits along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsLimitsOfNatIso h = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Instances For
Transfer reflection of limits along an equivalence in the shape.
Equations
- CategoryTheory.Limits.reflectsLimitsOfShapeOfEquiv e F = CategoryTheory.Limits.ReflectsLimitsOfShape.mk
Instances For
reflectsLimitsOfSizeShrink.{w w'} F tries to obtain reflectsLimitsOfSize.{w w'} F
from some other reflectsLimitsOfSize F.
Equations
- CategoryTheory.Limits.reflectsLimitsOfSizeShrink F = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Instances For
Reflecting limits at any universe implies reflecting limits at universe 0.
Equations
Instances For
If the limit of F exists and G preserves it, then if G reflects isomorphisms then it
reflects the limit of F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If C has limits of shape J and G preserves them, then if G reflects isomorphisms then it
reflects limits of shape J.
Equations
- CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsIsomorphisms = CategoryTheory.Limits.ReflectsLimitsOfShape.mk
Instances For
If C has limits and G preserves limits, then if G reflects isomorphisms then it reflects
limits.
Equations
- CategoryTheory.Limits.reflectsLimitsOfReflectsIsomorphisms = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Instances For
If F ⋙ G preserves colimits for K, and G reflects colimits for K ⋙ F,
then F preserves colimits for K.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If F ⋙ G preserves colimits of shape J and G reflects colimits of shape J, then F
preserves colimits of shape J.
Equations
- CategoryTheory.Limits.preservesColimitsOfShapeOfReflectsOfPreserves F G = CategoryTheory.Limits.PreservesColimitsOfShape.mk
Instances For
If F ⋙ G preserves colimits and G reflects colimits, then F preserves colimits.
Equations
- CategoryTheory.Limits.preservesColimitsOfReflectsOfPreserves F G = CategoryTheory.Limits.PreservesColimitsOfSize.mk
Instances For
Transfer reflection of colimits along a natural isomorphism in the diagram.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer reflection of a colimit along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsColimitOfNatIso K h = { reflects := fun {c} t => CategoryTheory.Limits.ReflectsColimit.reflects (CategoryTheory.Limits.IsColimit.mapCoconeEquiv h.symm t) }
Instances For
Transfer reflection of colimits of shape along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsColimitsOfShapeOfNatIso h = CategoryTheory.Limits.ReflectsColimitsOfShape.mk
Instances For
Transfer reflection of colimits along a natural isomorphism in the functor.
Equations
- CategoryTheory.Limits.reflectsColimitsOfNatIso h = CategoryTheory.Limits.ReflectsColimitsOfSize.mk
Instances For
Transfer reflection of colimits along an equivalence in the shape.
Equations
- CategoryTheory.Limits.reflectsColimitsOfShapeOfEquiv e F = CategoryTheory.Limits.ReflectsColimitsOfShape.mk
Instances For
reflectsColimitsOfSizeShrink.{w w'} F tries to obtain reflectsColimitsOfSize.{w w'} F
from some other reflectsColimitsOfSize F.
Equations
- CategoryTheory.Limits.reflectsColimitsOfSizeShrink F = CategoryTheory.Limits.ReflectsColimitsOfSize.mk
Instances For
Reflecting colimits at any universe implies reflecting colimits at universe 0.
Equations
Instances For
If the colimit of F exists and G preserves it, then if G reflects isomorphisms then it
reflects the colimit of F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If C has colimits of shape J and G preserves them, then if G reflects isomorphisms then it
reflects colimits of shape J.
Equations
- CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsIsomorphisms = CategoryTheory.Limits.ReflectsColimitsOfShape.mk
Instances For
If C has colimits and G preserves colimits, then if G reflects isomorphisms then it reflects
colimits.
Equations
- CategoryTheory.Limits.reflectsColimitsOfReflectsIsomorphisms = CategoryTheory.Limits.ReflectsColimitsOfSize.mk
Instances For
A fully faithful functor reflects limits.
Equations
- CategoryTheory.Limits.fullyFaithfulReflectsLimits F = CategoryTheory.Limits.ReflectsLimitsOfSize.mk
Instances For
A fully faithful functor reflects colimits.
Equations
- CategoryTheory.Limits.fullyFaithfulReflectsColimits F = CategoryTheory.Limits.ReflectsColimitsOfSize.mk