Documentation

Mathlib.CategoryTheory.Limits.Opposites

Limits in C give colimits in Cᵒᵖ. #

We also give special cases for (co)products, (co)equalizers, and pullbacks / pushouts.

Turn a colimit for F : J ⥤ Cᵒᵖ into a limit for F.leftOp : Jᵒᵖ ⥤ C.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.Limits.isLimitConeLeftOpOfCocone_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor J Cᵒᵖ) {c : Cocone F} (hc : IsColimit c) (s : Cone F.leftOp) :
    (isLimitConeLeftOpOfCocone F hc).lift s = (hc.desc (coconeOfConeLeftOp s)).unop

    Turn a limit of F : J ⥤ Cᵒᵖ into a colimit of F.leftOp : Jᵒᵖ ⥤ C.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.Limits.isColimitCoconeLeftOpOfCone_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor J Cᵒᵖ) {c : Cone F} (hc : IsLimit c) (s : Cocone F.leftOp) :
      (isColimitCoconeLeftOpOfCone F hc).desc s = (hc.lift (coneOfCoconeLeftOp s)).unop

      Turn a colimit for F : Jᵒᵖ ⥤ C into a limit for F.rightOp : J ⥤ Cᵒᵖ.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.Limits.isLimitConeRightOpOfCocone_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ C) {c : Cocone F} (hc : IsColimit c) (s : Cone F.rightOp) :
        (isLimitConeRightOpOfCocone F hc).lift s = (hc.desc (coconeOfConeRightOp s)).op

        Turn a limit for F : Jᵒᵖ ⥤ C into a colimit for F.rightOp : J ⥤ Cᵒᵖ.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Limits.isColimitCoconeRightOpOfCone_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ C) {c : Cone F} (hc : IsLimit c) (s : Cocone F.rightOp) :
          (isColimitCoconeRightOpOfCone F hc).desc s = (hc.lift (coneOfCoconeRightOp s)).op

          Turn a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ into a limit for F.unop : J ⥤ C.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Limits.isLimitConeUnopOfCocone_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ Cᵒᵖ) {c : Cocone F} (hc : IsColimit c) (s : Cone F.unop) :
            (isLimitConeUnopOfCocone F hc).lift s = (hc.desc (coconeOfConeUnop s)).unop

            Turn a limit of F : Jᵒᵖ ⥤ Cᵒᵖ into a colimit of F.unop : J ⥤ C.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.Limits.isColimitCoconeUnopOfCone_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ Cᵒᵖ) {c : Cone F} (hc : IsLimit c) (s : Cocone F.unop) :
              (isColimitCoconeUnopOfCone F hc).desc s = (hc.lift (coneOfCoconeUnop s)).unop

              Turn a colimit for F.leftOp : Jᵒᵖ ⥤ C into a limit for F : J ⥤ Cᵒᵖ.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Limits.isLimitConeOfCoconeLeftOp_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor J Cᵒᵖ) {c : Cocone F.leftOp} (hc : IsColimit c) (s : Cone F) :
                (isLimitConeOfCoconeLeftOp F hc).lift s = (hc.desc (coconeLeftOpOfCone s)).op

                Turn a limit of F.leftOp : Jᵒᵖ ⥤ C into a colimit of F : J ⥤ Cᵒᵖ.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Limits.isColimitCoconeOfConeLeftOp_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor J Cᵒᵖ) {c : Cone F.leftOp} (hc : IsLimit c) (s : Cocone F) :
                  (isColimitCoconeOfConeLeftOp F hc).desc s = (hc.lift (coneLeftOpOfCocone s)).op

                  Turn a colimit for F.rightOp : J ⥤ Cᵒᵖ into a limit for F : Jᵒᵖ ⥤ C.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Limits.isLimitConeOfCoconeRightOp_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ C) {c : Cocone F.rightOp} (hc : IsColimit c) (s : Cone F) :
                    (isLimitConeOfCoconeRightOp F hc).lift s = (hc.desc (coconeRightOpOfCone s)).unop

                    Turn a limit for F.rightOp : J ⥤ Cᵒᵖ into a colimit for F : Jᵒᵖ ⥤ C.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.isColimitCoconeOfConeRightOp_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ C) {c : Cone F.rightOp} (hc : IsLimit c) (s : Cocone F) :
                      (isColimitCoconeOfConeRightOp F hc).desc s = (hc.lift (coneRightOpOfCocone s)).unop

                      Turn a colimit for F.unop : J ⥤ C into a limit for F : Jᵒᵖ ⥤ Cᵒᵖ.

                      Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Limits.isLimitConeOfCoconeUnop_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ Cᵒᵖ) {c : Cocone F.unop} (hc : IsColimit c) (s : Cone F) :
                        (isLimitConeOfCoconeUnop F hc).lift s = (hc.desc (coconeUnopOfCone s)).op

                        Turn a limit for F.unop : J ⥤ C into a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Limits.isColimitCoconeOfConeUnop_desc {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ Cᵒᵖ) {c : Cone F.unop} (hc : IsLimit c) (s : Cocone F) :
                          (isColimitCoconeOfConeUnop F hc).desc s = (hc.lift (coneUnopOfCocone s)).op

                          Turn a limit for F.leftOp : Jᵒᵖ ⥤ C into a colimit for F : J ⥤ Cᵒᵖ.

                          Equations
                          Instances For

                            Turn a colimit for F.leftOp : Jᵒᵖ ⥤ C into a limit for F : J ⥤ Cᵒᵖ.

                            Equations
                            Instances For

                              Turn a limit for F.rightOp : J ⥤ Cᵒᵖ into a colimit for F : Jᵒᵖ ⥤ C.

                              Equations
                              Instances For

                                Turn a colimit for F.rightOp : J ⥤ Cᵒᵖ into a limit for F : Jᵒᵖ ⥤ C.

                                Equations
                                Instances For

                                  Turn a limit for F.unop : J ⥤ C into a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ.

                                  Equations
                                  Instances For

                                    Turn a colimit for F.unop : J ⥤ C into a limit for F : Jᵒᵖ ⥤ Cᵒᵖ.

                                    Equations
                                    Instances For

                                      Turn a limit for F : J ⥤ Cᵒᵖ into a colimit for F.leftOp : Jᵒᵖ ⥤ C.

                                      Equations
                                      Instances For
                                        @[simp]

                                        Turn a colimit for F : J ⥤ Cᵒᵖ into a limit for F.leftOp : Jᵒᵖ ⥤ C.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.isLimitOfCoconeOfConeLeftOp_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor J Cᵒᵖ) {c : Cone F.leftOp} (hc : IsColimit (coconeOfConeLeftOp c)) (s : Cone F.leftOp) :
                                          (isLimitOfCoconeOfConeLeftOp F hc).lift s = (hc.desc (coconeOfConeLeftOp s)).unop

                                          Turn a limit for F : Jᵒᵖ ⥤ C into a colimit for F.rightOp : J ⥤ Cᵒᵖ.

                                          Equations
                                          Instances For
                                            @[simp]

                                            Turn a colimit for F : Jᵒᵖ ⥤ C into a limit for F.rightOp : J ⥤ Cᵒᵖ.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Limits.isLimitOfCoconeOfConeRightOp_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ C) {c : Cone F.rightOp} (hc : IsColimit (coconeOfConeRightOp c)) (s : Cone F.rightOp) :
                                              (isLimitOfCoconeOfConeRightOp F hc).lift s = (hc.desc (coconeOfConeRightOp s)).op

                                              Turn a limit for F : Jᵒᵖ ⥤ Cᵒᵖ into a colimit for F.unop : J ⥤ C.

                                              Equations
                                              Instances For
                                                @[simp]

                                                Turn a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ into a limit for F.unop : J ⥤ C.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.isLimitOfCoconeOfConeUnop_lift {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u₂} [Category.{v₂, u₂} J] (F : Functor Jᵒᵖ Cᵒᵖ) {c : Cone F.unop} (hc : IsColimit (coconeOfConeUnop c)) (s : Cone F.unop) :
                                                  (isLimitOfCoconeOfConeUnop F hc).lift s = (hc.desc (coconeOfConeUnop s)).unop
                                                  @[deprecated CategoryTheory.Limits.isColimitCoconeOfConeUnop (since := "2024-11-01")]

                                                  Alias of CategoryTheory.Limits.isColimitCoconeOfConeUnop.


                                                  Turn a limit for F.unop : J ⥤ C into a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ.

                                                  Equations
                                                  Instances For

                                                    If F.leftOp : Jᵒᵖ ⥤ C has a colimit, we can construct a limit for F : J ⥤ Cᵒᵖ.

                                                    The limit of F.op is the opposite of colimit F.

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

                                                      The limit of F.leftOp is the unopposite of colimit F.

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

                                                        The limit of F.rightOp is the opposite of colimit F.

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

                                                          The limit of F.unop is the unopposite of colimit F.

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

                                                            If C has colimits of shape Jᵒᵖ, we can construct limits in Cᵒᵖ of shape J.

                                                            If F.leftOp : Jᵒᵖ ⥤ C has a limit, we can construct a colimit for F : J ⥤ Cᵒᵖ.

                                                            The colimit of F.op is the opposite of limit F.

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

                                                              The colimit of F.leftOp is the unopposite of limit F.

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

                                                                The colimit of F.rightOp is the opposite of limit F.

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

                                                                  The colimit of F.unop is the unopposite of limit F.

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

                                                                    If C has colimits of shape Jᵒᵖ, we can construct limits in Cᵒᵖ of shape J.

                                                                    If C has products indexed by X, then Cᵒᵖ has coproducts indexed by X.

                                                                    If C has coproducts indexed by X, then Cᵒᵖ has products indexed by X.

                                                                    instance CategoryTheory.Limits.instHasProductOppositeOp {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasCoproduct Z] :
                                                                    HasProduct fun (x : α) => Opposite.op (Z x)
                                                                    def CategoryTheory.Limits.Cofan.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} (c : Cofan Z) :
                                                                    Fan fun (x : α) => Opposite.op (Z x)

                                                                    A Cofan gives a Fan in the opposite category.

                                                                    Equations
                                                                    Instances For
                                                                      noncomputable def CategoryTheory.Limits.Cofan.IsColimit.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} (hc : IsColimit c) :
                                                                      IsLimit c.op

                                                                      If a Cofan is colimit, then its opposite is limit.

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        def CategoryTheory.Limits.opCoproductIsoProduct' {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) :
                                                                        Opposite.op c.pt f.pt

                                                                        The canonical isomorphism from the opposite of an abstract coproduct to the corresponding product in the opposite category.

                                                                        Equations
                                                                        Instances For
                                                                          def CategoryTheory.Limits.opCoproductIsoProduct {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasCoproduct Z] :
                                                                          Opposite.op ( Z) ∏ᶜ fun (x : α) => Opposite.op (Z x)

                                                                          The canonical isomorphism from the opposite of the coproduct to the product in the opposite category.

                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            theorem CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) (b : α) :
                                                                            CategoryStruct.comp (opCoproductIsoProduct' hc hf).inv (c.inj b).op = f.proj b
                                                                            theorem CategoryTheory.Limits.opCoproductIsoProduct'_comp_self {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c c' : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hc' : IsColimit c') (hf : IsLimit f) :
                                                                            CategoryStruct.comp (opCoproductIsoProduct' hc hf).hom (opCoproductIsoProduct' hc' hf).inv = (hc.coconePointUniqueUpToIso hc').op.inv
                                                                            theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasCoproduct Z] (b : α) :
                                                                            CategoryStruct.comp (opCoproductIsoProduct Z).inv (Sigma.ι Z b).op = Pi.π (fun (x : α) => Opposite.op (Z x)) b
                                                                            theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) (c' : Cofan Z) :
                                                                            CategoryStruct.comp (hc.desc c').op (opCoproductIsoProduct' hc hf).hom = hf.lift c'.op
                                                                            theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasCoproduct Z] {X : C} (π : (a : α) → Z a X) :
                                                                            CategoryStruct.comp (Sigma.desc π).op (opCoproductIsoProduct Z).hom = Pi.lift fun (a : α) => (π a).op
                                                                            instance CategoryTheory.Limits.instHasCoproductOppositeOp {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasProduct Z] :
                                                                            HasCoproduct fun (x : α) => Opposite.op (Z x)
                                                                            def CategoryTheory.Limits.Fan.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} (f : Fan Z) :
                                                                            Cofan fun (x : α) => Opposite.op (Z x)

                                                                            A Fan gives a Cofan in the opposite category.

                                                                            Equations
                                                                            Instances For
                                                                              noncomputable def CategoryTheory.Limits.Fan.IsLimit.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} (hf : IsLimit f) :

                                                                              If a Fan is limit, then its opposite is colimit.

                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                def CategoryTheory.Limits.opProductIsoCoproduct' {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) :
                                                                                Opposite.op f.pt c.pt

                                                                                The canonical isomorphism from the opposite of an abstract product to the corresponding coproduct in the opposite category.

                                                                                Equations
                                                                                Instances For
                                                                                  def CategoryTheory.Limits.opProductIsoCoproduct {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasProduct Z] :
                                                                                  Opposite.op (∏ᶜ Z) fun (x : α) => Opposite.op (Z x)

                                                                                  The canonical isomorphism from the opposite of the product to the coproduct in the opposite category.

                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) (b : α) :
                                                                                    CategoryStruct.comp (f.proj b).op (opProductIsoCoproduct' hf hc).hom = c.inj b
                                                                                    theorem CategoryTheory.Limits.opProductIsoCoproduct'_comp_self {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f f' : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hf' : IsLimit f') (hc : IsColimit c) :
                                                                                    CategoryStruct.comp (opProductIsoCoproduct' hf hc).hom (opProductIsoCoproduct' hf' hc).inv = (hf.conePointUniqueUpToIso hf').op.inv
                                                                                    theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasProduct Z] (b : α) :
                                                                                    CategoryStruct.comp (Pi.π Z b).op (opProductIsoCoproduct Z).hom = Sigma.ι (fun (x : α) => Opposite.op (Z x)) b
                                                                                    theorem CategoryTheory.Limits.opProductIsoCoproduct'_inv_comp_lift {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) (f' : Fan Z) :
                                                                                    CategoryStruct.comp (opProductIsoCoproduct' hf hc).inv (hf.lift f').op = hc.desc f'.op
                                                                                    theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasProduct Z] {X : C} (π : (a : α) → X Z a) :
                                                                                    CategoryStruct.comp (opProductIsoCoproduct Z).inv (Pi.lift π).op = Sigma.desc fun (a : α) => (π a).op

                                                                                    The canonical isomorphism from the opposite of the binary product to the coproduct in the opposite category.

                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      def CategoryTheory.Limits.spanOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                                                                      span f.op g.op walkingCospanOpEquiv.inverse.comp (cospan f g).op

                                                                                      The canonical isomorphism relating Span f.op g.op and (Cospan f g).op

                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Instances For
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.Limits.spanOp_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingSpan) :
                                                                                        (spanOp f g).hom.app X✝ = (Option.rec (Iso.refl (Opposite.op Z)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op X)) (Iso.refl (Opposite.op Y)) val) X✝).hom
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.Limits.spanOp_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingSpan) :
                                                                                        (spanOp f g).inv.app X✝ = (Option.rec (Iso.refl (Opposite.op Z)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op X)) (Iso.refl (Opposite.op Y)) val) X✝).inv
                                                                                        def CategoryTheory.Limits.opCospan {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) :
                                                                                        (cospan f g).op walkingCospanOpEquiv.functor.comp (span f.op g.op)

                                                                                        The canonical isomorphism relating (Cospan f g).op and Span f.op g.op

                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Limits.opCospan_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingCospanᵒᵖ) :
                                                                                          (opCospan f g).inv.app X✝ = (Option.rec (Iso.refl (Opposite.op Z)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op X)) (Iso.refl (Opposite.op Y)) val) (Opposite.unop X✝)).hom
                                                                                          @[simp]
                                                                                          theorem CategoryTheory.Limits.opCospan_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingCospanᵒᵖ) :
                                                                                          (opCospan f g).hom.app X✝ = (Option.rec (Iso.refl (Opposite.op Z)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op X)) (Iso.refl (Opposite.op Y)) val) (Opposite.unop X✝)).inv
                                                                                          def CategoryTheory.Limits.cospanOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                                                                          cospan f.op g.op walkingSpanOpEquiv.inverse.comp (span f g).op

                                                                                          The canonical isomorphism relating Cospan f.op g.op and (Span f g).op

                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For
                                                                                            @[simp]
                                                                                            theorem CategoryTheory.Limits.cospanOp_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingCospan) :
                                                                                            (cospanOp f g).inv.app X✝ = (Option.rec (Iso.refl (Opposite.op X)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op Y)) (Iso.refl (Opposite.op Z)) val) X✝).inv
                                                                                            @[simp]
                                                                                            theorem CategoryTheory.Limits.cospanOp_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingCospan) :
                                                                                            (cospanOp f g).hom.app X✝ = (Option.rec (Iso.refl (Opposite.op X)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op Y)) (Iso.refl (Opposite.op Z)) val) X✝).hom
                                                                                            def CategoryTheory.Limits.opSpan {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) :
                                                                                            (span f g).op walkingSpanOpEquiv.functor.comp (cospan f.op g.op)

                                                                                            The canonical isomorphism relating (Span f g).op and Cospan f.op g.op

                                                                                            Equations
                                                                                            • One or more equations did not get rendered due to their size.
                                                                                            Instances For
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Limits.opSpan_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingSpanᵒᵖ) :
                                                                                              (opSpan f g).hom.app X✝ = (Option.rec (Iso.refl (Opposite.op X)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op Y)) (Iso.refl (Opposite.op Z)) val) (Opposite.unop X✝)).inv
                                                                                              @[simp]
                                                                                              theorem CategoryTheory.Limits.opSpan_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingSpanᵒᵖ) :
                                                                                              (opSpan f g).inv.app X✝ = (Option.rec (Iso.refl (Opposite.op X)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op Y)) (Iso.refl (Opposite.op Z)) val) (Opposite.unop X✝)).hom
                                                                                              def CategoryTheory.Limits.PushoutCocone.unop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                              PullbackCone f.unop g.unop

                                                                                              The obvious map PushoutCocone f g → PullbackCone f.unop g.unop

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For
                                                                                                @[simp]
                                                                                                theorem CategoryTheory.Limits.PushoutCocone.unop_π_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) (X✝ : WalkingCospan) :
                                                                                                c.unop.app X✝ = CategoryStruct.comp (c.app X✝).unop (Option.rec (Iso.refl X) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl Y) (Iso.refl Z) val) X✝).inv.unop
                                                                                                @[simp]
                                                                                                theorem CategoryTheory.Limits.PushoutCocone.unop_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                c.unop.pt = Opposite.unop c.pt
                                                                                                theorem CategoryTheory.Limits.PushoutCocone.unop_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                c.unop.fst = c.inl.unop
                                                                                                theorem CategoryTheory.Limits.PushoutCocone.unop_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                c.unop.snd = c.inr.unop
                                                                                                def CategoryTheory.Limits.PushoutCocone.op {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                PullbackCone f.op g.op

                                                                                                The obvious map PushoutCocone f.op g.op → PullbackCone f g

                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Limits.PushoutCocone.op_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                  c.op.pt = Opposite.op c.pt
                                                                                                  @[simp]
                                                                                                  theorem CategoryTheory.Limits.PushoutCocone.op_π_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) (X✝ : WalkingCospan) :
                                                                                                  c.op.app X✝ = CategoryStruct.comp (c.app X✝).op (Option.rec (Iso.refl (Opposite.op X)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op Y)) (Iso.refl (Opposite.op Z)) val) X✝).inv
                                                                                                  theorem CategoryTheory.Limits.PushoutCocone.op_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                  c.op.fst = c.inl.op
                                                                                                  theorem CategoryTheory.Limits.PushoutCocone.op_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                  c.op.snd = c.inr.op
                                                                                                  def CategoryTheory.Limits.PullbackCone.unop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                  PushoutCocone f.unop g.unop

                                                                                                  The obvious map PullbackCone f g → PushoutCocone f.unop g.unop

                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For
                                                                                                    @[simp]
                                                                                                    theorem CategoryTheory.Limits.PullbackCone.unop_ι_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) (X✝ : WalkingSpan) :
                                                                                                    c.unop.app X✝ = CategoryStruct.comp (Option.rec (Iso.refl Z) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl X) (Iso.refl Y) val) X✝).hom.unop (c.app X✝).unop
                                                                                                    @[simp]
                                                                                                    theorem CategoryTheory.Limits.PullbackCone.unop_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                    c.unop.pt = Opposite.unop c.pt
                                                                                                    theorem CategoryTheory.Limits.PullbackCone.unop_inl {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                    c.unop.inl = c.fst.unop
                                                                                                    theorem CategoryTheory.Limits.PullbackCone.unop_inr {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                    c.unop.inr = c.snd.unop
                                                                                                    def CategoryTheory.Limits.PullbackCone.op {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                    PushoutCocone f.op g.op

                                                                                                    The obvious map PullbackCone f g → PushoutCocone f.op g.op

                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.PullbackCone.op_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                      c.op.pt = Opposite.op c.pt
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.PullbackCone.op_ι_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) (X✝ : WalkingSpan) :
                                                                                                      c.op.app X✝ = CategoryStruct.comp (Option.rec (Iso.refl (Opposite.op Z)) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl (Opposite.op X)) (Iso.refl (Opposite.op Y)) val) X✝).hom (c.app X✝).op
                                                                                                      theorem CategoryTheory.Limits.PullbackCone.op_inl {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                      c.op.inl = c.fst.op
                                                                                                      theorem CategoryTheory.Limits.PullbackCone.op_inr {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                      c.op.inr = c.snd.op
                                                                                                      def CategoryTheory.Limits.PullbackCone.opUnop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                      c.op.unop c

                                                                                                      If c is a pullback cone, then c.op.unop is isomorphic to c.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        def CategoryTheory.Limits.PullbackCone.unopOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
                                                                                                        c.unop.op c

                                                                                                        If c is a pullback cone in Cᵒᵖ, then c.unop.op is isomorphic to c.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          def CategoryTheory.Limits.PushoutCocone.opUnop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                          c.op.unop c

                                                                                                          If c is a pushout cocone, then c.op.unop is isomorphic to c.

                                                                                                          Equations
                                                                                                          Instances For
                                                                                                            def CategoryTheory.Limits.PushoutCocone.unopOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
                                                                                                            c.unop.op c

                                                                                                            If c is a pushout cocone in Cᵒᵖ, then c.unop.op is isomorphic to c.

                                                                                                            Equations
                                                                                                            Instances For
                                                                                                              noncomputable def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :

                                                                                                              A pushout cone is a colimit cocone if and only if the corresponding pullback cone in the opposite category is a limit cone.

                                                                                                              Equations
                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                              Instances For
                                                                                                                noncomputable def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitUnop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :

                                                                                                                A pushout cone is a colimit cocone in Cᵒᵖ if and only if the corresponding pullback cone in C is a limit cone.

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

                                                                                                                  A pullback cone is a limit cone if and only if the corresponding pushout cocone in the opposite category is a colimit cocone.

                                                                                                                  Equations
                                                                                                                  Instances For

                                                                                                                    A pullback cone is a limit cone in Cᵒᵖ if and only if the corresponding pushout cocone in C is a colimit cocone.

                                                                                                                    Equations
                                                                                                                    Instances For
                                                                                                                      noncomputable def CategoryTheory.Limits.pullbackIsoUnopPushout {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [h : HasPullback f g] [HasPushout f.op g.op] :

                                                                                                                      The pullback of f and g in C is isomorphic to the pushout of f.op and g.op in Cᵒᵖ.

                                                                                                                      Equations
                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                      Instances For
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] :
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst_assoc {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] {Z✝ : C} (h : X Z✝) :
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] :
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd_assoc {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] {Z✝ : C} (h : Y Z✝) :
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] :
                                                                                                                        @[simp]
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [HasPullback f g] [HasPushout f.op g.op] :
                                                                                                                        @[simp]
                                                                                                                        noncomputable def CategoryTheory.Limits.pushoutIsoUnopPullback {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [h : HasPushout f g] [HasPullback f.op g.op] :

                                                                                                                        The pushout of f and g in C is isomorphic to the pullback of f.op and g.op in Cᵒᵖ.

                                                                                                                        Equations
                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                        Instances For
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inl_hom {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] :
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inl_hom_assoc {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] {Z✝ : C} (h : Opposite.unop (pullback f.op g.op) Z✝) :
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inr_hom {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] :
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inr_hom_assoc {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] {Z✝ : C} (h : Opposite.unop (pullback f.op g.op) Z✝) :
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] :
                                                                                                                          @[simp]
                                                                                                                          theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [HasPushout f g] [HasPullback f.op g.op] :

                                                                                                                          A colimit cokernel cofork gives a limit kernel fork in the opposite category

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

                                                                                                                            A colimit cokernel cofork in the opposite category gives a limit kernel fork in the original category

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

                                                                                                                              A limit kernel fork gives a colimit cokernel cofork in the opposite category

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

                                                                                                                                A limit kernel fork in the opposite category gives a colimit cokernel cofork in the original category

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