Documentation

Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts

Binary (co)products #

We define prod X Y and coprod X Y as limits and colimits of walking-pair diagrams.

Typeclasses HasBinaryProducts and HasBinaryCoproducts assert the existence of (co)limits shaped as walking pairs.

We include lemmas for simplifying equations involving projections and coprojections, and define braiding and associating isomorphisms, and the product comparison morphism.

References #

@[reducible, inline]

An abbreviation for HasLimit (pair X Y).

Equations
Instances For
    @[reducible, inline]

    An abbreviation for HasColimit (pair X Y).

    Equations
    Instances For
      @[reducible, inline]
      noncomputable abbrev CategoryTheory.Limits.prod {C : Type u} [Category.{v, u} C] (X Y : C) [HasBinaryProduct X Y] :
      C

      If we have a product of X and Y, we can access it using prod X Y or X ⨯ Y.

      Equations
      Instances For
        @[reducible, inline]
        noncomputable abbrev CategoryTheory.Limits.coprod {C : Type u} [Category.{v, u} C] (X Y : C) [HasBinaryCoproduct X Y] :
        C

        If we have a coproduct of X and Y, we can access it using coprod X Y or X ⨿ Y.

        Equations
        Instances For

          Notation for the product

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

            Notation for the coproduct

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[reducible, inline]
              noncomputable abbrev CategoryTheory.Limits.prod.fst {C : Type u} [Category.{v, u} C] {X Y : C} [HasBinaryProduct X Y] :
              X ⨯ Y ⟶ X

              The projection map to the first component of the product.

              Equations
              Instances For
                @[reducible, inline]
                noncomputable abbrev CategoryTheory.Limits.coprod.inl {C : Type u} [Category.{v, u} C] {X Y : C} [HasBinaryCoproduct X Y] :
                X ⟶ X ⨿ Y

                The inclusion map from the first component of the coproduct.

                Equations
                Instances For
                  @[reducible, inline]
                  noncomputable abbrev CategoryTheory.Limits.prod.snd {C : Type u} [Category.{v, u} C] {X Y : C} [HasBinaryProduct X Y] :
                  X ⨯ Y ⟶ Y

                  The projection map to the second component of the product.

                  Equations
                  Instances For
                    @[reducible, inline]
                    noncomputable abbrev CategoryTheory.Limits.coprod.inr {C : Type u} [Category.{v, u} C] {X Y : C} [HasBinaryCoproduct X Y] :
                    Y ⟶ X ⨿ Y

                    The inclusion map from the second component of the coproduct.

                    Equations
                    Instances For

                      The binary fan constructed from the projection maps is a limit.

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

                        The binary cofan constructed from the coprojection maps is a colimit.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]
                          noncomputable abbrev CategoryTheory.Limits.prod.lift {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) :
                          W ⟶ X ⨯ Y

                          If the product of X and Y exists, then every pair of morphisms f : W ⟶ X and g : W ⟶ Y induces a morphism prod.lift f g : W ⟶ X ⨯ Y.

                          Equations
                          Instances For
                            @[reducible, inline]
                            noncomputable abbrev CategoryTheory.Limits.coprod.desc {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) :
                            X ⨿ Y ⟶ W

                            If the coproduct of X and Y exists, then every pair of morphisms f : X ⟶ W and g : Y ⟶ W induces a morphism coprod.desc f g : X ⨿ Y ⟶ W.

                            Equations
                            Instances For
                              @[reducible, inline]
                              noncomputable abbrev CategoryTheory.Limits.diag {C : Type u} [Category.{v, u} C] (X : C) [HasBinaryProduct X X] :
                              X ⟶ X ⨯ X

                              diagonal arrow of the binary product in the category fam I

                              Equations
                              Instances For
                                @[reducible, inline]
                                noncomputable abbrev CategoryTheory.Limits.codiag {C : Type u} [Category.{v, u} C] (X : C) [HasBinaryCoproduct X X] :
                                X ⨿ X ⟶ X

                                codiagonal arrow of the binary coproduct

                                Equations
                                Instances For
                                  theorem CategoryTheory.Limits.prod.lift_fst {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) :
                                  theorem CategoryTheory.Limits.coprod.inl_desc {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) :
                                  theorem CategoryTheory.Limits.prod.lift_snd {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) :
                                  theorem CategoryTheory.Limits.coprod.inr_desc {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) :
                                  instance CategoryTheory.Limits.prod.mono_lift_of_mono_left {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) [Mono f] :
                                  Mono (lift f g)
                                  instance CategoryTheory.Limits.coprod.epi_desc_of_epi_left {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) [Epi f] :
                                  Epi (desc f g)
                                  instance CategoryTheory.Limits.prod.mono_lift_of_mono_right {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) [Mono g] :
                                  Mono (lift f g)
                                  instance CategoryTheory.Limits.coprod.epi_desc_of_epi_right {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) [Epi g] :
                                  Epi (desc f g)
                                  noncomputable def CategoryTheory.Limits.prod.lift' {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryProduct X Y] (f : W ⟶ X) (g : W ⟶ Y) :

                                  If the product of X and Y exists, then every pair of morphisms f : W ⟶ X and g : W ⟶ Y induces a morphism l : W ⟶ X ⨯ Y satisfying l ≫ Prod.fst = f and l ≫ Prod.snd = g.

                                  Equations
                                  Instances For
                                    noncomputable def CategoryTheory.Limits.coprod.desc' {C : Type u} [Category.{v, u} C] {W X Y : C} [HasBinaryCoproduct X Y] (f : X ⟶ W) (g : Y ⟶ W) :

                                    If the coproduct of X and Y exists, then every pair of morphisms f : X ⟶ W and g : Y ⟶ W induces a morphism l : X ⨿ Y ⟶ W satisfying coprod.inl ≫ l = f and coprod.inr ≫ l = g.

                                    Equations
                                    Instances For
                                      noncomputable def CategoryTheory.Limits.prod.map {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : W ⟶ Y) (g : X ⟶ Z) :
                                      W ⨯ X ⟶ Y ⨯ Z

                                      If the products W ⨯ X and Y ⨯ Z exist, then every pair of morphisms f : W ⟶ Y and g : X ⟶ Z induces a morphism prod.map f g : W ⨯ X ⟶ Y ⨯ Z.

                                      Equations
                                      Instances For
                                        noncomputable def CategoryTheory.Limits.coprod.map {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : Y ⟶ W) (g : Z ⟶ X) :
                                        Y ⨿ Z ⟶ W ⨿ X

                                        If the coproducts W ⨿ X and Y ⨿ Z exist, then every pair of morphisms f : W ⟶ Y and g : W ⟶ Z induces a morphism coprod.map f g : W ⨿ X ⟶ Y ⨿ Z.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.prod.comp_lift {C : Type u} [Category.{v, u} C] {V W X Y : C} [HasBinaryProduct X Y] (f : V ⟶ W) (g : W ⟶ X) (h : W ⟶ Y) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.coprod.desc_comp {C : Type u} [Category.{v, u} C] {V W X Y : C} [HasBinaryCoproduct X Y] (f : W ⟶ V) (g : X ⟶ W) (h : Y ⟶ W) :
                                          theorem CategoryTheory.Limits.prod.comp_lift_assoc {C : Type u} [Category.{v, u} C] {V W X Y : C} [HasBinaryProduct X Y] (f : V ⟶ W) (g : W ⟶ X) (h : W ⟶ Y) {Z : C} (h✝ : X ⨯ Y ⟶ Z) :
                                          theorem CategoryTheory.Limits.coprod.desc_comp_assoc {C : Type u} [Category.{v, u} C] {V W X Y : C} [HasBinaryCoproduct X Y] (f : W ⟶ V) (g : X ⟶ W) (h : Y ⟶ W) {Z : C} (h✝ : V ⟶ Z) :
                                          @[deprecated CategoryTheory.Limits.coprod.codiag_comp (since := "2026-09-26")]

                                          Alias of CategoryTheory.Limits.coprod.codiag_comp.

                                          @[simp]
                                          @[simp]
                                          @[simp]
                                          theorem CategoryTheory.Limits.prod.lift_map {C : Type u} [Category.{v, u} C] {V W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : V ⟶ W) (g : V ⟶ X) (h : W ⟶ Y) (k : X ⟶ Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.coprod.map_desc {C : Type u} [Category.{v, u} C] {V W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : W ⟶ V) (g : X ⟶ V) (h : Y ⟶ W) (k : Z ⟶ X) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.prod.lift_map_assoc {C : Type u} [Category.{v, u} C] {V W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : V ⟶ W) (g : V ⟶ X) (h : W ⟶ Y) (k : X ⟶ Z) {Z✝ : C} (h✝ : Y ⨯ Z ⟶ Z✝) :
                                          theorem CategoryTheory.Limits.coprod.map_desc_assoc {C : Type u} [Category.{v, u} C] {V W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : W ⟶ V) (g : X ⟶ V) (h : Y ⟶ W) (k : Z ⟶ X) {Z✝ : C} (h✝ : V ⟶ Z✝) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.prod.map_map {C : Type u} [Category.{v, u} C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [HasBinaryProduct A₁ B₁] [HasBinaryProduct A₂ B₂] [HasBinaryProduct A₃ B₃] (f : A₁ ⟶ A₂) (g : B₁ ⟶ B₂) (h : A₂ ⟶ A₃) (k : B₂ ⟶ B₃) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.coprod.map_map {C : Type u} [Category.{v, u} C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [HasBinaryCoproduct A₁ B₁] [HasBinaryCoproduct A₂ B₂] [HasBinaryCoproduct A₃ B₃] (h : A₃ ⟶ A₂) (k : B₃ ⟶ B₂) (f : A₂ ⟶ A₁) (g : B₂ ⟶ B₁) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.coprod.map_map_assoc {C : Type u} [Category.{v, u} C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [HasBinaryCoproduct A₁ B₁] [HasBinaryCoproduct A₂ B₂] [HasBinaryCoproduct A₃ B₃] (h : A₃ ⟶ A₂) (k : B₃ ⟶ B₂) (f : A₂ ⟶ A₁) (g : B₂ ⟶ B₁) {Z : C} (h✝ : A₁ ⨿ B₁ ⟶ Z) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.prod.map_map_assoc {C : Type u} [Category.{v, u} C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [HasBinaryProduct A₁ B₁] [HasBinaryProduct A₂ B₂] [HasBinaryProduct A₃ B₃] (f : A₁ ⟶ A₂) (g : B₁ ⟶ B₂) (h : A₂ ⟶ A₃) (k : B₂ ⟶ B₃) {Z : C} (h✝ : A₃ ⨯ B₃ ⟶ Z) :
                                          noncomputable def CategoryTheory.Limits.prod.mapIso {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                          W ⨯ X ≅ Y ⨯ Z

                                          If the products W ⨯ X and Y ⨯ Z exist, then every pair of isomorphisms f : W ≅ Y and g : X ≅ Z induces an isomorphism prod.mapIso f g : W ⨯ X ≅ Y ⨯ Z.

                                          Equations
                                          Instances For
                                            noncomputable def CategoryTheory.Limits.coprod.mapIso {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                            W ⨿ X ≅ Y ⨿ Z

                                            If the coproducts W ⨿ X and Y ⨿ Z exist, then every pair of isomorphisms f : W ≅ Y and g : W ≅ Z induces an isomorphism coprod.mapIso f g : W ⨿ X ≅ Y ⨿ Z.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Limits.coprod.mapIso_inv {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                              (mapIso f g).inv = map f.inv g.inv
                                              @[simp]
                                              theorem CategoryTheory.Limits.prod.mapIso_hom {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                              (mapIso f g).hom = map f.hom g.hom
                                              @[simp]
                                              theorem CategoryTheory.Limits.coprod.mapIso_hom {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                              (mapIso f g).hom = map f.hom g.hom
                                              @[simp]
                                              theorem CategoryTheory.Limits.prod.mapIso_inv {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : W ≅ Y) (g : X ≅ Z) :
                                              (mapIso f g).inv = map f.inv g.inv
                                              instance CategoryTheory.Limits.isIso_prod {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryProduct W X] [HasBinaryProduct Y Z] (f : W ⟶ Y) (g : X ⟶ Z) [IsIso f] [IsIso g] :
                                              instance CategoryTheory.Limits.isIso_coprod {C : Type u} [Category.{v, u} C] {W X Y Z : C} [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] (f : Y ⟶ W) (g : Z ⟶ X) [IsIso f] [IsIso g] :
                                              instance CategoryTheory.Limits.prod.map_mono {C : Type u_1} [Category.{v_1, u_1} C] {W X Y Z : C} (f : W ⟶ Y) (g : X ⟶ Z) [Mono f] [Mono g] [HasBinaryProduct W X] [HasBinaryProduct Y Z] :
                                              Mono (map f g)
                                              instance CategoryTheory.Limits.coprod.map_epi {C : Type u_1} [Category.{v_1, u_1} C] {W X Y Z : C} (f : Y ⟶ W) (g : Z ⟶ X) [Epi f] [Epi g] [HasBinaryCoproduct W X] [HasBinaryCoproduct Y Z] :
                                              Epi (map f g)
                                              @[reducible, inline]

                                              A category HasBinaryProducts if it has all limits of shape Discrete WalkingPair, i.e. if it has a product for every pair of objects.

                                              Equations
                                              Instances For
                                                @[reducible, inline]

                                                A category HasBinaryCoproducts if it has all colimit of shape Discrete WalkingPair, i.e. if it has a coproduct for every pair of objects.

                                                Equations
                                                Instances For

                                                  If C has all limits of diagrams pair X Y, then it has all binary products

                                                  If C has all colimits of diagrams pair X Y, then it has all binary coproducts

                                                  noncomputable def CategoryTheory.Limits.prod.braiding {C : Type u} [Category.{v, u} C] (P Q : C) [HasBinaryProduct P Q] [HasBinaryProduct Q P] :
                                                  P ⨯ Q ≅ Q ⨯ P

                                                  The braiding isomorphism which swaps a binary product.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    noncomputable def CategoryTheory.Limits.coprod.braiding {C : Type u} [Category.{v, u} C] (P Q : C) [HasBinaryCoproduct P Q] [HasBinaryCoproduct Q P] :
                                                    P ⨿ Q ≅ Q ⨿ P

                                                    The braiding isomorphism which swaps a binary coproduct.

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

                                                      The braiding isomorphism can be passed through a map by swapping the order.

                                                      The braiding isomorphism can be passed through a map by swapping the order.

                                                      The braiding isomorphism is symmetric.

                                                      The braiding isomorphism is symmetric.

                                                      The braiding isomorphism is symmetric.

                                                      The braiding isomorphism is symmetric.

                                                      noncomputable def CategoryTheory.Limits.prod.associator {C : Type u} [Category.{v, u} C] [HasBinaryProducts C] (P Q R : C) :
                                                      (P ⨯ Q) ⨯ R ≅ P ⨯ Q ⨯ R

                                                      The associator isomorphism for binary products.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        noncomputable def CategoryTheory.Limits.coprod.associator {C : Type u} [Category.{v, u} C] [HasBinaryCoproducts C] (P Q R : C) :
                                                        (P ⨿ Q) ⨿ R ≅ P ⨿ Q ⨿ R

                                                        The associator isomorphism for binary coproducts.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          theorem CategoryTheory.Limits.prod.associator_naturality {C : Type u} [Category.{v, u} C] [HasBinaryProducts C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₂) (f₃ : X₃ ⟶ Y₃) :
                                                          CategoryStruct.comp (map (map f₁ f₂) f₃) (associator Y₁ Y₂ Y₃).hom = CategoryStruct.comp (associator X₁ X₂ X₃).hom (map f₁ (map f₂ f₃))
                                                          theorem CategoryTheory.Limits.prod.associator_naturality_assoc {C : Type u} [Category.{v, u} C] [HasBinaryProducts C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₂) (f₃ : X₃ ⟶ Y₃) {Z : C} (h : Y₁ ⨯ Y₂ ⨯ Y₃ ⟶ Z) :
                                                          CategoryStruct.comp (map (map f₁ f₂) f₃) (CategoryStruct.comp (associator Y₁ Y₂ Y₃).hom h) = CategoryStruct.comp (associator X₁ X₂ X₃).hom (CategoryStruct.comp (map f₁ (map f₂ f₃)) h)
                                                          noncomputable def CategoryTheory.Limits.prod.leftUnitor {C : Type u} [Category.{v, u} C] [HasTerminal C] (P : C) [HasBinaryProduct (⊤_ C) P] :
                                                          (⊤_ C) ⨯ P ≅ P

                                                          The left unitor isomorphism for binary products with the terminal object.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            noncomputable def CategoryTheory.Limits.coprod.leftUnitor {C : Type u} [Category.{v, u} C] [HasInitial C] (P : C) [HasBinaryCoproduct (⊥_ C) P] :
                                                            (⊥_ C) ⨿ P ≅ P

                                                            The left unitor isomorphism for binary coproducts with the initial object.

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

                                                              The right unitor isomorphism for binary products with the terminal object.

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

                                                                The right unitor isomorphism for binary coproducts with the initial object.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  @[deprecated CategoryTheory.Limits.coprod.leftUnitor_hom_naturality (since := "2026-09-26")]

                                                                  Alias of CategoryTheory.Limits.coprod.leftUnitor_hom_naturality.

                                                                  @[deprecated CategoryTheory.Limits.coprod.rightUnitor_hom_naturality (since := "2026-09-26")]

                                                                  Alias of CategoryTheory.Limits.coprod.rightUnitor_hom_naturality.

                                                                  @[deprecated CategoryTheory.Limits.prod.rightUnitor_inv_naturality (since := "2026-09-26")]

                                                                  Alias of CategoryTheory.Limits.prod.rightUnitor_inv_naturality.

                                                                  @[deprecated CategoryTheory.Limits.prod.rightUnitor_inv_naturality_assoc (since := "2026-09-26")]

                                                                  Alias of CategoryTheory.Limits.prod.rightUnitor_inv_naturality_assoc.

                                                                  theorem CategoryTheory.Limits.coprod.associator_naturality {C : Type u} [Category.{v, u} C] [HasBinaryCoproducts C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₂) (f₃ : X₃ ⟶ Y₃) :
                                                                  CategoryStruct.comp (map (map f₁ f₂) f₃) (associator Y₁ Y₂ Y₃).hom = CategoryStruct.comp (associator X₁ X₂ X₃).hom (map f₁ (map f₂ f₃))
                                                                  @[implicit_reducible]

                                                                  The binary product functor.

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

                                                                    The binary coproduct functor.

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.coprod.functor_map_app {C : Type u} [Category.{v, u} C] [HasBinaryCoproducts C] {Y✝ X✝ : C} (f : Y✝ ⟶ X✝) (T : C) :
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.prod.functor_map_app {C : Type u} [Category.{v, u} C] [HasBinaryProducts C] {X✝ Y✝ : C} (f : X✝ ⟶ Y✝) (T : C) :
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.prod.functor_obj_map {C : Type u} [Category.{v, u} C] [HasBinaryProducts C] (X : C) {x✝ x✝¹ : C} (g : x✝ ⟶ x✝¹) :
                                                                      @[simp]
                                                                      theorem CategoryTheory.Limits.coprod.functor_obj_map {C : Type u} [Category.{v, u} C] [HasBinaryCoproducts C] (X : C) {x✝ x✝¹ : C} (g : x✝ ⟶ x✝¹) :

                                                                      Construct HasBinaryProduct Y X from HasBinaryProduct X Y. This can't be an instance, as it would cause a loop in typeclass search.

                                                                      @[implicit_reducible]
                                                                      noncomputable def CategoryTheory.Over.coprodObj {C : Type u} [Category.{v, u} C] [Limits.HasBinaryCoproducts C] {A : C} :
                                                                      Over A → Functor (Over A) (Over A)

                                                                      Auxiliary definition for Over.coprod.

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem CategoryTheory.Over.coprodObj_map {C : Type u} [Category.{v, u} C] [Limits.HasBinaryCoproducts C] {A : C} (a✝ : Over A) {X✝ Y✝ : Over A} (k : X✝ ⟶ Y✝) :
                                                                        @[implicit_reducible]
                                                                        noncomputable def CategoryTheory.Over.coprod {C : Type u} [Category.{v, u} C] [Limits.HasBinaryCoproducts C] {A : C} :
                                                                        Functor (Over A) (Functor (Over A) (Over A))

                                                                        A category with binary coproducts has a functorial sup operation on over categories.

                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem CategoryTheory.Over.coprod_map_app {C : Type u} [Category.{v, u} C] [Limits.HasBinaryCoproducts C] {A : C} {X✝ Y✝ : Over A} (k : X✝ ⟶ Y✝) (g : Over A) :