Documentation

Mathlib.CategoryTheory.Limits.Weighted.HasWeightedLimit

Weighted limits #

In this file, we define weighted limits (in the non enriched case). Given a weight W : J ⥤ Type w and a functor F : J ⥤ C, the W-weighted limit of J is the limit of the functor CategoryOfElements.π W ⋙ F : W.Elements ⥤ C.

References #

@[reducible, inline]
abbrev CategoryTheory.Limits.WeightedCone {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) :
Type (max (max (max u w) u') v')

Given W : J ⥤ Type w and F : J ⥤ C, this is the type of cones for the functor CategoryOfElements.π W ⋙ F : W.Elements ⥤ C.

Equations
Instances For
    @[reducible, inline]

    Given a weight W : J ⥤ Type w and F : J ⥤ C, we say that the W-weighted limit of F exists if the functor CategoryOfElements.π W ⋙ F : W.Elements ⥤ C has a limit.

    Equations
    Instances For
      @[reducible, inline]
      abbrev CategoryTheory.Limits.WeightedCone.π {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (c : WeightedCone W F) {j : J} (x : W.obj j) :
      c.pt F.obj j

      The projection c.pt ⟶ F.obj j for c : WeightedCone W F and x : W.obj j.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Limits.WeightedCone.w {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (c : WeightedCone W F) {i j : J} (x : W.obj i) (f : i j) :
        @[simp]
        theorem CategoryTheory.Limits.WeightedCone.w_assoc {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (c : WeightedCone W F) {i j : J} (x : W.obj i) (f : i j) {Z : C} (h : F.obj j Z) :
        @[implicit_reducible]
        def CategoryTheory.Limits.WeightedCone.mk {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (pt : C) (π : j : J⦄ → W.obj j → (pt F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x) := by cat_disch) :

        Constructor for weighted cones.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Limits.WeightedCone.mk_pt {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (pt : C) (π : j : J⦄ → W.obj j → (pt F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x) := by cat_disch) :
          (mk pt π ).pt = pt
          @[simp]
          theorem CategoryTheory.Limits.WeightedCone.mk_π {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (pt : C) (π : j : J⦄ → W.obj j → (pt F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x) := by cat_disch) {j : J} (x : W.obj j) :
          (mk pt π ).π x = π x
          @[reducible, inline]
          abbrev CategoryTheory.Limits.WeightedCone.IsLimit {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} (c : WeightedCone W F) :
          Type (max (max (max u w) u') v')

          A weighted cone c : WeightedCone W F is a limit if it is so as a cone of CategoryOfElements.π W ⋙ F : W.Elements ⥤ C.

          Equations
          Instances For
            def CategoryTheory.Limits.WeightedCone.IsLimit.lift {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (hc : c.IsLimit) {Z : C} (π : j : J⦄ → W.obj j → (Z F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x)) :
            Z c.pt

            Constructor for morphisms from the point of a limit weighted cone.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Limits.WeightedCone.IsLimit.fac {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (hc : c.IsLimit) {Z : C} (π : j : J⦄ → W.obj j → (Z F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x)) {j : J} (x : W.obj j) :
              CategoryStruct.comp (hc.lift π ) (c.π x) = π x
              @[simp]
              theorem CategoryTheory.Limits.WeightedCone.IsLimit.fac_assoc {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (hc : c.IsLimit) {Z : C} (π : j : J⦄ → W.obj j → (Z F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x)) {j : J} (x : W.obj j) {Z✝ : C} (h : F.obj j Z✝) :
              theorem CategoryTheory.Limits.WeightedCone.IsLimit.hom_ext {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (hc : c.IsLimit) {Z : C} {f g : Z c.pt} (h : ∀ {j : J} (x : W.obj j), CategoryStruct.comp f (c.π x) = CategoryStruct.comp g (c.π x)) :
              f = g
              def CategoryTheory.Limits.WeightedCone.IsLimit.mk {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (lift : (s : WeightedCone W F) → s.pt c.pt) (fac : ∀ (s : WeightedCone W F) ⦃j : J⦄ (x : W.obj j), CategoryStruct.comp (lift s) (c.π x) = s.π x) (uniq : ∀ (s : WeightedCone W F) (m : s.pt c.pt), (∀ ⦃j : J⦄ (x : W.obj j), CategoryStruct.comp m (c.π x) = s.π x)m = lift s) :

              Helper definition in order to show that a weighted cone is a limit.

              Equations
              Instances For
                @[reducible, inline]

                If the weight is coyoneda.obj (op j) : J ⥤ Type _, this is the limit weighted cone for F : J ⥤ C with point F.obj j.

                Equations
                Instances For

                  The weighted limit of F for the weight coyoneda.obj (op j) is F.obj j.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Given a weight W : J ⥤ Type w and F : J ⥤ C, this is the W-weighted limit of F.

                    Equations
                    Instances For
                      noncomputable def CategoryTheory.Functor.weightedLimObjObjπ {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) [Limits.HasWeightedLimit W F] j : J (x : W.obj j) :

                      The projections from the weighted limit.

                      Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Functor.weightedLimObjObj_w {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) [Limits.HasWeightedLimit W F] j₁ j₂ : J (x : W.obj j₁) (f : j₁ j₂) :
                        @[simp]
                        theorem CategoryTheory.Functor.weightedLimObjObj_w_assoc {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) [Limits.HasWeightedLimit W F] j₁ j₂ : J (x : W.obj j₁) (f : j₁ j₂) {Z : C} (h : F.obj j₂ Z) :
                        @[reducible, inline]

                        A choice of limit weighted cone.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Functor.isLimitWeightedLimCone_fac {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) [Limits.HasWeightedLimit W F] {Z : C} (π : j : J⦄ → W.obj j → (Z F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x)) j : J (x : W.obj j) :
                          @[simp]
                          theorem CategoryTheory.Functor.isLimitWeightedLimCone_fac_assoc {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) (F : Functor J C) [Limits.HasWeightedLimit W F] {Z : C} (π : j : J⦄ → W.obj j → (Z F.obj j)) ( : ∀ ⦃j₁ j₂ : J⦄ (x : W.obj j₁) (f : j₁ j₂), CategoryStruct.comp (π x) (F.map f) = π ((ConcreteCategory.hom (W.map f)) x)) j : J (x : W.obj j) {Z✝ : C} (h : F.obj j Z✝) :
                          noncomputable def CategoryTheory.Functor.weightedLimObjMap {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) {F₁ F₂ : Functor J C} [Limits.HasWeightedLimit W F₁] [Limits.HasWeightedLimit W F₂] (f : F₁ F₂) :

                          Functoriality of the weighted limits with fixed weight W : J ⥤ Type w with respect to the functor in J ⥤ C.

                          Equations
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Functor.weightedLimObjMap_π {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) {F₁ F₂ : Functor J C} [Limits.HasWeightedLimit W F₁] [Limits.HasWeightedLimit W F₂] (f : F₁ F₂) j : J (x : W.obj j) :
                            @[simp]
                            theorem CategoryTheory.Functor.weightedLimObjMap_π_assoc {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] (W : Functor J (Type w)) {F₁ F₂ : Functor J C} [Limits.HasWeightedLimit W F₁] [Limits.HasWeightedLimit W F₂] (f : F₁ F₂) j : J (x : W.obj j) {Z : C} (h : F₂.obj j Z) :

                            The (contravariant) functoriality of weighted limits with respect to the weight.

                            Equations
                            Instances For
                              @[reducible, inline]

                              Given a weight W : J ⥤ Type w, this is the property that all W-weighted limits exist for functors F : J ⥤ C. Under this condition, we define a weighted limit functor W.weightedLimObj : (J ⥤ C) ⥤ C. (See also HasWeightedLimFlipObj for the "flipped" property for F : J ⥤ C.)

                              Equations
                              Instances For
                                @[implicit_reducible]

                                Weighted limits for a fixed weight W : J ⥤p Type w, as a functor (J ⥤ C) ⥤ C.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.Functor.weightedLimObj_map {J : Type u} [Category.{v, u} J] (W : Functor J (Type w)) {C : Type u'} [Category.{v', u'} C] [W.HasWeightedLimObj C] {X✝ Y✝ : Functor J C} (f : X✝ Y✝) :
                                  @[reducible, inline]

                                  Given a functor F : J ⥤ C, this is the property satisfied by weights W : J ⥤ Type w such that the W-weighted limit of F exists.

                                  Equations
                                  Instances For
                                    @[implicit_reducible]

                                    Given a functor F : J ⥤ C, this is the functor which sends a weight W : J ⥤ Type w to the W-weighted limit of F. This is defined on the full subcategory of J ⥤ Type w where this weighted limit exists.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[reducible, inline]

                                      Given F : J ⥤ C, this is the property that weighted limits of F exist for all weights W : J ⥤ Type w. Under this condition, we define a weighted limit functor F.weightedLimFlipObj : (J ⥤ Type w)ᵒᵖ ⥤ C. (See also HasWeightedLimObj for the "flipped" property for W : J ⥤ Type w.)

                                      Equations
                                      Instances For
                                        @[implicit_reducible]

                                        Given a functor F : J ⥤ C, this is the functor (J ⥤ Type w)ᵒᵖ ⥤ C which sends a weight W : J ⥤ Type w to the W-weighted limit of F. Here, we assume that all such weighted limits exist.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          When HasWeightedLimFlipObj.{w} F holds, the composition of the equivalence F.hasWeightedLimit.ι.op with weightedLimFlipObj.{w} F identifies to weightedLimFlipObj'.{w} F.

                                          Equations
                                          Instances For

                                            When HasWeightedLimFlipObj.{w} F holds, the composition of the inverse of the equivalence F.hasWeightedLimit.ι.op with weightedLimFlipObj'.{w} F identifies to weightedLimFlipObj.{w} F.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[implicit_reducible]
                                              noncomputable def CategoryTheory.Limits.weightedLim {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] [∀ (W : Functor J (Type w)), W.HasWeightedLimObj C] :

                                              When all weighted limits exists, this is the weighted limit bifunctor (J ⥤ Type w)ᵒᵖ ⥤ (J ⥤ C) ⥤ C.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                @[simp]
                                                theorem CategoryTheory.Limits.weightedLim_map_app {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] [∀ (W : Functor J (Type w)), W.HasWeightedLimObj C] {X✝ Y✝ : (Functor J (Type w))ᵒᵖ} (g : X✝ Y✝) (F : Functor J C) :
                                                noncomputable def CategoryTheory.Limits.WeightedCone.IsLimit.iso {J : Type u} [Category.{v, u} J] {C : Type u'} [Category.{v', u'} C] {W : Functor J (Type w)} {F : Functor J C} {c : WeightedCone W F} (hc : c.IsLimit) [HasWeightedLimit W F] :

                                                The isomorphism weightedLimObjObj W F ≅ c.pt when c : WeightedCone W F is a limit.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  @[simp]
                                                  @[simp]
                                                  @[simp]

                                                  Let j : J, the weighted limit functor with weight coyoneda.obj (op j) : J ⥤ Type _ identifies to the evaluation functor (J ⥤ C) ⥤ C at j.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For