Documentation

Mathlib.CategoryTheory.Limits.Creates

Creating (co)limits #

We say that F creates limits of K if, given any limit cone c for K ⋙ F (i.e. below) we can lift it to a cone "above", and further that F reflects limits for K.

structure CategoryTheory.LiftableCone {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 : Limits.Cone (K.comp F)) :
Type (max (max (max u₁ v₁) v₂) w)

Define the lift of a cone: For a cone c for K ⋙ F, give a cone for K which is a lift of c, i.e. the image of it under F is (iso) to c.

We will then use this as part of the definition of creation of limits: every limit cone has a lift.

Note this definition is really only useful when c is a limit already.

Instances For
    structure CategoryTheory.LiftableCocone {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 : Limits.Cocone (K.comp F)) :
    Type (max (max (max u₁ v₁) v₂) w)

    Define the lift of a cocone: For a cocone c for K ⋙ F, give a cocone for K which is a lift of c, i.e. the image of it under F is (iso) to c.

    We will then use this as part of the definition of creation of colimits: every limit cocone has a lift.

    Note this definition is really only useful when c is a colimit already.

    Instances For
      class CategoryTheory.CreatesLimit {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) extends CategoryTheory.Limits.ReflectsLimit K F :
      Type (max (max (max (max u₁ u₂) v₁) v₂) w)

      Definition 3.3.1 of [Riehl]. We say that F creates limits of K if, given any limit cone c for K ⋙ F (i.e. below) we can lift it to a cone "above", and further that F reflects limits for K.

      If F reflects isomorphisms, it suffices to show only that the lifted cone is a limit - see createsLimitOfReflectsIso.

      Instances
        class CategoryTheory.CreatesLimitsOfShape {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (J : Type w) [Category.{w', w} J] (F : Functor C D) :
        Type (max (max (max (max (max u₁ u₂) v₁) v₂) w) w')

        F creates limits of shape J if F creates the limit of any diagram K : J ⥤ C.

        Instances
          class CategoryTheory.CreatesLimitsOfSize {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) :
          Type (max (max (max (max (max u₁ u₂) v₁) v₂) (w + 1)) (w' + 1))

          F creates limits if it creates limits of shape J for any J.

          Instances
            @[reducible, inline]
            abbrev CategoryTheory.CreatesLimits {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) :
            Type (max (max (max (max u₁ u₂) v₁) v₂) (v₂ + 1))

            F creates small limits if it creates limits of shape J for any small J.

            Equations
              Instances For
                class CategoryTheory.CreatesColimit {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) extends CategoryTheory.Limits.ReflectsColimit K F :
                Type (max (max (max (max u₁ u₂) v₁) v₂) w)

                Dual of definition 3.3.1 of [Riehl]. We say that F creates colimits of K if, given any limit cocone c for K ⋙ F (i.e. below) we can lift it to a cocone "above", and further that F reflects limits for K.

                If F reflects isomorphisms, it suffices to show only that the lifted cocone is a limit - see createsColimitOfReflectsIso.

                Instances
                  class CategoryTheory.CreatesColimitsOfShape {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (J : Type w) [Category.{w', w} J] (F : Functor C D) :
                  Type (max (max (max (max (max u₁ u₂) v₁) v₂) w) w')

                  F creates colimits of shape J if F creates the colimit of any diagram K : J ⥤ C.

                  Instances
                    class CategoryTheory.CreatesColimitsOfSize {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) :
                    Type (max (max (max (max (max u₁ u₂) v₁) v₂) (w + 1)) (w' + 1))

                    F creates colimits if it creates colimits of shape J for any small J.

                    Instances
                      @[reducible, inline]
                      abbrev CategoryTheory.CreatesColimits {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) :
                      Type (max (max (max (max u₁ u₂) v₁) v₂) (v₂ + 1))

                      F creates small colimits if it creates colimits of shape J for any small J.

                      Equations
                        Instances For
                          def CategoryTheory.liftLimit {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} [CreatesLimit K F] {c : Limits.Cone (K.comp F)} (t : Limits.IsLimit c) :

                          liftLimit t is the cone for K given by lifting the limit t for K ⋙ F.

                          Equations
                            Instances For

                              The lifted cone has an image isomorphic to the original cone.

                              Equations
                                Instances For

                                  The lifted cone is a limit.

                                  Equations
                                    Instances For

                                      If F creates the limit of K and K ⋙ F has a limit, then K has a limit.

                                      If F creates limits of shape J, and D has limits of shape J, then C has limits of shape J.

                                      liftColimit t is the cocone for K given by lifting the colimit t for K ⋙ F.

                                      Equations
                                        Instances For

                                          The lifted cocone has an image isomorphic to the original cocone.

                                          Equations
                                            Instances For

                                              The lifted cocone is a colimit.

                                              Equations
                                                Instances For

                                                  If F creates the limit of K and K ⋙ F has a limit, then K has a limit.

                                                  If F creates colimits of shape J, and D has colimits of shape J, then C has colimits of shape J.

                                                  structure CategoryTheory.LiftsToLimit {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 : Limits.Cone (K.comp F)) (t : Limits.IsLimit c) extends CategoryTheory.LiftableCone K F c :
                                                  Type (max (max (max u₁ v₁) v₂) w)

                                                  A helper to show a functor creates limits. In particular, if we can show that for any limit cone c for K ⋙ F, there is a lift of it which is a limit and F reflects isomorphisms, then F creates limits. Usually, F creating limits says that any lift of c is a limit, but here we only need to show that our particular lift of c is a limit.

                                                  Instances For
                                                    structure CategoryTheory.LiftsToColimit {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 : Limits.Cocone (K.comp F)) (t : Limits.IsColimit c) extends CategoryTheory.LiftableCocone K F c :
                                                    Type (max (max (max u₁ v₁) v₂) w)

                                                    A helper to show a functor creates colimits. In particular, if we can show that for any limit cocone c for K ⋙ F, there is a lift of it which is a limit and F reflects isomorphisms, then F creates colimits. Usually, F creating colimits says that any lift of c is a colimit, but here we only need to show that our particular lift of c is a colimit.

                                                    Instances For

                                                      If F reflects isomorphisms and we can lift any limit cone to a limit cone, then F creates limits. In particular here we don't need to assume that F reflects limits.

                                                      Equations
                                                        Instances For

                                                          If F reflects isomorphisms and we can lift a single limit cone to a limit cone, then F creates limits. Note that unlike createsLimitOfReflectsIso, to apply this result it is necessary to know that K ⋙ F actually has a limit.

                                                          Equations
                                                            Instances For

                                                              If F reflects isomorphisms, and we already know that the limit exists in the source and F preserves it, then F creates that limit.

                                                              Equations
                                                                Instances For

                                                                  When F is fully faithful, to show that F creates the limit for K it suffices to exhibit a lift of a limit cone for K ⋙ F.

                                                                  Equations
                                                                    Instances For

                                                                      When F is fully faithful, and HasLimit (K ⋙ F), to show that F creates the limit for K it suffices to exhibit a lift of the chosen limit cone for K ⋙ F.

                                                                      Equations
                                                                        Instances For
                                                                          def CategoryTheory.createsLimitOfFullyFaithfulOfIso' {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} [F.Full] [F.Faithful] {l : Limits.Cone (K.comp F)} (hl : Limits.IsLimit l) (X : C) (i : F.obj X l.pt) :

                                                                          When F is fully faithful, to show that F creates the limit for K it suffices to show that a limit point is in the essential image of F.

                                                                          Equations
                                                                            Instances For

                                                                              When F is fully faithful, and HasLimit (K ⋙ F), to show that F creates the limit for K it suffices to show that the chosen limit point is in the essential image of F.

                                                                              Equations
                                                                                Instances For

                                                                                  A fully faithful functor that preserves a limit that exists also creates the limit.

                                                                                  Equations
                                                                                    Instances For
                                                                                      @[instance 100]

                                                                                      F preserves the limit of K if it creates the limit and K ⋙ F has the limit.

                                                                                      @[instance 100]

                                                                                      F preserves the limit of shape J if it creates these limits and D has them.

                                                                                      If F reflects isomorphisms and we can lift any colimit cocone to a colimit cocone, then F creates colimits. In particular here we don't need to assume that F reflects colimits.

                                                                                      Equations
                                                                                        Instances For

                                                                                          If F reflects isomorphisms and we can lift a single colimit cocone to a colimit cocone, then F creates limits. Note that unlike createsColimitOfReflectsIso, to apply this result it is necessary to know that K ⋙ F actually has a colimit.

                                                                                          Equations
                                                                                            Instances For

                                                                                              If F reflects isomorphisms, and we already know that the colimit exists in the source and F preserves it, then F creates that colimit.

                                                                                              Equations
                                                                                                Instances For
                                                                                                  @[deprecated CategoryTheory.createsColimitOfReflectsIsomorphismsOfPreserves (since := "2025-02-01")]

                                                                                                  Alias of CategoryTheory.createsColimitOfReflectsIsomorphismsOfPreserves.


                                                                                                  If F reflects isomorphisms, and we already know that the colimit exists in the source and F preserves it, then F creates that colimit.

                                                                                                  Equations
                                                                                                    Instances For

                                                                                                      When F is fully faithful, to show that F creates the colimit for K it suffices to exhibit a lift of a colimit cocone for K ⋙ F.

                                                                                                      Equations
                                                                                                        Instances For

                                                                                                          When F is fully faithful, and HasColimit (K ⋙ F), to show that F creates the colimit for K it suffices to exhibit a lift of the chosen colimit cocone for K ⋙ F.

                                                                                                          Equations
                                                                                                            Instances For
                                                                                                              def CategoryTheory.createsColimitOfFullyFaithfulOfIso' {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} [F.Full] [F.Faithful] {l : Limits.Cocone (K.comp F)} (hl : Limits.IsColimit l) (X : C) (i : F.obj X l.pt) :

                                                                                                              When F is fully faithful, to show that F creates the colimit for K it suffices to show that a colimit point is in the essential image of F.

                                                                                                              Equations
                                                                                                                Instances For

                                                                                                                  When F is fully faithful, and HasColimit (K ⋙ F), to show that F creates the colimit for K it suffices to show that the chosen colimit point is in the essential image of F.

                                                                                                                  Equations
                                                                                                                    Instances For
                                                                                                                      @[instance 100]

                                                                                                                      F preserves the colimit of K if it creates the colimit and K ⋙ F has the colimit.

                                                                                                                      @[instance 100]

                                                                                                                      F preserves the colimit of shape J if it creates these colimits and D has them.

                                                                                                                      def CategoryTheory.createsLimitOfIsoDiagram {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₂) [CreatesLimit K₁ F] :

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

                                                                                                                      Equations
                                                                                                                        Instances For
                                                                                                                          def CategoryTheory.createsLimitOfNatIso {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) [CreatesLimit K F] :

                                                                                                                          If F creates the limit of K and F ≅ G, then G creates the limit of K.

                                                                                                                          Equations
                                                                                                                            Instances For

                                                                                                                              If F creates limits of shape J and F ≅ G, then G creates limits of shape J.

                                                                                                                              Equations
                                                                                                                                Instances For

                                                                                                                                  If F creates limits and F ≅ G, then G creates limits.

                                                                                                                                  Equations
                                                                                                                                    Instances For

                                                                                                                                      If F creates limits of shape J and J ≌ J', then F creates limits of shape J'.

                                                                                                                                      Equations
                                                                                                                                        Instances For
                                                                                                                                          def CategoryTheory.createsColimitOfIsoDiagram {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₂) [CreatesColimit K₁ F] :

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

                                                                                                                                          Equations
                                                                                                                                            Instances For

                                                                                                                                              If F creates the colimit of K and F ≅ G, then G creates the colimit of K.

                                                                                                                                              Equations
                                                                                                                                                Instances For

                                                                                                                                                  If F creates colimits of shape J and F ≅ G, then G creates colimits of shape J.

                                                                                                                                                  Equations
                                                                                                                                                    Instances For

                                                                                                                                                      If F creates colimits and F ≅ G, then G creates colimits.

                                                                                                                                                      Equations
                                                                                                                                                        Instances For

                                                                                                                                                          If F creates colimits of shape J and J ≌ J', then F creates colimits of shape J'.

                                                                                                                                                          Equations
                                                                                                                                                            Instances For

                                                                                                                                                              If F creates the limit of K, any cone lifts to a limit.

                                                                                                                                                              Equations
                                                                                                                                                                Instances For

                                                                                                                                                                  If F creates the colimit of K, any cocone lifts to a colimit.

                                                                                                                                                                  Equations
                                                                                                                                                                    Instances For

                                                                                                                                                                      Any cone lifts through the identity functor.

                                                                                                                                                                      Equations
                                                                                                                                                                        Instances For

                                                                                                                                                                          The identity functor creates all limits.

                                                                                                                                                                          Equations

                                                                                                                                                                            Any cocone lifts through the identity functor.

                                                                                                                                                                            Equations
                                                                                                                                                                              Instances For

                                                                                                                                                                                The identity functor creates all colimits.

                                                                                                                                                                                Equations

                                                                                                                                                                                  Satisfy the inhabited linter

                                                                                                                                                                                  Equations
                                                                                                                                                                                    instance CategoryTheory.inhabitedLiftsToLimit {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) [CreatesLimit K F] (c : Limits.Cone (K.comp F)) (t : Limits.IsLimit c) :

                                                                                                                                                                                    Satisfy the inhabited linter

                                                                                                                                                                                    Equations
                                                                                                                                                                                      instance CategoryTheory.compCreatesLimit {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) [CreatesLimit K F] [CreatesLimit (K.comp F) G] :
                                                                                                                                                                                      Equations
                                                                                                                                                                                        instance CategoryTheory.compCreatesColimit {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) [CreatesColimit K F] [CreatesColimit (K.comp F) G] :
                                                                                                                                                                                        Equations