In category theory, the coproduct, or categorical sum, is the category-theoretic construction which subsumes the disjoint union of sets and of topological spaces, the free product of groups, and the direct sum of modules and vector spaces. The coproduct of a family of objects is essentially the "most general" object to which each object in the family admits a morphism. It is the category-theoretic dual notion to the categorical product, which means the definition is the same as the product but with all arrows reversed. Despite this innocuous-looking change in the name and notation, coproducts can be and typically are dramatically different from products.
DefinitionThe formal definition is as follows: Let C be a category and let be an indexed family of objects in C. The coproduct of the set is an object X together with a collection of morphisms ij : Xj → X (called canonical injections although they need not be injections or even monic) which satisfy a universal property: for any object Y and any collection of morphisms fj : Xj → Y, there exists a unique morphism f from X to Y such that fj = f O ij. That is, the following diagram commutes (for each j):
The coproduct of the family is often denoted
- X = \coprod_X_j
- X = \bigoplus_ X_j.
Sometimes the morphism f may be denoted
- f=\coprod_ f_j: \coprod_ X_j \to Y
If the family of objects consists of only two members the product is usually written X1 ∐ X2 or X1 ⊕ X2 or sometimes simply X1 + X2, and the diagram takes the form:
The unique arrow f making this diagram commute is then correspondingly denoted f1 ∐ f2 or f1 ⊕ f2 or f1 + f2 or [f1, f2].
ExamplesThe coproduct in the category of sets is simply the disjoint union with the maps ij being the inclusion maps. Unlike direct products, coproducts in other categories are not all obviously based on the notion for sets, because unions don't behave well with respect to preserving operations (e.g. the union of two groups need not be a group), and so coproducts in different categories can be dramatically different from each other. For example, the coproduct in the category of groups, called the free product, is quite complicated. On the other hand, in the category of abelian groups (and equally for vector spaces), the coproduct, called the direct sum, consists of the elements of the direct product which have only finitely many nonzero terms (this therefore coincides exactly with the direct product, in the case of finitely many factors). As a consequence, since most introductory linear algebra courses deal with only finite-dimensional vector spaces, nobody really hears much about direct sums until later on.
In the case of topological spaces coproducts are disjoint unions with their disjoint union topologies. That is it is a disjoint union of the underlying sets, and the open sets are sets open in each of the spaces, in a rather evident sense. In the category of pointed spaces, fundamental in homotopy theory, the coproduct is the wedge sum (which amounts to joining a collection of spaces with base points at a common base point).
Despite all this dissimilarity, there is still, at the heart of the whole thing, a disjoint union: the direct sum of abelian groups is the group generated by the "almost" disjoint union (disjoint union of all nonzero elements, together with a common zero), similarly for vector spaces: the space spanned by the "almost" disjoint union; the free product for groups is generated by the set of all letters from a similar "almost disjoint" union where no two elements from different sets are allowed to commute.
The coproduct construction given above is actually a special case of a colimit in category theory. The coproduct in a category C can be defined as the colimit of any functor from a discrete category J into C. Not every family will have a coproduct in general, but if it does, then the coproduct is unique in a strong sense: if ij : Xj → X and kj : Xj → Y are two coproducts of the family , then (by the definition of coproducts) there exists a unique isomorphism f : X → Y such that ij = kj f for each j in J.
As with any universal property, the coproduct can be understood as a universal morphism. Let Δ: C → C×C be the diagonal functor which assigns to each object X the ordered pair (X,X) and to each morphism f:X → Y the pair (f,f). Then the coproduct X+Y in C is given by a universal morphism to the functor Δ from the object (X,Y) in C×C.
The coproduct indexed by the empty set (that is, an empty coproduct) is the same as an initial object in C.
If J is a set such that all coproducts for families indexed with J exist, then it is possible to choose the products in a compatible fashion so that the coproduct turns into a functor CJ → C. The coproduct of the family is then often denoted by ∐j Xj, and the maps ij are known as the natural injections.
Letting HomC(U,V) denote the set of all morphisms from U to V in C (that is, a hom-set in C), we have a natural isomorphism
- \operatorname_C\left(\coprod_X_j,Y\right) \cong \prod_\operatorname_C(X_j,Y)
- (f_j)_ \in \prod_\operatorname(X_j,Y)
- \coprod_ f_j \in \operatorname\left(\coprod_X_j,Y\right).
- (f\circ i_j)_.
If J is a finite set, say J = , then the coproduct of objects X1,...,Xn is often denoted by X1⊕...⊕Xn. Suppose all finite coproducts exist in C, coproduct functors have been chosen as above, and 0 denotes the initial object of C corresponding to the empty coproduct. We then have natural isomorphisms
- X\oplus (Y \oplus Z)\cong (X\oplus Y)\oplus Z\cong X\oplus
- X\oplus 0 \cong 0\oplus X \simeq X
- X\oplus Y \cong Y\oplus X
- X\oplus 0 \cong 0\oplus X \simeq X
If the category has a zero object Z, then we have unique morphism X → Z (since Z is terminal) and thus a morphism X ⊕ Y → Z ⊕ Y. Since Z is also initial, we have a canonical isomorphism Z ⊕ Y ≅ Y as in the preceding paragraph. We thus have morphisms X ⊕ Y → X and X ⊕ Y → Y, by which we infer a canonical morphism X ⊕ Y → X×Y. This may be extended by induction to a canonical morphism from any finite coproduct to the corresponding product. This morphism need not in general be an isomorphism; in Grp it is a proper epimorphism while in Set* (the category of pointed sets) it is a proper monomorphism. In any preadditive category, this morphism is an isomorphism and the corresponding object is known as the biproduct. A category with all finite biproducts is known as an additive category.
Coproducts are actually special cases of colimits in category theory. The coproduct can be defined as the colimit of a discrete subcategory in C. It follows that if coproducts exists in a given category (they need not) they are unique up to a unique isomorphism that respects the injections.
If all families of objects indexed by J have coproducts in C, then the coproduct comprises a functor CJ → C. Note that, like the product, this functor is covariant.
coproducts in German: Koprodukt