Documentation

Mathlib.CategoryTheory.Limits.ConeCategory

Limits and the category of (co)cones #

This files contains results that stem from the limit API. For the definition and the category instance of Cone, please refer to CategoryTheory/Limits/Cones.lean.

Main results #

Given a cone c over F, we can interpret the legs of c as structured arrows c.pt ⟶ F.obj -.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.Limits.Cone.toStructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {X✝ Y✝ : J} (f : X✝ Y✝) :

    If F has a limit, then the limit projections can be interpreted as structured arrows limit F ⟶ F.obj -.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.Limits.limit.toStructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) [HasLimit F] {X✝ Y✝ : J} (f : X✝ Y✝) :
      def CategoryTheory.Functor.toStructuredArrowIsoToStructuredArrow {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] (G : Functor J K) (X : C) (F : Functor K C) (f : (Y : J) → X F.obj (G.obj Y)) (h : ∀ {Y Z : J} (g : Y Z), CategoryStruct.comp (f Y) (F.map (G.map g)) = f Z) :
      G.toStructuredArrow X F f { pt := X, π := { app := f, naturality := } }.toStructuredArrow.comp (StructuredArrow.pre { pt := X, π := { app := f, naturality := } }.pt G F)

      Functor.toStructuredArrow can be expressed in terms of Cone.toStructuredArrow.

      Equations
      Instances For

        Interpreting the legs of a cone as a structured arrow and then forgetting the arrow again does nothing.

        Equations
        Instances For

          Interpreting the legs of a cone as a structured arrow, interpreting this arrow as an arrow over the cone point, and finally forgetting the arrow is the same as just applying the functor the cone was over.

          Equations
          Instances For

            A cone c on F : J ⥤ C lifts to a cone in Over c.pt with cone point 𝟙 c.pt.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Limits.Cone.toUnder_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (j : J) :
              c.toUnder.π.app j = Under.homMk (c.π.app j)

              The limit cone for F : J ⥤ C lifts to a cocone in Under (limit F) with cone point 𝟙 (limit F). This is automatically also a limit cone.

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

                c.toUnder is a lift of c under the forgetful functor.

                Equations
                Instances For

                  Given a diagram of StructuredArrow X Fs, we may obtain a cone with cone point X.

                  Equations
                  Instances For
                    @[simp]

                    Given a cone c : Cone K and a map f : X ⟶ F.obj c.X, we can construct a cone of structured arrows over X with f as the cone point.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.Cone.toStructuredArrowCone_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {K : Functor J C} (c : Cone K) (F : Functor C D) {X : D} (f : X F.obj c.pt) (j : J) :
                      @[simp]

                      Construct an object of the category (Δ ↓ F) from a cone on F. This is part of an equivalence, see Cone.equivCostructuredArrow.

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

                        Construct a cone on F from an object of the category (Δ ↓ F). This is part of an equivalence, see Cone.equivCostructuredArrow.

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

                          The category of cones on F is just the comma category (Δ ↓ F), where Δ is the constant functor.

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

                            A cone is a limit cone iff it is terminal.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              noncomputable def CategoryTheory.Limits.IsLimit.ofPreservesConeTerminal {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {F' : Functor K D} (G : Functor (Cone F) (Cone F')) [PreservesLimit (Functor.empty (Cone F)) G] {c : Cone F} (hc : IsLimit c) :
                              IsLimit (G.obj c)

                              If G : Cone F ⥤ Cone F' preserves terminal objects, it preserves limit cones.

                              Equations
                              Instances For
                                noncomputable def CategoryTheory.Limits.IsLimit.ofReflectsConeTerminal {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {F' : Functor K D} (G : Functor (Cone F) (Cone F')) [ReflectsLimit (Functor.empty (Cone F)) G] {c : Cone F} (hc : IsLimit (G.obj c)) :

                                If G : Cone F ⥤ Cone F' reflects terminal objects, it reflects limit cones.

                                Equations
                                Instances For

                                  Given a cocone c over F, we can interpret the legs of c as costructured arrows F.obj - ⟶ c.pt.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {X✝ Y✝ : J} (f : X✝ Y✝) :

                                    If F has a colimit, then the colimit inclusions can be interpreted as costructured arrows F.obj - ⟶ colimit F.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      def CategoryTheory.Functor.toCostructuredArrowIsoToCostructuredArrow {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] (G : Functor J K) (F : Functor K C) (X : C) (f : (Y : J) → F.obj (G.obj Y) X) (h : ∀ {Y Z : J} (g : Y Z), CategoryStruct.comp (F.map (G.map g)) (f Z) = f Y) :
                                      G.toCostructuredArrow F X f { pt := X, ι := { app := f, naturality := } }.toCostructuredArrow.comp (CostructuredArrow.pre G F { pt := X, ι := { app := f, naturality := } }.pt)

                                      Functor.toCostructuredArrow can be expressed in terms of Cocone.toCostructuredArrow.

                                      Equations
                                      Instances For

                                        Interpreting the legs of a cocone as a costructured arrow and then forgetting the arrow again does nothing.

                                        Equations
                                        Instances For

                                          Interpreting the legs of a cocone as a costructured arrow, interpreting this arrow as an arrow over the cocone point, and finally forgetting the arrow is the same as just applying the functor the cocone was over.

                                          Equations
                                          Instances For

                                            A cocone c on F : J ⥤ C lifts to a cocone in Over c.pt with cone point 𝟙 c.pt.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cocone.toOver_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (j : J) :
                                              c.toOver.ι.app j = Over.homMk (c.ι.app j)

                                              The colimit cocone for F : J ⥤ C lifts to a cocone in Over (colimit F) with cone point 𝟙 (colimit F). This is automatically also a colimit cocone.

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

                                                c.toOver is a lift of c under the forgetful functor.

                                                Equations
                                                Instances For

                                                  Given a diagram CostructuredArrow F Xs, we may obtain a cocone with cone point X.

                                                  Equations
                                                  Instances For

                                                    Given a cocone c : Cocone K and a map f : F.obj c.X ⟶ X, we can construct a cocone of costructured arrows over X with f as the cone point.

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.Cocone.toCostructuredArrowCocone_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {K : Functor J C} (c : Cocone K) (F : Functor C D) {X : D} (f : F.obj c.pt X) (j : J) :

                                                      Construct an object of the category (F ↓ Δ) from a cocone on F. This is part of an equivalence, see Cocone.equivStructuredArrow.

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

                                                        Construct a cocone on F from an object of the category (F ↓ Δ). This is part of an equivalence, see Cocone.equivStructuredArrow.

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

                                                          The category of cocones on F is just the comma category (F ↓ Δ), where Δ is the constant functor.

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

                                                            A cocone is a colimit cocone iff it is initial.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              noncomputable def CategoryTheory.Limits.IsColimit.ofPreservesCoconeInitial {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {F' : Functor K D} (G : Functor (Cocone F) (Cocone F')) [PreservesColimit (Functor.empty (Cocone F)) G] {c : Cocone F} (hc : IsColimit c) :

                                                              If G : Cocone F ⥤ Cocone F' preserves initial objects, it preserves colimit cocones.

                                                              Equations
                                                              Instances For
                                                                noncomputable def CategoryTheory.Limits.IsColimit.ofReflectsCoconeInitial {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {F' : Functor K D} (G : Functor (Cocone F) (Cocone F')) [ReflectsColimit (Functor.empty (Cocone F)) G] {c : Cocone F} (hc : IsColimit (G.obj c)) :

                                                                If G : Cocone F ⥤ Cocone F' reflects initial objects, it reflects colimit cocones.

                                                                Equations
                                                                Instances For