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