Documentation

Mathlib.CategoryTheory.Limits.Preserves.Basic

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:

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".

@[reducible, inline]

We say that F preserves (small) limits if it sends small limit cones over any diagram to limit cones.

Equations
@[reducible, inline]

We say that F preserves (small) limits if it sends small limit cones over any diagram to limit cones.

Equations

A convenience function for PreservesLimit, which takes the functor as an explicit argument to guide typeclass resolution.

Equations

A convenience function for PreservesColimit, which takes the functor as an explicit argument to guide typeclass resolution.

Equations
@[deprecated "use id_preservesLimitsOfSize" (since := "2024-11-19")]
@[deprecated "use id_preservesColimitsOfSize" (since := "2024-11-19")]
instance CategoryTheory.Limits.comp_preservesLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} {E : Type u₃} [ : Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [PreservesLimit K F] [PreservesLimit (K.comp F) G] :
@[deprecated "use comp_preservesLimit" (since := "2024-11-19")]
theorem CategoryTheory.Limits.compPreservesLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} {E : Type u₃} [ : Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [PreservesLimit K F] [PreservesLimit (K.comp F) G] :
@[deprecated "use comp_preservesLimitsOfShape" (since := "2024-11-19")]
@[deprecated "use comp_preservesColimit" (since := "2024-11-19")]
@[deprecated "use comp_preservesColimitsOfShape" (since := "2024-11-19")]

If F preserves one limit cone for the diagram K, then it preserves any limit cone for K.

@[deprecated "use preservesLimit_of_preserves_limit_cone" (since := "2024-11-19")]
theorem CategoryTheory.Limits.preservesLimit_of_iso_diagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [PreservesLimit K₁ F] :

Transfer preservation of limits along a natural isomorphism in the diagram.

@[deprecated "use preservesLimit_of_iso_diagram" (since := "2024-11-19")]
theorem CategoryTheory.Limits.preservesLimitOfIsoDiagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [PreservesLimit K₁ F] :

Transfer preservation of a limit along a natural isomorphism in the functor.

@[deprecated "use preservesLimit_of_natIso" (since := "2024-11-19")]

Transfer preservation of limits of shape along a natural isomorphism in the functor.

@[deprecated "use preservesLimitsOfShape_of_natIso" (since := "2024-11-19")]

Transfer preservation of limits along a natural isomorphism in the functor.

@[deprecated "use preservesLimits_of_natIso" (since := "2024-11-19")]

Transfer preservation of limits along an equivalence in the shape.

@[deprecated "use preservesLimitsOfShape_of_equiv" (since := "2024-11-19")]

If F preserves one colimit cocone for the diagram K, then it preserves any colimit cocone for K.

@[deprecated "use preservesColimit_of_preserves_colimit_cocone" (since := "2024-11-19")]
theorem CategoryTheory.Limits.preservesColimit_of_iso_diagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [PreservesColimit K₁ F] :

Transfer preservation of colimits along a natural isomorphism in the shape.

@[deprecated "use preservesColimit_of_iso_diagram" (since := "2024-11-19")]
theorem CategoryTheory.Limits.preservesColimitOfIsoDiagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [PreservesColimit K₁ F] :

Transfer preservation of a colimit along a natural isomorphism in the functor.

@[deprecated CategoryTheory.Limits.preservesColimit_of_natIso (since := "2024-11-19")]

Transfer preservation of colimits of shape along a natural isomorphism in the functor.

@[deprecated "use preservesColimitsOfShape_of_natIso" (since := "2024-11-19")]

Transfer preservation of colimits along a natural isomorphism in the functor.

Transfer preservation of colimits along an equivalence in the shape.

@[deprecated "use preservesColimitsOfShape_of_equiv" (since := "2024-11-19")]

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

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

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

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

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
@[reducible, inline]

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

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
@[reducible, inline]

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
def CategoryTheory.Limits.isLimitOfReflects {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} (F : Functor C D) {c : Cone K} (t : IsLimit (F.mapCone c)) [ReflectsLimit K F] :

A convenience function for ReflectsLimit, which takes the functor as an explicit argument to guide typeclass resolution.

Equations

A convenience function for ReflectsColimit, which takes the functor as an explicit argument to guide typeclass resolution.

Equations
@[deprecated "use id_reflectsLimits" (since := "2024-11-19")]
@[deprecated "use id_reflectsColimits" (since := "2024-11-19")]
instance CategoryTheory.Limits.comp_reflectsLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} {E : Type u₃} [ : Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [ReflectsLimit K F] [ReflectsLimit (K.comp F) G] :
@[deprecated "use comp_reflectsLimit" (since := "2024-11-19")]
theorem CategoryTheory.Limits.compReflectsLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} {E : Type u₃} [ : Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [ReflectsLimit K F] [ReflectsLimit (K.comp F) G] :
@[deprecated "use comp_reflectsLimitsOfShape " (since := "2024-11-19")]
@[deprecated "use comp_reflectsColimit" (since := "2024-11-19")]
theorem CategoryTheory.Limits.compReflectsColimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K : Functor J C} {E : Type u₃} [ : Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [ReflectsColimit K F] [ReflectsColimit (K.comp F) G] :
@[deprecated "use comp_reflectsColimitsOfShape " (since := "2024-11-19")]

If F ⋙ G preserves limits for K, and G reflects limits for K ⋙ F, then F preserves limits for K.

@[deprecated "use preservesLimit_of_reflects_of_preserves" (since := "2024-11-19")]

If F ⋙ G preserves limits of shape J and G reflects limits of shape J, then F preserves limits of shape J.

@[deprecated "use preservesLimitsOfShape_of_reflects_of_preserves" (since := "2024-11-19")]
theorem CategoryTheory.Limits.reflectsLimit_of_iso_diagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [ReflectsLimit K₁ F] :

Transfer reflection of limits along a natural isomorphism in the diagram.

@[deprecated "use reflectsLimit_of_iso_diagram" (since := "2024-11-19")]
theorem CategoryTheory.Limits.reflectsLimitOfIsoDiagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [ReflectsLimit K₁ F] :

Transfer reflection of a limit along a natural isomorphism in the functor.

@[deprecated "use reflectsLimit_of_natIso" (since := "2024-11-19")]
theorem CategoryTheory.Limits.reflectsLimitOfNatIso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] (K : Functor J C) {F G : Functor C D} (h : F G) [ReflectsLimit K F] :

Transfer reflection of limits of shape along a natural isomorphism in the functor.

@[deprecated "use reflectsLimitsOfShape_of_natIso" (since := "2024-11-19")]

Transfer reflection of limits along a natural isomorphism in the functor.

@[deprecated "use reflectsLimits_of_natIso" (since := "2024-11-19")]

Transfer reflection of limits along an equivalence in the shape.

@[deprecated "use reflectsLimitsOfShape_of_equiv" (since := "2024-11-19")]

reflectsLimitsOfSize_shrink.{w w'} F tries to obtain reflectsLimitsOfSize.{w w'} F from some other reflectsLimitsOfSize F.

If the limit of F exists and G preserves it, then if G reflects isomorphisms then it reflects the limit of F.

@[deprecated "use reflectsLimit_of_reflectsIsomorphisms" (since := "2024-11-19")]

If C has limits of shape J and G preserves them, then if G reflects isomorphisms then it reflects limits of shape J.

@[deprecated "use reflectsLimitsOfShape_of_reflectsIsomorphisms" (since := "2024-11-19")]

If F ⋙ G preserves colimits for K, and G reflects colimits for K ⋙ F, then F preserves colimits for K.

@[deprecated "use preservesColimit_of_reflects_of_preserves" (since := "2024-11-19")]

If F ⋙ G preserves colimits of shape J and G reflects colimits of shape J, then F preserves colimits of shape J.

@[deprecated "use preservesColimitsOfShape_of_reflects_of_preserves" (since := "2024-11-19")]
theorem CategoryTheory.Limits.reflectsColimit_of_iso_diagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [ReflectsColimit K₁ F] :

Transfer reflection of colimits along a natural isomorphism in the diagram.

@[deprecated "use reflectsColimit_of_iso_diagram" (since := "2024-11-19")]
theorem CategoryTheory.Limits.reflectsColimitOfIsoDiagram {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type w} [Category.{w', w} J] {K₁ K₂ : Functor J C} (F : Functor C D) (h : K₁ K₂) [ReflectsColimit K₁ F] :

Transfer reflection of a colimit along a natural isomorphism in the functor.

@[deprecated "use reflectsColimit_of_natIso" (since := "2024-11-19")]

Transfer reflection of colimits of shape along a natural isomorphism in the functor.

@[deprecated "use reflectsColimitsOfShape_of_natIso" (since := "2024-11-19")]

Transfer reflection of colimits along a natural isomorphism in the functor.

Transfer reflection of colimits along an equivalence in the shape.

@[deprecated "use reflectsColimitsOfShape_of_equiv" (since := "2024-11-19")]

reflectsColimitsOfSize_shrink.{w w'} F tries to obtain reflectsColimitsOfSize.{w w'} F from some other reflectsColimitsOfSize F.

If the colimit of F exists and G preserves it, then if G reflects isomorphisms then it reflects the colimit of F.

@[deprecated "use reflectsColimit_of_reflectsIsomorphisms" (since := "2024-11-19")]

If C has colimits of shape J and G preserves them, then if G reflects isomorphisms then it reflects colimits of shape J.

@[deprecated "use reflectsColimitsOfShape_of_reflectsIsomorphisms" (since := "2024-11-19")]
@[deprecated "use fullyFaithful_reflectsLimits" (since := "2024-11-19")]
@[deprecated "use fullyFaithful_reflectsColimits" (since := "2024-11-19")]