Documentation

Mathlib.CategoryTheory.ObjectProperty.LimitsOfShape

Objects that are limits of objects satisfying a certain property #

Given a property of objects P : ObjectProperty C and a category J, we introduce two properties of objects P.strictLimitsOfShape J and P.limitsOfShape J. The former contains exactly the objects of the form limit F for any functor F : J โฅค C that has a limit and such that F.obj j satisfies P for any j, while the latter contains all the objects that are isomorphic to these "chosen" objects limit F.

Under certain circumstances, the type of objects satisfying P.strictLimitsOfShape J is small: the main reason this variant is introduced is to deduce that the full subcategory of P.limitsOfShape J is essentially small.

By requiring P.limitsOfShape J โ‰ค P, we introduce a typeclass P.IsClosedUnderLimitsOfShape J.

TODO #

The property of objects that are equal to limit F for some functor F : J โฅค C where all F.obj j satisfy P.

Instances For
    structure CategoryTheory.ObjectProperty.LimitOfShape {C : Type u_1} [Category.{v_1, u_1} C] (P : ObjectProperty C) (J : Type u') [Category.{v', u'} J] (X : C) extends CategoryTheory.Limits.LimitPresentation J X :
    Type (max (max (max u' u_1) v') v_1)

    A structure expressing that X : C is the limit of a functor diag : J โฅค C such that P (diag.obj j) holds for all j.

    Instances For
      noncomputable def CategoryTheory.ObjectProperty.LimitOfShape.limit {C : Type u_1} [Category.{v_1, u_1} C] {P : ObjectProperty C} {J : Type u'} [Category.{v', u'} J] (F : Functor J C) [Limits.HasLimit F] (hF : โˆ€ (j : J), P (F.obj j)) :

      If F : J โฅค C is a functor that has a limit and is such that for all j, F.obj j satisfies a property P, then this structure expresses that limit F is indeed a limit of objects satisfying P.

      Instances For
        def CategoryTheory.ObjectProperty.LimitOfShape.ofIso {C : Type u_1} [Category.{v_1, u_1} C] {P : ObjectProperty C} {J : Type u'} [Category.{v', u'} J] {X : C} (h : P.LimitOfShape J X) {Y : C} (e : X โ‰… Y) :

        If X is a limit indexed by J of objects satisfying a property P, then any object that is isomorphic to X also is.

        Instances For

          If X is a limit indexed by J of objects satisfying a property P, it is also a limit indexed by J of objects satisfying Q if P โ‰ค Q.

          Instances For
            noncomputable def CategoryTheory.ObjectProperty.LimitOfShape.reindex {C : Type u_1} [Category.{v_1, u_1} C] {P : ObjectProperty C} {J : Type u'} [Category.{v', u'} J] {J' : Type u''} [Category.{v'', u''} J'] {X : C} (h : P.LimitOfShape J X) (G : Functor J' J) [G.Initial] :

            Change the index category for ObjectProperty.LimitOfShape.

            Instances For

              Given P : ObjectProperty C, and a presentation P.LimitOfShape J X of an object X : C, this is the induced functor J โฅค StructuredArrow P.ฮน X.

              Instances For
                @[simp]
                theorem CategoryTheory.ObjectProperty.LimitOfShape.toStructuredArrow_map {C : Type u_1} [Category.{v_1, u_1} C] {P : ObjectProperty C} {J : Type u'} [Category.{v', u'} J] {X : C} (p : P.LimitOfShape J X) {Xโœ Yโœ : J} (f : Xโœ โŸถ Yโœ) :

                The property of objects that are the point of a limit cone for a functor F : J โฅค C where all objects F.obj j satisfy P.

                Instances For

                  A property of objects satisfies P.IsClosedUnderLimitsOfShape J if it is stable by limits of shape J.

                  Instances
                    theorem CategoryTheory.ObjectProperty.prop_pi {C : Type u_1} [Category.{v_1, u_1} C] (P : ObjectProperty C) {J : Type u_3} [P.IsClosedUnderLimitsOfShape (Discrete J)] (X : J โ†’ C) [Limits.HasProduct X] (hF : โˆ€ (j : J), P (X j)) :