Documentation

Mathlib.CategoryTheory.Limits.Cones

Cones and cocones #

We define Cone F, a cone over a functor F, and F.cones : Cᵒᵖ ⥤ Type, the functor associating to X the cones over F with cone point X.

A cone c is defined by specifying its cone point c.pt and a natural transformation c.π from the constant c.pt valued functor to F.

We provide c.w f : c.π.app j ≫ F.map f = c.π.app j' for any f : j ⟶ j' as a wrapper for c.π.naturality f avoiding unneeded identity morphisms.

We define c.extend f, where c : cone F and f : Y ⟶ c.pt for some other Y, which replaces the cone point by Y and inserts f into each of the components of the cone. Similarly we have c.whisker F producing a Cone (E ⋙ F)

We define morphisms of cones, and the category of cones.

We define Cone.postcompose α : cone F ⥤ cone G for α a natural transformation F ⟶ G.

And, of course, we dualise all this to cocones as well.

For more results about the category of cones, see cone_category.lean.

def CategoryTheory.Functor.cones {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
Functor Cᵒᵖ (Type (max u₁ v₃))

If F : J ⥤ C then F.cones is the functor assigning to an object X : C the type of natural transformations from the constant functor with value X to F. An object representing this functor is a limit of F.

Equations
Instances For
    @[simp]
    theorem CategoryTheory.Functor.cones_map_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : Cᵒᵖ} (f : X✝ Y✝) (a✝ : (yoneda.obj F).obj ((const J).op.obj X✝)) (X : J) :
    (F.cones.map f a✝).app X = CategoryStruct.comp f.unop (a✝.app X)
    @[simp]
    theorem CategoryTheory.Functor.cones_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (X : Cᵒᵖ) :
    F.cones.obj X = ((const J).obj (Opposite.unop X) F)
    def CategoryTheory.Functor.cocones {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
    Functor C (Type (max u₁ v₃))

    If F : J ⥤ C then F.cocones is the functor assigning to an object (X : C) the type of natural transformations from F to the constant functor with value X. An object corepresenting this functor is a colimit of F.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.Functor.cocones_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (X : C) :
      F.cocones.obj X = (F (const J).obj X)
      @[simp]
      theorem CategoryTheory.Functor.cocones_map_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : C} (f : X✝ Y✝) (a✝ : (coyoneda.obj (Opposite.op F)).obj ((const J).obj X✝)) (X : J) :
      (F.cocones.map f a✝).app X = CategoryStruct.comp (a✝.app X) f
      def CategoryTheory.cones (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] :
      Functor (Functor J C) (Functor Cᵒᵖ (Type (max u₁ v₃)))

      Functorially associated to each functor J ⥤ C, we have the C-presheaf consisting of cones with a given cone point.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.cones_map_app_app (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] {X✝ Y✝ : Functor J C} (f : X✝ Y✝) (X : Cᵒᵖ) (a✝ : (yoneda.obj X✝).obj ((Functor.const J).op.obj X)) (X✝¹ : J) :
        (((cones J C).map f).app X a✝).app X✝¹ = CategoryStruct.comp (a✝.app X✝¹) (f.app X✝¹)
        @[simp]
        theorem CategoryTheory.cones_obj_obj (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] (F : Functor J C) (X : Cᵒᵖ) :
        ((cones J C).obj F).obj X = ((Functor.const J).obj (Opposite.unop X) F)
        @[simp]
        theorem CategoryTheory.cones_obj_map_app (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] (F : Functor J C) {X✝ Y✝ : Cᵒᵖ} (f : X✝ Y✝) (a✝ : (yoneda.obj F).obj ((Functor.const J).op.obj X✝)) (X : J) :
        (((cones J C).obj F).map f a✝).app X = CategoryStruct.comp f.unop (a✝.app X)
        def CategoryTheory.cocones (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] :
        Functor (Functor J C)ᵒᵖ (Functor C (Type (max u₁ v₃)))

        Contravariantly associated to each functor J ⥤ C, we have the C-copresheaf consisting of cocones with a given cocone point.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.cocones_obj_map_app (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] (F : (Functor J C)ᵒᵖ) {X✝ Y✝ : C} (f : X✝ Y✝) (a✝ : (coyoneda.obj (Opposite.op (Opposite.unop F))).obj ((Functor.const J).obj X✝)) (X : J) :
          (((cocones J C).obj F).map f a✝).app X = CategoryStruct.comp (a✝.app X) f
          @[simp]
          theorem CategoryTheory.cocones_obj_obj (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] (F : (Functor J C)ᵒᵖ) (X : C) :
          ((cocones J C).obj F).obj X = (Opposite.unop F (Functor.const J).obj X)
          @[simp]
          theorem CategoryTheory.cocones_map_app_app (J : Type u₁) [Category.{v₁, u₁} J] (C : Type u₃) [Category.{v₃, u₃} C] {X✝ Y✝ : (Functor J C)ᵒᵖ} (f : X✝ Y✝) (X : C) (a✝ : (coyoneda.obj X✝).obj ((Functor.const J).obj X)) (X✝¹ : J) :
          (((cocones J C).map f).app X a✝).app X✝¹ = CategoryStruct.comp (f.unop.app X✝¹) (a✝.app X✝¹)
          structure CategoryTheory.Limits.Cone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
          Type (max (max u₁ u₃) v₃)

          A c : Cone F is:

          • an object c.pt and
          • a natural transformation c.π : c.pt ⟶ F from the constant c.pt functor to F.

          Example: if J is a category coming from a poset then the data required to make a term of type Cone F is morphisms πⱼ : c.pt ⟶ F j for all j : J and, for all i ≤ j in J, morphisms πᵢⱼ : F i ⟶ F j such that πᵢ ≫ πᵢⱼ = πᵢ.

          Cone F is equivalent, via cone.equiv below, to Σ X, F.cones.obj X.

          • pt : C

            An object of C

          • π : (Functor.const J).obj self.pt F

            A natural transformation from the constant functor at X to F

          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem CategoryTheory.Limits.Cone.w {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {j j' : J} (f : j j') :
            CategoryStruct.comp (c.app j) (F.map f) = c.app j'
            @[simp]
            theorem CategoryTheory.Limits.Cone.w_assoc {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {j j' : J} (f : j j') {Z : C} (h : F.obj j' Z) :
            CategoryStruct.comp (c.app j) (CategoryStruct.comp (F.map f) h) = CategoryStruct.comp (c.app j') h
            structure CategoryTheory.Limits.Cocone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
            Type (max (max u₁ u₃) v₃)

            A c : Cocone F is

            • an object c.pt and
            • a natural transformation c.ι : F ⟶ c.pt from F to the constant c.pt functor.

            For example, if the source J of F is a partially ordered set, then to give c : Cocone F is to give a collection of morphisms ιⱼ : F j ⟶ c.pt and, for all j ≤ k in J, morphisms ιⱼₖ : F j ⟶ F k such that Fⱼₖ ≫ Fₖ = Fⱼ for all j ≤ k.

            Cocone F is equivalent, via Cone.equiv below, to Σ X, F.cocones.obj X.

            • pt : C

              An object of C

            • ι : F (Functor.const J).obj self.pt

              A natural transformation from F to the constant functor at pt

            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              theorem CategoryTheory.Limits.Cocone.w {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {j j' : J} (f : j j') :
              CategoryStruct.comp (F.map f) (c.app j') = c.app j
              @[simp]
              theorem CategoryTheory.Limits.Cocone.w_assoc {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {j j' : J} (f : j j') {Z : C} (h : ((Functor.const J).obj c.pt).obj j' Z) :
              CategoryStruct.comp (F.map f) (CategoryStruct.comp (c.app j') h) = CategoryStruct.comp (c.app j) h
              def CategoryTheory.Limits.Cone.equiv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
              Cone F (X : Cᵒᵖ) × F.cones.obj X

              The isomorphism between a cone on F and an element of the functor F.cones.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.Limits.Cone.equiv_inv_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (c : (X : Cᵒᵖ) × F.cones.obj X) :
                ((equiv F).inv c).pt = Opposite.unop c.fst
                @[simp]
                theorem CategoryTheory.Limits.Cone.equiv_hom_snd {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (c : Cone F) :
                ((equiv F).hom c).snd = c
                @[simp]
                theorem CategoryTheory.Limits.Cone.equiv_hom_fst {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (c : Cone F) :
                ((equiv F).hom c).fst = Opposite.op c.pt
                @[simp]
                theorem CategoryTheory.Limits.Cone.equiv_inv_π {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (c : (X : Cᵒᵖ) × F.cones.obj X) :
                ((equiv F).inv c) = c.snd

                A map to the vertex of a cone naturally induces a cone by composition.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem CategoryTheory.Limits.Cone.extensions_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) (x✝ : Cᵒᵖ) (f : ((yoneda.obj c.pt).comp uliftFunctor.{u₁, v₃}).obj x✝) :
                  c.extensions.app x✝ f = CategoryStruct.comp ((Functor.const J).map f.down) c
                  def CategoryTheory.Limits.Cone.extend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {X : C} (f : X c.pt) :

                  A map to the vertex of a cone induces a cone by composition.

                  Equations
                  • c.extend f = { pt := X, π := c.extensions.app (Opposite.op X) { down := f } }
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Limits.Cone.extend_π {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {X : C} (f : X c.pt) :
                    (c.extend f) = c.extensions.app (Opposite.op X) { down := f }
                    @[simp]
                    theorem CategoryTheory.Limits.Cone.extend_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) {X : C} (f : X c.pt) :
                    (c.extend f).pt = X
                    def CategoryTheory.Limits.Cone.whisker {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cone F) :
                    Cone (E.comp F)

                    Whisker a cone by precomposition of a functor.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.Cone.whisker_π {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cone F) :
                      (whisker E c) = whiskerLeft E c
                      @[simp]
                      theorem CategoryTheory.Limits.Cone.whisker_pt {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cone F) :
                      (whisker E c).pt = c.pt
                      def CategoryTheory.Limits.Cocone.equiv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
                      Cocone F (X : C) × F.cocones.obj X

                      The isomorphism between a cocone on F and an element of the functor F.cocones.

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

                        A map from the vertex of a cocone naturally induces a cocone by composition.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Limits.Cocone.extensions_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) (x✝ : C) (f : ((coyoneda.obj (Opposite.op c.pt)).comp uliftFunctor.{u₁, v₃}).obj x✝) :
                          c.extensions.app x✝ f = CategoryStruct.comp c ((Functor.const J).map f.down)
                          def CategoryTheory.Limits.Cocone.extend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {Y : C} (f : c.pt Y) :

                          A map from the vertex of a cocone induces a cocone by composition.

                          Equations
                          • c.extend f = { pt := Y, ι := c.extensions.app Y { down := f } }
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Limits.Cocone.extend_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {Y : C} (f : c.pt Y) :
                            (c.extend f).pt = Y
                            @[simp]
                            theorem CategoryTheory.Limits.Cocone.extend_ι {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) {Y : C} (f : c.pt Y) :
                            (c.extend f) = c.extensions.app Y { down := f }
                            def CategoryTheory.Limits.Cocone.whisker {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cocone F) :
                            Cocone (E.comp F)

                            Whisker a cocone by precomposition of a functor. See whiskering for a functorial version.

                            Equations
                            Instances For
                              @[simp]
                              theorem CategoryTheory.Limits.Cocone.whisker_pt {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cocone F) :
                              (whisker E c).pt = c.pt
                              @[simp]
                              theorem CategoryTheory.Limits.Cocone.whisker_ι {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cocone F) :
                              (whisker E c) = whiskerLeft E c
                              structure CategoryTheory.Limits.ConeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (A B : Cone F) :
                              Type v₃

                              A cone morphism between two cones for the same diagram is a morphism of the cone points which commutes with the cone legs.

                              • hom : A.pt B.pt

                                A morphism between the two vertex objects of the cones

                              • w (j : J) : CategoryStruct.comp self.hom (B.app j) = A.app j

                                The triangle consisting of the two natural transformations and hom commutes

                              Instances For
                                @[simp]
                                theorem CategoryTheory.Limits.ConeMorphism.w_assoc {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {A B : Cone F} (self : ConeMorphism A B) (j : J) {Z : C} (h : F.obj j Z) :
                                CategoryStruct.comp self.hom (CategoryStruct.comp (B.app j) h) = CategoryStruct.comp (A.app j) h
                                @[simp]
                                theorem CategoryTheory.Limits.Cone.category_comp_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {X✝ Y✝ Z✝ : Cone F} (f : X✝ Y✝) (g : Y✝ Z✝) :
                                theorem CategoryTheory.Limits.ConeMorphism.ext {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cone F} (f g : c c') (w : f.hom = g.hom) :
                                f = g
                                def CategoryTheory.Limits.Cones.ext {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cone F} (φ : c.pt c'.pt) (w : ∀ (j : J), c.app j = CategoryStruct.comp φ.hom (c'.app j) := by aesop_cat) :
                                c c'

                                To give an isomorphism between cones, it suffices to give an isomorphism between their vertices which commutes with the cone maps.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.Limits.Cones.ext_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cone F} (φ : c.pt c'.pt) (w : ∀ (j : J), c.app j = CategoryStruct.comp φ.hom (c'.app j) := by aesop_cat) :
                                  (ext φ w).inv.hom = φ.inv
                                  @[simp]
                                  theorem CategoryTheory.Limits.Cones.ext_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cone F} (φ : c.pt c'.pt) (w : ∀ (j : J), c.app j = CategoryStruct.comp φ.hom (c'.app j) := by aesop_cat) :
                                  (ext φ w).hom.hom = φ.hom
                                  def CategoryTheory.Limits.Cones.eta {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                  c { pt := c.pt, π := c }

                                  Eta rule for cones.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.Limits.Cones.eta_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                    (eta c).hom.hom = CategoryStruct.id c.pt
                                    @[simp]
                                    theorem CategoryTheory.Limits.Cones.eta_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                    (eta c).inv.hom = CategoryStruct.id c.pt
                                    theorem CategoryTheory.Limits.Cones.cone_iso_of_hom_iso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {K : Functor J C} {c d : Cone K} (f : c d) [i : IsIso f.hom] :

                                    Given a cone morphism whose object part is an isomorphism, produce an isomorphism of cones.

                                    def CategoryTheory.Limits.Cones.extend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X : C} (f : X s.pt) :
                                    s.extend f s

                                    There is a morphism from an extended cone to the original cone.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.Limits.Cones.extend_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X : C} (f : X s.pt) :
                                      (extend s f).hom = f
                                      def CategoryTheory.Limits.Cones.extendId {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) :
                                      s.extend (CategoryStruct.id s.pt) s

                                      Extending a cone by the identity does nothing.

                                      Equations
                                      Instances For
                                        def CategoryTheory.Limits.Cones.extendComp {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X Y : C} (f : X Y) (g : Y s.pt) :
                                        s.extend (CategoryStruct.comp f g) (s.extend g).extend f

                                        Extending a cone by a composition is the same as extending the cone twice.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.Cones.extendComp_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X Y : C} (f : X Y) (g : Y s.pt) :
                                          (extendComp s f g).inv.hom = CategoryStruct.id X
                                          @[simp]
                                          theorem CategoryTheory.Limits.Cones.extendComp_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X Y : C} (f : X Y) (g : Y s.pt) :
                                          (extendComp s f g).hom.hom = CategoryStruct.id X
                                          def CategoryTheory.Limits.Cones.extendIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X : C} (f : X s.pt) :
                                          s.extend f.hom s

                                          A cone extended by an isomorphism is isomorphic to the original cone.

                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.Limits.Cones.extendIso_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X : C} (f : X s.pt) :
                                            (extendIso s f).inv.hom = f.inv
                                            @[simp]
                                            theorem CategoryTheory.Limits.Cones.extendIso_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cone F) {X : C} (f : X s.pt) :
                                            (extendIso s f).hom.hom = f.hom
                                            instance CategoryTheory.Limits.Cones.instIsIsoConeExtend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {s : Cone F} {X : C} (f : X s.pt) [IsIso f] :

                                            Functorially postcompose a cone for F by a natural transformation F ⟶ G to give a cone for G.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cones.postcompose_obj_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : F G) (c : Cone F) :
                                              ((postcompose α).obj c).pt = c.pt
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cones.postcompose_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : F G) {X✝ Y✝ : Cone F} (f : X✝ Y✝) :
                                              ((postcompose α).map f).hom = f.hom
                                              @[simp]
                                              theorem CategoryTheory.Limits.Cones.postcompose_obj_π {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : F G) (c : Cone F) :
                                              ((postcompose α).obj c) = CategoryStruct.comp c α

                                              Postcomposing a cone by the composite natural transformation α ≫ β is the same as postcomposing by α and then by β.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                @[simp]
                                                theorem CategoryTheory.Limits.Cones.postcomposeComp_hom_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G H : Functor J C} (α : F G) (β : G H) (X : Cone F) :
                                                ((postcomposeComp α β).hom.app X).hom = CategoryStruct.id X.pt
                                                @[simp]
                                                theorem CategoryTheory.Limits.Cones.postcomposeComp_inv_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G H : Functor J C} (α : F G) (β : G H) (X : Cone F) :
                                                ((postcomposeComp α β).inv.app X).hom = CategoryStruct.id X.pt

                                                Postcomposing by the identity does not change the cone up to isomorphism.

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

                                                  If F and G are naturally isomorphic functors, then they have equivalent categories of cones.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.Cones.postcomposeEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : F G) :
                                                    (postcomposeEquivalence α).unitIso = NatIso.ofComponents (fun (s : Cone F) => ext (Iso.refl ((Functor.id (Cone F)).obj s).pt) )
                                                    @[simp]
                                                    theorem CategoryTheory.Limits.Cones.postcomposeEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : F G) :
                                                    (postcomposeEquivalence α).counitIso = NatIso.ofComponents (fun (s : Cone G) => ext (Iso.refl (((postcompose α.inv).comp (postcompose α.hom)).obj s).pt) )
                                                    def CategoryTheory.Limits.Cones.whiskering {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) :
                                                    Functor (Cone F) (Cone (E.comp F))

                                                    Whiskering on the left by E : K ⥤ J gives a functor from Cone F to Cone (E ⋙ F).

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.Cones.whiskering_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) {X✝ Y✝ : Cone F} (f : X✝ Y✝) :
                                                      ((whiskering E).map f).hom = f.hom
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.Cones.whiskering_obj {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) (c : Cone F) :
                                                      (whiskering E).obj c = Cone.whisker E c
                                                      def CategoryTheory.Limits.Cones.whiskeringEquivalence {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                      Cone F Cone (e.functor.comp F)

                                                      Whiskering by an equivalence gives an equivalence between categories of cones.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        @[simp]
                                                        theorem CategoryTheory.Limits.Cones.whiskeringEquivalence_inverse {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                        (whiskeringEquivalence e).inverse = (whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom)
                                                        @[simp]
                                                        theorem CategoryTheory.Limits.Cones.whiskeringEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                        (whiskeringEquivalence e).counitIso = NatIso.ofComponents (fun (s : Cone (e.functor.comp F)) => ext (Iso.refl ((((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom)).comp (whiskering e.functor)).obj s).pt) )
                                                        @[simp]
                                                        theorem CategoryTheory.Limits.Cones.whiskeringEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                        (whiskeringEquivalence e).unitIso = NatIso.ofComponents (fun (s : Cone F) => ext (Iso.refl ((Functor.id (Cone F)).obj s).pt) )
                                                        def CategoryTheory.Limits.Cones.equivalenceOfReindexing {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :

                                                        The categories of cones over F and G are equivalent if F and G are naturally isomorphic (possibly after changing the indexing category by an equivalence).

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.Limits.Cones.equivalenceOfReindexing_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :
                                                          (equivalenceOfReindexing e α).unitIso = NatIso.ofComponents (fun (s : Cone F) => ext (Iso.refl s.pt) ) ≪≫ isoWhiskerRight ((whiskering e.functor).rightUnitor.symm ≪≫ isoWhiskerLeft (whiskering e.functor) (NatIso.ofComponents (fun (s : Cone (e.functor.comp F)) => ext (Iso.refl s.pt) ) ) ≪≫ ((whiskering e.functor).associator (postcompose α.hom) (postcompose α.inv)).symm) ((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom)) ≪≫ ((whiskering e.functor).comp (postcompose α.hom)).associator (postcompose α.inv) ((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom))
                                                          @[simp]
                                                          theorem CategoryTheory.Limits.Cones.equivalenceOfReindexing_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :
                                                          (equivalenceOfReindexing e α).counitIso = (((postcompose α.inv).comp ((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom))).associator (whiskering e.functor) (postcompose α.hom)).symm ≪≫ isoWhiskerRight ((postcompose α.inv).associator ((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom)) (whiskering e.functor) ≪≫ isoWhiskerLeft (postcompose α.inv) (NatIso.ofComponents (fun (s : Cone (e.functor.comp F)) => ext (Iso.refl s.pt) ) ) ≪≫ (postcompose α.inv).rightUnitor) (postcompose α.hom) ≪≫ NatIso.ofComponents (fun (s : Cone G) => ext (Iso.refl s.pt) )
                                                          @[simp]
                                                          theorem CategoryTheory.Limits.Cones.equivalenceOfReindexing_inverse {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :
                                                          (equivalenceOfReindexing e α).inverse = (postcompose α.inv).comp ((whiskering e.inverse).comp (postcompose (e.invFunIdAssoc F).hom))
                                                          @[simp]
                                                          theorem CategoryTheory.Limits.Cones.equivalenceOfReindexing_functor {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :
                                                          (equivalenceOfReindexing e α).functor = (whiskering e.functor).comp (postcompose α.hom)

                                                          Forget the cone structure and obtain just the cone point.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            @[simp]
                                                            theorem CategoryTheory.Limits.Cones.forget_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✝) :
                                                            (forget F).map f = f.hom
                                                            @[simp]
                                                            theorem CategoryTheory.Limits.Cones.forget_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (t : Cone F) :
                                                            (forget F).obj t = t.pt
                                                            def CategoryTheory.Limits.Cones.functoriality {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) :
                                                            Functor (Cone F) (Cone (F.comp G))

                                                            A functor G : C ⥤ D sends cones over F to cones over F ⋙ G functorially.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              @[simp]
                                                              theorem CategoryTheory.Limits.Cones.functoriality_obj_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) (A : Cone F) (j : J) :
                                                              ((functoriality F G).obj A).app j = G.map (A.app j)
                                                              @[simp]
                                                              theorem CategoryTheory.Limits.Cones.functoriality_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) {X✝ Y✝ : Cone F} (f : X✝ Y✝) :
                                                              ((functoriality F G).map f).hom = G.map f.hom
                                                              @[simp]
                                                              theorem CategoryTheory.Limits.Cones.functoriality_obj_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) (A : Cone F) :
                                                              ((functoriality F G).obj A).pt = G.obj A.pt
                                                              def CategoryTheory.Limits.Cones.functorialityCompFunctoriality {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] (F : Functor J C) (G : Functor C D) (H : Functor D E) :
                                                              (functoriality F G).comp (functoriality (F.comp G) H) functoriality F (G.comp H)

                                                              Functoriality is functorial.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                instance CategoryTheory.Limits.Cones.functoriality_full {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) [G.Full] [G.Faithful] :
                                                                (functoriality F G).Full
                                                                instance CategoryTheory.Limits.Cones.functoriality_faithful {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) [G.Faithful] :
                                                                (functoriality F G).Faithful
                                                                def CategoryTheory.Limits.Cones.functorialityEquivalence {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                Cone F Cone (F.comp e.functor)

                                                                If e : C ≌ D is an equivalence of categories, then functoriality F e.functor induces an equivalence between cones over F and cones over F ⋙ e.functor.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.Limits.Cones.functorialityEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                  (functorialityEquivalence F e).counitIso = NatIso.ofComponents (fun (c : Cone (F.comp e.functor)) => ext (e.counitIso.app c.pt) )
                                                                  @[simp]
                                                                  theorem CategoryTheory.Limits.Cones.functorialityEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                  (functorialityEquivalence F e).unitIso = NatIso.ofComponents (fun (c : Cone F) => ext (e.unitIso.app ((Functor.id (Cone F)).obj c).1) )
                                                                  @[simp]
                                                                  theorem CategoryTheory.Limits.Cones.functorialityEquivalence_inverse {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                  (functorialityEquivalence F e).inverse = (functoriality (F.comp e.functor) e.inverse).comp (postcomposeEquivalence (F.associator e.functor e.inverse ≪≫ isoWhiskerLeft F e.unitIso.symm ≪≫ F.rightUnitor)).functor
                                                                  instance CategoryTheory.Limits.Cones.reflects_cone_isomorphism {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) [F.ReflectsIsomorphisms] (K : Functor J C) :
                                                                  (functoriality K F).ReflectsIsomorphisms

                                                                  If F reflects isomorphisms, then Cones.functoriality F reflects isomorphisms as well.

                                                                  structure CategoryTheory.Limits.CoconeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (A B : Cocone F) :
                                                                  Type v₃

                                                                  A cocone morphism between two cocones for the same diagram is a morphism of the cocone points which commutes with the cocone legs.

                                                                  • hom : A.pt B.pt

                                                                    A morphism between the (co)vertex objects in C

                                                                  • w (j : J) : CategoryStruct.comp (A.app j) self.hom = B.app j

                                                                    The triangle made from the two natural transformations and hom commutes

                                                                  Instances For
                                                                    @[simp]
                                                                    theorem CategoryTheory.Limits.CoconeMorphism.w_assoc {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {A B : Cocone F} (self : CoconeMorphism A B) (j : J) {Z : C} (h : B.pt Z) :
                                                                    CategoryStruct.comp (A.app j) (CategoryStruct.comp self.hom h) = CategoryStruct.comp (B.app j) h
                                                                    @[simp]
                                                                    theorem CategoryTheory.Limits.Cocone.category_comp_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {X✝ Y✝ Z✝ : Cocone F} (f : X✝ Y✝) (g : Y✝ Z✝) :
                                                                    theorem CategoryTheory.Limits.CoconeMorphism.ext {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cocone F} (f g : c c') (w : f.hom = g.hom) :
                                                                    f = g
                                                                    def CategoryTheory.Limits.Cocones.ext {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cocone F} (φ : c.pt c'.pt) (w : ∀ (j : J), CategoryStruct.comp (c.app j) φ.hom = c'.app j := by aesop_cat) :
                                                                    c c'

                                                                    To give an isomorphism between cocones, it suffices to give an isomorphism between their vertices which commutes with the cocone maps.

                                                                    Equations
                                                                    Instances For
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.Cocones.ext_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cocone F} (φ : c.pt c'.pt) (w : ∀ (j : J), CategoryStruct.comp (c.app j) φ.hom = c'.app j := by aesop_cat) :
                                                                      (ext φ w).inv.hom = φ.inv
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.Cocones.ext_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {c c' : Cocone F} (φ : c.pt c'.pt) (w : ∀ (j : J), CategoryStruct.comp (c.app j) φ.hom = c'.app j := by aesop_cat) :
                                                                      (ext φ w).hom.hom = φ.hom
                                                                      def CategoryTheory.Limits.Cocones.eta {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                                      c { pt := c.pt, ι := c }

                                                                      Eta rule for cocones.

                                                                      Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        @[simp]
                                                                        theorem CategoryTheory.Limits.Cocones.cocone_iso_of_hom_iso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {K : Functor J C} {c d : Cocone K} (f : c d) [i : IsIso f.hom] :

                                                                        Given a cocone morphism whose object part is an isomorphism, produce an isomorphism of cocones.

                                                                        def CategoryTheory.Limits.Cocones.extend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X : C} (f : s.pt X) :
                                                                        s s.extend f

                                                                        There is a morphism from a cocone to its extension.

                                                                        Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem CategoryTheory.Limits.Cocones.extend_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X : C} (f : s.pt X) :
                                                                          (extend s f).hom = f

                                                                          Extending a cocone by the identity does nothing.

                                                                          Equations
                                                                          Instances For
                                                                            def CategoryTheory.Limits.Cocones.extendComp {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X Y : C} (f : s.pt X) (g : X Y) :
                                                                            s.extend (CategoryStruct.comp f g) (s.extend f).extend g

                                                                            Extending a cocone by a composition is the same as extending the cone twice.

                                                                            Equations
                                                                            Instances For
                                                                              @[simp]
                                                                              theorem CategoryTheory.Limits.Cocones.extendComp_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X Y : C} (f : s.pt X) (g : X Y) :
                                                                              (extendComp s f g).hom.hom = CategoryStruct.id Y
                                                                              @[simp]
                                                                              theorem CategoryTheory.Limits.Cocones.extendComp_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X Y : C} (f : s.pt X) (g : X Y) :
                                                                              (extendComp s f g).inv.hom = CategoryStruct.id Y
                                                                              def CategoryTheory.Limits.Cocones.extendIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X : C} (f : s.pt X) :
                                                                              s s.extend f.hom

                                                                              A cocone extended by an isomorphism is isomorphic to the original cone.

                                                                              Equations
                                                                              Instances For
                                                                                @[simp]
                                                                                theorem CategoryTheory.Limits.Cocones.extendIso_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X : C} (f : s.pt X) :
                                                                                (extendIso s f).hom.hom = f.hom
                                                                                @[simp]
                                                                                theorem CategoryTheory.Limits.Cocones.extendIso_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (s : Cocone F) {X : C} (f : s.pt X) :
                                                                                (extendIso s f).inv.hom = f.inv
                                                                                instance CategoryTheory.Limits.Cocones.instIsIsoCoconeExtend {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {s : Cocone F} {X : C} (f : s.pt X) [IsIso f] :

                                                                                Functorially precompose a cocone for F by a natural transformation G ⟶ F to give a cocone for G.

                                                                                Equations
                                                                                • One or more equations did not get rendered due to their size.
                                                                                Instances For
                                                                                  @[simp]
                                                                                  theorem CategoryTheory.Limits.Cocones.precompose_obj_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : G F) (c : Cocone F) :
                                                                                  ((precompose α).obj c).pt = c.pt
                                                                                  @[simp]
                                                                                  theorem CategoryTheory.Limits.Cocones.precompose_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : G F) {X✝ Y✝ : Cocone F} (f : X✝ Y✝) :
                                                                                  ((precompose α).map f).hom = f.hom
                                                                                  @[simp]
                                                                                  theorem CategoryTheory.Limits.Cocones.precompose_obj_ι {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : G F) (c : Cocone F) :
                                                                                  ((precompose α).obj c) = CategoryStruct.comp α c
                                                                                  def CategoryTheory.Limits.Cocones.precomposeComp {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G H : Functor J C} (α : F G) (β : G H) :

                                                                                  Precomposing a cocone by the composite natural transformation α ≫ β is the same as precomposing by β and then by α.

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

                                                                                    Precomposing by the identity does not change the cocone up to isomorphism.

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

                                                                                      If F and G are naturally isomorphic functors, then they have equivalent categories of cocones.

                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Instances For
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.Limits.Cocones.precomposeEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : G F) :
                                                                                        (precomposeEquivalence α).counitIso = NatIso.ofComponents (fun (s : Cocone G) => ext (Iso.refl (((precompose α.inv).comp (precompose α.hom)).obj s).pt) )
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.Limits.Cocones.precomposeEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F G : Functor J C} (α : G F) :
                                                                                        (precomposeEquivalence α).unitIso = NatIso.ofComponents (fun (s : Cocone F) => ext (Iso.refl ((Functor.id (Cocone F)).obj s).pt) )

                                                                                        Whiskering on the left by E : K ⥤ J gives a functor from Cocone F to Cocone (E ⋙ F).

                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          @[simp]
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Limits.Cocones.whiskering_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (E : Functor K J) {X✝ Y✝ : Cocone F} (f : X✝ Y✝) :
                                                                                          ((whiskering E).map f).hom = f.hom
                                                                                          def CategoryTheory.Limits.Cocones.whiskeringEquivalence {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                                                          Cocone F Cocone (e.functor.comp F)

                                                                                          Whiskering by an equivalence gives an equivalence between categories of cones.

                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For
                                                                                            @[simp]
                                                                                            theorem CategoryTheory.Limits.Cocones.whiskeringEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                                                            (whiskeringEquivalence e).counitIso = NatIso.ofComponents (fun (s : Cocone (e.functor.comp F)) => ext (Iso.refl ((((whiskering e.inverse).comp (precompose (CategoryStruct.comp F.leftUnitor.inv (CategoryStruct.comp (whiskerRight e.counitIso.inv F) (e.inverse.associator e.functor F).inv)))).comp (whiskering e.functor)).obj s).pt) )
                                                                                            @[simp]
                                                                                            theorem CategoryTheory.Limits.Cocones.whiskeringEquivalence_inverse {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                                                            (whiskeringEquivalence e).inverse = (whiskering e.inverse).comp (precompose (CategoryStruct.comp F.leftUnitor.inv (CategoryStruct.comp (whiskerRight e.counitIso.inv F) (e.inverse.associator e.functor F).inv)))
                                                                                            @[simp]
                                                                                            theorem CategoryTheory.Limits.Cocones.whiskeringEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (e : K J) :
                                                                                            (whiskeringEquivalence e).unitIso = NatIso.ofComponents (fun (s : Cocone F) => ext (Iso.refl ((Functor.id (Cocone F)).obj s).pt) )
                                                                                            def CategoryTheory.Limits.Cocones.equivalenceOfReindexing {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) :

                                                                                            The categories of cocones over F and G are equivalent if F and G are naturally isomorphic (possibly after changing the indexing category by an equivalence).

                                                                                            Equations
                                                                                            Instances For
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Limits.Cocones.equivalenceOfReindexing_functor_obj {J : Type u₁} [Category.{v₁, u₁} J] {K : Type u₂} [Category.{v₂, u₂} K] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} {G : Functor K C} (e : K J) (α : e.functor.comp F G) (X : Cocone F) :
                                                                                              (equivalenceOfReindexing e α).functor.obj X = (precompose α.inv).obj (Cocone.whisker e.functor X)

                                                                                              Forget the cocone structure and obtain just the cocone point.

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For
                                                                                                @[simp]
                                                                                                theorem CategoryTheory.Limits.Cocones.forget_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✝) :
                                                                                                (forget F).map f = f.hom
                                                                                                @[simp]
                                                                                                theorem CategoryTheory.Limits.Cocones.forget_obj {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) (t : Cocone F) :
                                                                                                (forget F).obj t = t.pt

                                                                                                A functor G : C ⥤ D sends cocones over F to cocones over F ⋙ G functorially.

                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Limits.Cocones.functoriality_obj_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) (A : Cocone F) :
                                                                                                  ((functoriality F G).obj A).pt = G.obj A.pt
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Limits.Cocones.functoriality_obj_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) (A : Cocone F) (j : J) :
                                                                                                  ((functoriality F G).obj A).app j = G.map (A.app j)
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Limits.Cocones.functoriality_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) {X✝ Y✝ : Cocone F} (f : X✝ Y✝) :
                                                                                                  ((functoriality F G).map f).hom = G.map f.hom
                                                                                                  def CategoryTheory.Limits.Cocones.functorialityCompFunctoriality {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] (F : Functor J C) (G : Functor C D) (H : Functor D E) :
                                                                                                  (functoriality F G).comp (functoriality (F.comp G) H) functoriality F (G.comp H)

                                                                                                  Functoriality is functorial.

                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For
                                                                                                    instance CategoryTheory.Limits.Cocones.functoriality_full {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) [G.Full] [G.Faithful] :
                                                                                                    (functoriality F G).Full
                                                                                                    instance CategoryTheory.Limits.Cocones.functoriality_faithful {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (G : Functor C D) [G.Faithful] :
                                                                                                    (functoriality F G).Faithful

                                                                                                    If e : C ≌ D is an equivalence of categories, then functoriality F e.functor induces an equivalence between cocones over F and cocones over F ⋙ e.functor.

                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.Cocones.functorialityEquivalence_unitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                                                      (functorialityEquivalence F e).unitIso = NatIso.ofComponents (fun (c : Cocone F) => ext (e.unitIso.app ((Functor.id (Cocone F)).obj c).1) )
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.Cocones.functorialityEquivalence_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                                                      (functorialityEquivalence F e).counitIso = NatIso.ofComponents (fun (c : Cocone (F.comp e.functor)) => ext (e.counitIso.app c.pt) )
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.Cocones.functorialityEquivalence_inverse {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (F : Functor J C) (e : C D) :
                                                                                                      (functorialityEquivalence F e).inverse = (functoriality (F.comp e.functor) e.inverse).comp (precomposeEquivalence (F.associator e.functor e.inverse ≪≫ isoWhiskerLeft F e.unitIso.symm ≪≫ F.rightUnitor).symm).functor
                                                                                                      instance CategoryTheory.Limits.Cocones.reflects_cocone_isomorphism {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) [F.ReflectsIsomorphisms] (K : Functor J C) :
                                                                                                      (functoriality K F).ReflectsIsomorphisms

                                                                                                      If F reflects isomorphisms, then Cocones.functoriality F reflects isomorphisms as well.

                                                                                                      def CategoryTheory.Functor.mapCone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cone F) :
                                                                                                      Limits.Cone (F.comp H)

                                                                                                      The image of a cone in C under a functor G : C ⥤ D is a cone in D.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        @[simp]
                                                                                                        theorem CategoryTheory.Functor.mapCone_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cone F) (j : J) :
                                                                                                        (H.mapCone c).app j = H.map (c.app j)
                                                                                                        @[simp]
                                                                                                        theorem CategoryTheory.Functor.mapCone_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cone F) :
                                                                                                        (H.mapCone c).pt = H.obj c.pt
                                                                                                        noncomputable def CategoryTheory.Functor.mapConeMapCone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cone F) :
                                                                                                        H'.mapCone (H.mapCone c) (H.comp H').mapCone c

                                                                                                        The construction mapCone respects functor composition.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Functor.mapConeMapCone_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cone F) :
                                                                                                          (mapConeMapCone c).inv.hom = CategoryStruct.id (H'.obj (H.obj c.pt))
                                                                                                          @[simp]
                                                                                                          theorem CategoryTheory.Functor.mapConeMapCone_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cone F) :
                                                                                                          (mapConeMapCone c).hom.hom = CategoryStruct.id (H'.obj (H.obj c.pt))
                                                                                                          def CategoryTheory.Functor.mapCocone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cocone F) :
                                                                                                          Limits.Cocone (F.comp H)

                                                                                                          The image of a cocone in C under a functor G : C ⥤ D is a cocone in D.

                                                                                                          Equations
                                                                                                          Instances For
                                                                                                            @[simp]
                                                                                                            theorem CategoryTheory.Functor.mapCocone_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cocone F) :
                                                                                                            (H.mapCocone c).pt = H.obj c.pt
                                                                                                            @[simp]
                                                                                                            theorem CategoryTheory.Functor.mapCocone_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} (c : Limits.Cocone F) (j : J) :
                                                                                                            (H.mapCocone c).app j = H.map (c.app j)
                                                                                                            noncomputable def CategoryTheory.Functor.mapCoconeMapCocone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cocone F) :
                                                                                                            H'.mapCocone (H.mapCocone c) (H.comp H').mapCocone c

                                                                                                            The construction mapCocone respects functor composition.

                                                                                                            Equations
                                                                                                            Instances For
                                                                                                              @[simp]
                                                                                                              theorem CategoryTheory.Functor.mapCoconeMapCocone_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cocone F) :
                                                                                                              (mapCoconeMapCocone c).hom.hom = CategoryStruct.id (H'.obj (H.obj c.pt))
                                                                                                              @[simp]
                                                                                                              theorem CategoryTheory.Functor.mapCoconeMapCocone_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {E : Type u₅} [Category.{v₅, u₅} E] {F : Functor J C} {H : Functor C D} {H' : Functor D E} (c : Limits.Cocone F) :
                                                                                                              (mapCoconeMapCocone c).inv.hom = CategoryStruct.id (H'.obj (H.obj c.pt))
                                                                                                              def CategoryTheory.Functor.mapConeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} {c c' : Limits.Cone F} (f : c c') :
                                                                                                              H.mapCone c H.mapCone c'

                                                                                                              Given a cone morphism c ⟶ c', construct a cone morphism on the mapped cones functorially.

                                                                                                              Equations
                                                                                                              Instances For
                                                                                                                def CategoryTheory.Functor.mapCoconeMorphism {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} {c c' : Limits.Cocone F} (f : c c') :
                                                                                                                H.mapCocone c H.mapCocone c'

                                                                                                                Given a cocone morphism c ⟶ c', construct a cocone morphism on the mapped cocones functorially.

                                                                                                                Equations
                                                                                                                Instances For
                                                                                                                  noncomputable def CategoryTheory.Functor.mapConeInv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} [H.IsEquivalence] (c : Limits.Cone (F.comp H)) :

                                                                                                                  If H is an equivalence, we invert H.mapCone and get a cone for F from a cone for F ⋙ H.

                                                                                                                  Equations
                                                                                                                  Instances For
                                                                                                                    noncomputable def CategoryTheory.Functor.mapConeMapConeInv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J D} (H : Functor D C) [H.IsEquivalence] (c : Limits.Cone (F.comp H)) :
                                                                                                                    H.mapCone (H.mapConeInv c) c

                                                                                                                    mapCone is the left inverse to mapConeInv.

                                                                                                                    Equations
                                                                                                                    Instances For
                                                                                                                      noncomputable def CategoryTheory.Functor.mapConeInvMapCone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J D} (H : Functor D C) [H.IsEquivalence] (c : Limits.Cone F) :
                                                                                                                      H.mapConeInv (H.mapCone c) c

                                                                                                                      MapCone is the right inverse to mapConeInv.

                                                                                                                      Equations
                                                                                                                      Instances For
                                                                                                                        noncomputable def CategoryTheory.Functor.mapCoconeInv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F : Functor J C} [H.IsEquivalence] (c : Limits.Cocone (F.comp H)) :

                                                                                                                        If H is an equivalence, we invert H.mapCone and get a cone for F from a cone for F ⋙ H.

                                                                                                                        Equations
                                                                                                                        Instances For
                                                                                                                          noncomputable def CategoryTheory.Functor.mapCoconeMapCoconeInv {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J D} (H : Functor D C) [H.IsEquivalence] (c : Limits.Cocone (F.comp H)) :
                                                                                                                          H.mapCocone (H.mapCoconeInv c) c

                                                                                                                          mapCocone is the left inverse to mapCoconeInv.

                                                                                                                          Equations
                                                                                                                          Instances For
                                                                                                                            noncomputable def CategoryTheory.Functor.mapCoconeInvMapCocone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J D} (H : Functor D C) [H.IsEquivalence] (c : Limits.Cocone F) :
                                                                                                                            H.mapCoconeInv (H.mapCocone c) c

                                                                                                                            mapCocone is the right inverse to mapCoconeInv.

                                                                                                                            Equations
                                                                                                                            Instances For
                                                                                                                              @[simp]
                                                                                                                              theorem CategoryTheory.Functor.functorialityCompPostcompose_inv_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (X : Limits.Cone F) :
                                                                                                                              ((functorialityCompPostcompose α).inv.app X).hom = α.inv.app X.pt
                                                                                                                              @[simp]
                                                                                                                              theorem CategoryTheory.Functor.functorialityCompPostcompose_hom_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (X : Limits.Cone F) :
                                                                                                                              ((functorialityCompPostcompose α).hom.app X).hom = α.hom.app X.pt
                                                                                                                              def CategoryTheory.Functor.postcomposeWhiskerLeftMapCone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cone F) :
                                                                                                                              (Limits.Cones.postcompose (whiskerLeft F α.hom)).obj (H.mapCone c) H'.mapCone c

                                                                                                                              For F : J ⥤ C, given a cone c : Cone F, and a natural isomorphism α : H ≅ H' for functors H H' : C ⥤ D, the postcomposition of the cone H.mapCone using the isomorphism α is isomorphic to the cone H'.mapCone.

                                                                                                                              Equations
                                                                                                                              Instances For
                                                                                                                                @[simp]
                                                                                                                                theorem CategoryTheory.Functor.postcomposeWhiskerLeftMapCone_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cone F) :
                                                                                                                                (postcomposeWhiskerLeftMapCone α c).inv.hom = α.inv.app c.pt
                                                                                                                                @[simp]
                                                                                                                                theorem CategoryTheory.Functor.postcomposeWhiskerLeftMapCone_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cone F) :
                                                                                                                                (postcomposeWhiskerLeftMapCone α c).hom.hom = α.hom.app c.pt
                                                                                                                                def CategoryTheory.Functor.mapConePostcompose {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                H.mapCone ((Limits.Cones.postcompose α).obj c) (Limits.Cones.postcompose (whiskerRight α H)).obj (H.mapCone c)

                                                                                                                                mapCone commutes with postcompose. In particular, for F : J ⥤ C, given a cone c : Cone F, a natural transformation α : F ⟶ G and a functor H : C ⥤ D, we have two obvious ways of producing a cone over G ⋙ H, and they are both isomorphic.

                                                                                                                                Equations
                                                                                                                                Instances For
                                                                                                                                  @[simp]
                                                                                                                                  theorem CategoryTheory.Functor.mapConePostcompose_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                  H.mapConePostcompose.inv.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                  @[simp]
                                                                                                                                  theorem CategoryTheory.Functor.mapConePostcompose_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                  H.mapConePostcompose.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                  def CategoryTheory.Functor.mapConePostcomposeEquivalenceFunctor {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                  H.mapCone ((Limits.Cones.postcomposeEquivalence α).functor.obj c) (Limits.Cones.postcomposeEquivalence (isoWhiskerRight α H)).functor.obj (H.mapCone c)

                                                                                                                                  mapCone commutes with postcomposeEquivalence

                                                                                                                                  Equations
                                                                                                                                  Instances For
                                                                                                                                    @[simp]
                                                                                                                                    theorem CategoryTheory.Functor.mapConePostcomposeEquivalenceFunctor_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                    H.mapConePostcomposeEquivalenceFunctor.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                    @[simp]
                                                                                                                                    theorem CategoryTheory.Functor.mapConePostcomposeEquivalenceFunctor_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cone F} :
                                                                                                                                    H.mapConePostcomposeEquivalenceFunctor.inv.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                    @[simp]
                                                                                                                                    theorem CategoryTheory.Functor.functorialityCompPrecompose_inv_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (X : Limits.Cocone F) :
                                                                                                                                    ((functorialityCompPrecompose α).inv.app X).hom = α.inv.app X.pt
                                                                                                                                    @[simp]
                                                                                                                                    theorem CategoryTheory.Functor.functorialityCompPrecompose_hom_app_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (X : Limits.Cocone F) :
                                                                                                                                    ((functorialityCompPrecompose α).hom.app X).hom = α.hom.app X.pt
                                                                                                                                    def CategoryTheory.Functor.precomposeWhiskerLeftMapCocone {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cocone F) :
                                                                                                                                    (Limits.Cocones.precompose (whiskerLeft F α.inv)).obj (H.mapCocone c) H'.mapCocone c

                                                                                                                                    For F : J ⥤ C, given a cocone c : Cocone F, and a natural isomorphism α : H ≅ H' for functors H H' : C ⥤ D, the precomposition of the cocone H.mapCocone using the isomorphism α is isomorphic to the cocone H'.mapCocone.

                                                                                                                                    Equations
                                                                                                                                    Instances For
                                                                                                                                      @[simp]
                                                                                                                                      theorem CategoryTheory.Functor.precomposeWhiskerLeftMapCocone_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cocone F) :
                                                                                                                                      (precomposeWhiskerLeftMapCocone α c).inv.hom = α.inv.app c.pt
                                                                                                                                      @[simp]
                                                                                                                                      theorem CategoryTheory.Functor.precomposeWhiskerLeftMapCocone_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} {H H' : Functor C D} (α : H H') (c : Limits.Cocone F) :
                                                                                                                                      (precomposeWhiskerLeftMapCocone α c).hom.hom = α.hom.app c.pt
                                                                                                                                      def CategoryTheory.Functor.mapCoconePrecompose {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                      H.mapCocone ((Limits.Cocones.precompose α).obj c) (Limits.Cocones.precompose (whiskerRight α H)).obj (H.mapCocone c)

                                                                                                                                      map_cocone commutes with precompose. In particular, for F : J ⥤ C, given a cocone c : Cocone F, a natural transformation α : F ⟶ G and a functor H : C ⥤ D, we have two obvious ways of producing a cocone over G ⋙ H, and they are both isomorphic.

                                                                                                                                      Equations
                                                                                                                                      Instances For
                                                                                                                                        @[simp]
                                                                                                                                        theorem CategoryTheory.Functor.mapCoconePrecompose_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                        H.mapCoconePrecompose.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                        @[simp]
                                                                                                                                        theorem CategoryTheory.Functor.mapCoconePrecompose_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                        H.mapCoconePrecompose.inv.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                        def CategoryTheory.Functor.mapCoconePrecomposeEquivalenceFunctor {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                        H.mapCocone ((Limits.Cocones.precomposeEquivalence α).functor.obj c) (Limits.Cocones.precomposeEquivalence (isoWhiskerRight α H)).functor.obj (H.mapCocone c)

                                                                                                                                        mapCocone commutes with precomposeEquivalence

                                                                                                                                        Equations
                                                                                                                                        Instances For
                                                                                                                                          @[simp]
                                                                                                                                          theorem CategoryTheory.Functor.mapCoconePrecomposeEquivalenceFunctor_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                          H.mapCoconePrecomposeEquivalenceFunctor.inv.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                          @[simp]
                                                                                                                                          theorem CategoryTheory.Functor.mapCoconePrecomposeEquivalenceFunctor_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] (H : Functor C D) {F G : Functor J C} {α : F G} {c : Limits.Cocone G} :
                                                                                                                                          H.mapCoconePrecomposeEquivalenceFunctor.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                          def CategoryTheory.Functor.mapConeWhisker {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cone F} :
                                                                                                                                          H.mapCone (Limits.Cone.whisker E c) Limits.Cone.whisker E (H.mapCone c)

                                                                                                                                          mapCone commutes with whisker

                                                                                                                                          Equations
                                                                                                                                          Instances For
                                                                                                                                            @[simp]
                                                                                                                                            theorem CategoryTheory.Functor.mapConeWhisker_hom_hom {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cone F} :
                                                                                                                                            H.mapConeWhisker.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                            @[simp]
                                                                                                                                            theorem CategoryTheory.Functor.mapConeWhisker_inv_hom {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cone F} :
                                                                                                                                            H.mapConeWhisker.inv.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                            def CategoryTheory.Functor.mapCoconeWhisker {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cocone F} :
                                                                                                                                            H.mapCocone (Limits.Cocone.whisker E c) Limits.Cocone.whisker E (H.mapCocone c)

                                                                                                                                            mapCocone commutes with whisker

                                                                                                                                            Equations
                                                                                                                                            Instances For
                                                                                                                                              @[simp]
                                                                                                                                              theorem CategoryTheory.Functor.mapCoconeWhisker_hom_hom {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cocone F} :
                                                                                                                                              H.mapCoconeWhisker.hom.hom = CategoryStruct.id (H.obj c.pt)
                                                                                                                                              @[simp]
                                                                                                                                              theorem CategoryTheory.Functor.mapCoconeWhisker_inv_hom {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] (H : Functor C D) {F : Functor J C} {E : Functor K J} {c : Limits.Cocone F} :
                                                                                                                                              H.mapCoconeWhisker.inv.hom = CategoryStruct.id (H.obj c.pt)

                                                                                                                                              Change a Cocone F into a Cone F.op.

                                                                                                                                              Equations
                                                                                                                                              Instances For
                                                                                                                                                @[simp]
                                                                                                                                                theorem CategoryTheory.Limits.Cocone.op_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                                                                                                                c.op.pt = Opposite.op c.pt
                                                                                                                                                @[simp]
                                                                                                                                                theorem CategoryTheory.Limits.Cocone.op_π {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F) :
                                                                                                                                                c.op = NatTrans.op c
                                                                                                                                                def CategoryTheory.Limits.Cone.op {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                                                                                                                                Cocone F.op

                                                                                                                                                Change a Cone F into a Cocone F.op.

                                                                                                                                                Equations
                                                                                                                                                Instances For
                                                                                                                                                  @[simp]
                                                                                                                                                  theorem CategoryTheory.Limits.Cone.op_ι {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                                                                                                                                  c.op = NatTrans.op c
                                                                                                                                                  @[simp]
                                                                                                                                                  theorem CategoryTheory.Limits.Cone.op_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F) :
                                                                                                                                                  c.op.pt = Opposite.op c.pt

                                                                                                                                                  Change a Cocone F.op into a Cone F.

                                                                                                                                                  Equations
                                                                                                                                                  Instances For
                                                                                                                                                    @[simp]
                                                                                                                                                    theorem CategoryTheory.Limits.Cocone.unop_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F.op) :
                                                                                                                                                    c.unop.pt = Opposite.unop c.pt
                                                                                                                                                    @[simp]
                                                                                                                                                    theorem CategoryTheory.Limits.Cocone.unop_π {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cocone F.op) :
                                                                                                                                                    c.unop = NatTrans.removeOp c

                                                                                                                                                    Change a Cone F.op into a Cocone F.

                                                                                                                                                    Equations
                                                                                                                                                    Instances For
                                                                                                                                                      @[simp]
                                                                                                                                                      theorem CategoryTheory.Limits.Cone.unop_ι {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F.op) :
                                                                                                                                                      c.unop = NatTrans.removeOp c
                                                                                                                                                      @[simp]
                                                                                                                                                      theorem CategoryTheory.Limits.Cone.unop_pt {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J C} (c : Cone F.op) :
                                                                                                                                                      c.unop.pt = Opposite.unop c.pt

                                                                                                                                                      The category of cocones on F is equivalent to the opposite category of the category of cones on the opposite of F.

                                                                                                                                                      Equations
                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                      Instances For
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem CategoryTheory.Limits.coconeEquivalenceOpConeOp_counitIso {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) :
                                                                                                                                                        (coconeEquivalenceOpConeOp F).counitIso = NatIso.ofComponents (fun (c : (Cone F.op)ᵒᵖ) => Opposite.rec' (fun (X : Cone F.op) => (Cones.ext (Iso.refl X.pt) ).op) c)
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem CategoryTheory.Limits.coconeEquivalenceOpConeOp_functor_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) :
                                                                                                                                                        (coconeEquivalenceOpConeOp F).functor.map f = Quiver.Hom.op { hom := f.hom.op, w := }
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem CategoryTheory.Limits.coconeEquivalenceOpConeOp_inverse_map_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] (F : Functor J C) {X Y : (Cone F.op)ᵒᵖ} (f : X Y) :
                                                                                                                                                        ((coconeEquivalenceOpConeOp F).inverse.map f).hom = f.unop.hom.unop

                                                                                                                                                        Change a cocone on F.leftOp : Jᵒᵖ ⥤ C to a cocone on F : J ⥤ Cᵒᵖ.

                                                                                                                                                        Equations
                                                                                                                                                        Instances For
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem CategoryTheory.Limits.coneOfCoconeLeftOp_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J Cᵒᵖ} (c : Cocone F.leftOp) (X : J) :
                                                                                                                                                          (coneOfCoconeLeftOp c).app X = (c.app (Opposite.op X)).op

                                                                                                                                                          Change a cone on F : J ⥤ Cᵒᵖ to a cocone on F.leftOp : Jᵒᵖ ⥤ C.

                                                                                                                                                          Equations
                                                                                                                                                          Instances For
                                                                                                                                                            @[simp]
                                                                                                                                                            theorem CategoryTheory.Limits.coconeLeftOpOfCone_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J Cᵒᵖ} (c : Cone F) (X : Jᵒᵖ) :
                                                                                                                                                            (coconeLeftOpOfCone c).app X = (c.app (Opposite.unop X)).unop

                                                                                                                                                            Change a cone on F.leftOp : Jᵒᵖ ⥤ C to a cocone on F : J ⥤ Cᵒᵖ.

                                                                                                                                                            Equations
                                                                                                                                                            Instances For
                                                                                                                                                              @[simp]
                                                                                                                                                              theorem CategoryTheory.Limits.coconeOfConeLeftOp_ι_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J Cᵒᵖ} (c : Cone F.leftOp) (j : J) :
                                                                                                                                                              (coconeOfConeLeftOp c).app j = (c.app (Opposite.op j)).op

                                                                                                                                                              Change a cocone on F : J ⥤ Cᵒᵖ to a cone on F.leftOp : Jᵒᵖ ⥤ C.

                                                                                                                                                              Equations
                                                                                                                                                              Instances For
                                                                                                                                                                @[simp]
                                                                                                                                                                theorem CategoryTheory.Limits.coneLeftOpOfCocone_π_app {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {F : Functor J Cᵒᵖ} (c : Cocone F) (X : Jᵒᵖ) :
                                                                                                                                                                (coneLeftOpOfCocone c).app X = (c.app (Opposite.unop X)).unop

                                                                                                                                                                Change a cocone on F.rightOp : J ⥤ Cᵒᵖ to a cone on F : Jᵒᵖ ⥤ C.

                                                                                                                                                                Equations
                                                                                                                                                                Instances For

                                                                                                                                                                  Change a cone on F : Jᵒᵖ ⥤ C to a cocone on F.rightOp : Jᵒᵖ ⥤ C.

                                                                                                                                                                  Equations
                                                                                                                                                                  Instances For

                                                                                                                                                                    Change a cone on F.rightOp : J ⥤ Cᵒᵖ to a cocone on F : Jᵒᵖ ⥤ C.

                                                                                                                                                                    Equations
                                                                                                                                                                    Instances For

                                                                                                                                                                      Change a cocone on F : Jᵒᵖ ⥤ C to a cone on F.rightOp : J ⥤ Cᵒᵖ.

                                                                                                                                                                      Equations
                                                                                                                                                                      Instances For

                                                                                                                                                                        Change a cocone on F.unop : J ⥤ C into a cone on F : Jᵒᵖ ⥤ Cᵒᵖ.

                                                                                                                                                                        Equations
                                                                                                                                                                        Instances For

                                                                                                                                                                          Change a cone on F : Jᵒᵖ ⥤ Cᵒᵖ into a cocone on F.unop : J ⥤ C.

                                                                                                                                                                          Equations
                                                                                                                                                                          Instances For

                                                                                                                                                                            Change a cone on F.unop : J ⥤ C into a cocone on F : Jᵒᵖ ⥤ Cᵒᵖ.

                                                                                                                                                                            Equations
                                                                                                                                                                            Instances For

                                                                                                                                                                              Change a cocone on F : Jᵒᵖ ⥤ Cᵒᵖ into a cone on F.unop : J ⥤ C.

                                                                                                                                                                              Equations
                                                                                                                                                                              Instances For
                                                                                                                                                                                def CategoryTheory.Functor.mapConeOp {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} (G : Functor C D) (t : Limits.Cone F) :
                                                                                                                                                                                (G.mapCone t).op G.op.mapCocone t.op

                                                                                                                                                                                The opposite cocone of the image of a cone is the image of the opposite cocone.

                                                                                                                                                                                Equations
                                                                                                                                                                                Instances For
                                                                                                                                                                                  @[simp]
                                                                                                                                                                                  theorem CategoryTheory.Functor.mapConeOp_inv_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} (G : Functor C D) (t : Limits.Cone F) :
                                                                                                                                                                                  (mapConeOp G t).inv.hom = CategoryStruct.id (Opposite.op (G.obj t.pt))
                                                                                                                                                                                  @[simp]
                                                                                                                                                                                  theorem CategoryTheory.Functor.mapConeOp_hom_hom {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} (G : Functor C D) (t : Limits.Cone F) :
                                                                                                                                                                                  (mapConeOp G t).hom.hom = CategoryStruct.id (Opposite.op (G.obj t.pt))
                                                                                                                                                                                  def CategoryTheory.Functor.mapCoconeOp {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u₃} [Category.{v₃, u₃} C] {D : Type u₄} [Category.{v₄, u₄} D] {F : Functor J C} (G : Functor C D) {t : Limits.Cocone F} :
                                                                                                                                                                                  (G.mapCocone t).op G.op.mapCone t.op

                                                                                                                                                                                  The opposite cone of the image of a cocone is the image of the opposite cone.

                                                                                                                                                                                  Equations
                                                                                                                                                                                  Instances For
                                                                                                                                                                                    @[simp]
                                                                                                                                                                                    @[simp]