Documentation

Mathlib.CategoryTheory.Limits.ConeCategory

Limits and the category of (co)cones #

This file contains results that stem from the limit API. For the definition and the category instance of Cone, please refer to Mathlib/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 -.

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

    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.

      Instances For

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

        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.

          Instances For

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

            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.

              Instances For

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

                Instances For

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

                  Instances For

                    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.

                    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) :

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

                      Instances For

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

                        Instances For

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

                          Instances For

                            A cone is a limit cone iff it is terminal.

                            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.

                              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.

                                Instances For

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

                                  Instances For

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

                                    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.

                                      Instances For

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

                                        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.

                                          Instances For

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

                                            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.

                                              Instances For

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

                                                Instances For

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

                                                  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.

                                                    Instances For

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

                                                      Instances For

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

                                                        Instances For

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

                                                          Instances For

                                                            A cocone is a colimit cocone iff it is initial.

                                                            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.

                                                              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.

                                                                Instances For