Complete by definition, cocomplete by accident..?

I’ve already said countless times that objects of categories are essentially sets (via their representable functors), and this perspective allows us to port set-theoretic concepts and constructions over to objects of an arbitrary category. In particular, it allows us to construct categorical analogues of the axiom of pairing (via the categorical product) and the axiom schema of specification (via equalisers).

From this point of view, the fact that the category \mathbf{Set} of sets has arbitrary limits should be unsurprising—in fact, it should be tautological: limits are specifically designed to model element-wise constructions of sets, so of course \mathbf{Set} has all of these constructions!

Remark. It’s a bit reductive to say that this fact is tautological, since there is technically something to check, but the completeness of \mathbf{Set} is relatively immediate regardless.

More generally, objects of a category enriched in a (nice) monoidal category \mathcal V are generalisations of objects of \mathcal V itself, and we can likewise translate some constructions from the theory of \mathcal V to an arbitrary \mathcal V-enriched category \mathcal C.

For example, consider when \mathcal V = \mathbf{Ch}(\mathbb Z) is the category of complexes of abelian groups, with the usual tensor product. Given a chain complex M_\bullet, we can define a shifted chain complex M[n]_\bullet for any integer n by taking M[n]_k := M_{n+k}. Now, given an object x of a \mathbf{Ch}(\mathbb Z)-enriched category, we can likewise ask if we can construct a shift x[n].

To construct such a thing, note that maps N_\bullet\to M[n]_\bullet of chain complexes naturally correspond to maps N_\bullet\to M_\bullet that increase degree by n. Therefore, the analogous shift object x[n] in \mathcal C should be such that the k-chains \phi\in\mathrm{Hom}_{\mathcal C}(y, x[n])_k correspond naturally to (k+n)-chains \tilde\phi\in\mathrm{Hom}_{\mathcal C}(y, x)_{k+n}. This can be expressed by defining x[n] to be a weighted limit, where the limit is over the diagram F:*\to\mathcal C picking out the object x, and the weight is given by the functor W : * \to \mathbf{Ch}(\mathbb Z) that picks out the complex \mathbb Z[n]. In other words, x[n] is a representing object for the functor h_x[n] = \mathrm{Hom}_{\mathcal C}(-, x)[n] : \mathcal C^{\mathrm{op}} \xrightarrow{h_x} \mathbf{Ch}(\mathbb Z) \xrightarrow{(-)[n]} \mathbf{Ch}(\mathbb Z).

Such shifts need not exist in a general \mathbf{Ch}(\mathbb Z)-enriched category, just like how certain limits do not exist in general ordinary categories. However, of course \mathbf{Ch}(\mathbb Z) has shifts as defined above: this is by design!

Other examples come from (weak) 2-categories, which are enriched in the 2-category \mathbf{Cat} of (small) categories. On top of usual limit constructions (from the fact that small categories have sets of objects), we can move to general 2-categories various ordinary categorical constructions. For instance, if \mathcal C is a 2-category, and we have morphisms X\xrightarrow fZ\xleftarrow gY, then we can construct a comma object (f\downarrow g) to be completely analogous to the construction of a comma category in \mathbf{Cat}: specifically, it is the universal object (f\downarrow g) equipped with projections to X and Y and a 2-morphism as in the diagram

Explicitly, (f\downarrow g) can be defined as a weighted limit over the walking span \Lambda^2_2, where the limit is over the diagram F:\Lambda_2^2\to\mathcal C given by

weighted by the functor J:\Lambda_2^2\to\mathbf{Cat} given by

(which is to say that a morphism \phi:C\to(f\downarrow g) in \mathcal C is equivalent to giving morphisms \phi_X:C\to X and \phi_Y:C\to Y and a 2-morphism \phi_\alpha : f\circ\phi_X \Rightarrow g\circ\phi_Y). Rephrased, a comma object is precisely a representing object for the functor \big(\mathrm{Hom}_{\mathcal C}(-, f)\downarrow\mathrm{Hom}_{\mathcal C}(-, g)\big) : \mathcal C^{\mathrm{op}}\to\mathbf{Cat}. Again, the fact that \mathbf{Cat} has comma objects is essentially by design.


Now that I have asserted that completeness of \mathbf{Set} (and similarly the 2-completeness of \mathbf{Cat}) is automatic, let’s talk about a much less obvious fact: \mathbf{Set} also has arbitrary colimits (and \mathbf{Cat} has arbitrary 2-colimits)!

Limits formalise elementwise constructions in arbitrary categories and mimic limit constructions in sets, but colimits are also defined in terms of limit constructions in sets! In particular, the colimits in \mathbf{Set} are not used to define colimits in general: we could have defined colimits in arbitrary categories just as well even if \mathbf{Set} were not cocomplete.

Even if we look at the construction of colimits in \mathbf{Set}, they are not particularly easy to define. The coproduct \coprod_{i\in I}X_i is most readily defined using both the axiom of union and the axiom of pairing again to produce the set \bigcup_{i\in I}\big(\{i\}\times X_i\big) (to ensure the disjointness of the individual sets). Even worse, the coequaliser of two functions f, g : X\rightrightarrows Y is most easily defined by the set of equivalence classes in Y for the equivalence relation generated by the identifications f(x)\sim g(x) for every x\in X (in particular, the equivalence class is not even given easily). 2-colimits in \mathbf{Cat} are even worse to define.

This seems to suggest that \mathbf{Set} is cocomplete by accident.

However, this is not at all satisfying, because \mathbf{Set} satisfies a 2-universal property with respect to colimits: specifically, \mathbf{Set} is the free cocompletion of a singleton category (and, likewise, \mathbf{Cat} is the free 2-cocompletion of a singleton). More generally, the inclusion of an arbitrary small category \mathcal C into its category of presheaves \mathbf{PSh}(\mathcal C) exhibits the latter as the free cocompletion of \mathcal C. Is there a good philosophical reason for this?

Honestly, I am not sure; I am just putting my thoughts down here to possibly revisit in the future.

Leave a comment