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✝) :
    c.toStructuredArrow.map f = StructuredArrow.homMk f
    @[simp]
    theorem CategoryTheory.Limits.Cone.toStructuredArrow_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (j : J) :
    c.toStructuredArrow.obj j = StructuredArrow.mk (c.app j)

    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.Limits.Cone.toStructuredArrowIsoToStructuredArrow {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
      c.toStructuredArrow (Functor.id J).toStructuredArrow c.pt F c.app

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

      Equations
      Instances For
        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
          def CategoryTheory.Limits.Cone.toStructuredArrowCompProj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
          c.toStructuredArrow.comp (StructuredArrow.proj c.pt F) Functor.id J

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

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Limits.Cone.toStructuredArrowCompProj_inv_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (X : J) :
            c.toStructuredArrowCompProj.inv.app X = CategoryStruct.id X
            @[simp]
            theorem CategoryTheory.Limits.Cone.toStructuredArrowCompProj_hom_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (X : J) :
            c.toStructuredArrowCompProj.hom.app X = CategoryStruct.id X
            @[simp]
            theorem CategoryTheory.Limits.Cone.toStructuredArrow_comp_proj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
            c.toStructuredArrow.comp (StructuredArrow.proj c.pt F) = Functor.id J
            def CategoryTheory.Limits.Cone.toStructuredArrowCompToUnderCompForget {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
            c.toStructuredArrow.comp ((StructuredArrow.toUnder c.pt F).comp (Under.forget c.pt)) F

            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
              @[simp]
              theorem CategoryTheory.Limits.Cone.toStructuredArrowCompToUnderCompForget_hom_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (X : J) :
              c.toStructuredArrowCompToUnderCompForget.hom.app X = CategoryStruct.id (F.obj X)
              @[simp]
              theorem CategoryTheory.Limits.Cone.toStructuredArrowCompToUnderCompForget_inv_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (X : J) :
              c.toStructuredArrowCompToUnderCompForget.inv.app X = CategoryStruct.id (F.obj X)
              @[simp]
              theorem CategoryTheory.Limits.Cone.toStructuredArrow_comp_toUnder_comp_forget {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
              c.toStructuredArrow.comp ((StructuredArrow.toUnder c.pt F).comp (Under.forget c.pt)) = F
              def CategoryTheory.Limits.Cone.toUnder {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
              Cone (c.toStructuredArrow.comp (StructuredArrow.toUnder c.pt F))

              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_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                c.toUnder.pt = Under.mk (CategoryStruct.id c.pt)
                @[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
                  def CategoryTheory.Limits.Cone.mapConeToUnder {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                  (Under.forget c.pt).mapCone c.toUnder c

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

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Limits.Cone.mapConeToUnder_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                    c.mapConeToUnder.inv.hom = CategoryStruct.id c.pt
                    @[simp]
                    theorem CategoryTheory.Limits.Cone.mapConeToUnder_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                    c.mapConeToUnder.hom.hom = CategoryStruct.id c.pt
                    def CategoryTheory.Limits.Cone.fromStructuredArrow {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor C D) {X : D} (G : Functor J (StructuredArrow X F)) :
                    Cone (G.comp ((StructuredArrow.proj X F).comp F))

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

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.Cone.fromStructuredArrow_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor C D) {X : D} (G : Functor J (StructuredArrow X F)) (j : J) :
                      (fromStructuredArrow F G).app j = (G.obj j).hom
                      def CategoryTheory.Limits.Cone.toStructuredArrowCone {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) :
                      Cone ((F.mapCone c).toStructuredArrow.comp ((StructuredArrow.map f).comp (StructuredArrow.pre X K F)))

                      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) :
                        (c.toStructuredArrowCone F f).app j = StructuredArrow.homMk (c.app j)
                        @[simp]
                        theorem CategoryTheory.Limits.Cone.toStructuredArrowCone_pt {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) :
                        (c.toStructuredArrowCone F f).pt = StructuredArrow.mk f

                        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]
                          theorem CategoryTheory.Limits.Cone.toCostructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : Cone F} (f : X✝ Y✝) :

                          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
                            @[simp]
                            theorem CategoryTheory.Limits.Cone.fromCostructuredArrow_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : CostructuredArrow (Functor.const J) F} (f : X✝ Y✝) :
                            ((fromCostructuredArrow F).map f).hom = f.left

                            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
                                theorem CategoryTheory.Limits.IsLimit.liftConeMorphism_eq_isTerminal_from {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c : Cone F} (hc : IsLimit c) (s : Cone F) :
                                hc.liftConeMorphism s = (c.isLimitEquivIsTerminal hc).from s
                                theorem CategoryTheory.Limits.IsTerminal.from_eq_liftConeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c : Cone F} (hc : IsTerminal c) (s : Cone F) :
                                hc.from s = (c.isLimitEquivIsTerminal.symm hc).liftConeMorphism s
                                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✝) :
                                      c.toCostructuredArrow.map f = CostructuredArrow.homMk f
                                      @[simp]
                                      theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (j : J) :
                                      c.toCostructuredArrow.obj j = CostructuredArrow.mk (c.app j)

                                      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
                                        @[simp]
                                        theorem CategoryTheory.Limits.colimit.toCostructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) [HasColimit F] {X✝ Y✝ : J} (f : X✝ Y✝) :
                                        def CategoryTheory.Limits.Cocone.toCostructuredArrowIsoToCostructuredArrow {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                        c.toCostructuredArrow (Functor.id J).toCostructuredArrow F c.pt c.app

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

                                        Equations
                                        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
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cocone.toCostructuredArrowCompProj_hom_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (X : J) :
                                              c.toCostructuredArrowCompProj.hom.app X = CategoryStruct.id X
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cocone.toCostructuredArrowCompProj_inv_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (X : J) :
                                              c.toCostructuredArrowCompProj.inv.app X = CategoryStruct.id X
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_comp_proj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                              c.toCostructuredArrow.comp (CostructuredArrow.proj F c.pt) = Functor.id J
                                              def CategoryTheory.Limits.Cocone.toCostructuredArrowCompToOverCompForget {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                              c.toCostructuredArrow.comp ((CostructuredArrow.toOver F c.pt).comp (Over.forget c.pt)) F

                                              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
                                                @[simp]
                                                theorem CategoryTheory.Limits.Cocone.toCostructuredArrowCompToOverCompForget_inv_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (X : J) :
                                                c.toCostructuredArrowCompToOverCompForget.inv.app X = CategoryStruct.id (F.obj X)
                                                @[simp]
                                                theorem CategoryTheory.Limits.Cocone.toCostructuredArrowCompToOverCompForget_hom_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (X : J) :
                                                c.toCostructuredArrowCompToOverCompForget.hom.app X = CategoryStruct.id (F.obj X)
                                                @[simp]
                                                theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_comp_toOver_comp_forget {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                c.toCostructuredArrow.comp ((CostructuredArrow.toOver F c.pt).comp (Over.forget c.pt)) = F
                                                def CategoryTheory.Limits.Cocone.toOver {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                Cocone (c.toCostructuredArrow.comp (CostructuredArrow.toOver F c.pt))

                                                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)
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.Cocone.toOver_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                  c.toOver.pt = Over.mk (CategoryStruct.id c.pt)

                                                  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]
                                                    theorem CategoryTheory.Limits.colimit.toOver_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) [HasColimit F] (j : J) :
                                                    (toOver F).app j = Over.homMk (ι F j)
                                                    def CategoryTheory.Limits.Cocone.mapCoconeToOver {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                    (Over.forget c.pt).mapCocone c.toOver c

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

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.Cocone.mapCoconeToOver_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                      c.mapCoconeToOver.inv.hom = CategoryStruct.id c.pt
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.Cocone.mapCoconeToOver_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                      c.mapCoconeToOver.hom.hom = CategoryStruct.id c.pt

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

                                                      Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem CategoryTheory.Limits.Cocone.fromCostructuredArrow_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor C D) {X : D} (G : Functor J (CostructuredArrow F X)) (j : J) :
                                                        (fromCostructuredArrow F G).app j = (G.obj j).hom
                                                        def CategoryTheory.Limits.Cocone.toCostructuredArrowCocone {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) :
                                                        Cocone ((F.mapCocone c).toCostructuredArrow.comp ((CostructuredArrow.map f).comp (CostructuredArrow.pre K F X)))

                                                        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_pt {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) :
                                                          (c.toCostructuredArrowCocone F f).pt = CostructuredArrow.mk f
                                                          @[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) :
                                                          (c.toCostructuredArrowCocone F f).app j = CostructuredArrow.homMk (c.app 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]
                                                            theorem CategoryTheory.Limits.Cocone.toStructuredArrow_map {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : Cocone F} (f : X✝ Y✝) :

                                                            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
                                                              @[simp]
                                                              theorem CategoryTheory.Limits.Cocone.fromStructuredArrow_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : StructuredArrow F (Functor.const J)} (f : X✝ Y✝) :
                                                              ((fromStructuredArrow F).map f).hom = f.right

                                                              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
                                                                  theorem CategoryTheory.Limits.IsColimit.descCoconeMorphism_eq_isInitial_to {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c : Cocone F} (hc : IsColimit c) (s : Cocone F) :
                                                                  hc.descCoconeMorphism s = (c.isColimitEquivIsInitial hc).to s
                                                                  theorem CategoryTheory.Limits.IsInitial.to_eq_descCoconeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c : Cocone F} (hc : IsInitial c) (s : Cocone F) :
                                                                  hc.to s = (c.isColimitEquivIsInitial.symm hc).descCoconeMorphism s
                                                                  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) :
                                                                  IsColimit (G.obj 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