# The Unapologetic Mathematician

## Limits and Colimits

One of the big tools in category theory is the limit of a functor. In fact, depending on the source category, limits give whole families of useful constructions, including (multiple) equalizers, (multiple) products, (multiple) pullbacks, and more we haven’t talked about yet. The dual notion of a colimit similarly generalizes (multiple) coequalizers, (multiple) coproducts, (multiple) pushouts, and so on.

Given a functor $F:\mathcal{J}\rightarrow\mathcal{C}$ the limit of $F$ (if it exists) is a couniversal cone on $F$ — a terminal object in the comma category $(\Delta\downarrow F)$. That is, it consists of an object $L$ and arrows $\lambda_J:L\rightarrow F(J)$ for each object $J\in\mathcal{J}$, and for any other object $X$ with arrows $\xi_J:X\rightarrow F(J)$ there is a unique arrow $\eta:X\rightarrow L$ with $\xi_J=\lambda_J\circ\eta$ for all $J\in\mathcal{J}$. We often write $L=\varprojlim_\mathcal{J}F$ to denote the limit of the functor $F$ from the category $\mathcal{J}$. As usual, limits are unique up to isomorphism.

Dually, the colimit of $F$ (if it exists) is a universal cocone on $F$ — an initial object in the comma category $(F\downarrow\Delta)$. It’s given by an object $L$ and arrows $\lambda_J:F(J)\rightarrow L$ so that for any other object $X$ and arrows $\xi_J:F(J)\rightarrow X$ there is a unique arrow $\eta:L\rightarrow X$ with $\xi_J=\eta\circ\lambda_J$ for all $J\in\mathcal{J}$. We often write $L=\varinjlim_\mathcal{J}F$ to denote the colimit of the functor $F$ from the category $\mathcal{J}$.

If $\mathcal{J}$ is a set — a category with only identity arrows — then a functor from $\mathcal{J}$ to $\mathcal{C}$ is a collection of objects of $\mathcal{C}$, one for each element of $\mathcal{J}$. The limit of this functor is the product of these objects, and the colimit is their coproduct.

If $\mathcal{J}$ consists of two objects with a set of parallel arrows from one to the other, then a functor from $\mathcal{J}$ to $\mathcal{C}$ is a collection of parallel morphisms in $\mathcal{C}$. The limit of this functor is the equalizer of the collection, and the colimit is their coequalizer.

Check for yourself that limits over the category $\bullet\rightarrow\bullet\leftarrow\bullet$ are pullbacks, while colimits over the category $\bullet\leftarrow\bullet\rightarrow\bullet$ are pushouts.

If the category $\mathcal{J}$ has an initial object $I$ then we have a unique arrow $\iota_J:I\rightarrow J$ for every object $J\in\mathcal{J}$. Now for any functor $F:\mathcal{J}\rightarrow\mathcal{C}$ we see that $F(I)=\varprojlim_\mathcal{J}F$. Indeed, we can just use $F(\iota_J)$ for the required arrows, which are compatible with all the other arrows from $\mathcal{J}$ because $F$ is a functor. Any other cone on $F$ must have an arrow $\xi_I:X\rightarrow F(I)$, and compatibility requires that any other arrow $\xi_J:X\rightarrow F(J)$ in the cone is the composition $F(\iota_J)\circ\xi_I$. So if $\mathcal{J}$ has an initial object then limits are trivial.

The interesting case is when $\mathcal{J}$ does not have an initial object. We can add a new object to $\mathcal{J}$ with a unique arrow to every other object, getting a category $\overline{\mathcal{J}}$ which does have an initial object. The question is whether a given functor $F:\mathcal{J}\rightarrow\mathcal{C}$ can be extended to a functor $\overline{F}:\overline{\mathcal{J}}\rightarrow\mathcal{C}$. If it can, then the image of the new initial object is the vertex of a cone on $F$. If there is a couniversal such extension, that’s the limit of $F$.

Dually, if $\mathcal{J}$ has a terminal object $T$ then $F(T)=\varinjlim_\mathcal{J}F$. If $\mathcal{J}$ doesn’t have a terminal object, we can add one to get a category $\underline{\mathcal{J}}$, and colimits tell us when and how we can extend a functor $F:\mathcal{J}\rightarrow\mathcal{C}$ “universally” to a functor $\underline{F}:\underline{\mathcal{J}}\rightarrow\mathcal{C}$.

If there exists a limit in $\mathcal{C}$ for any functor from a finite category $\mathcal{J}$ we say that $\mathcal{C}$ “has finite limits”. If there exists a limit for any functor from a small category $\mathcal{J}$ we say that $\mathcal{C}$ is “complete”. The dual conditions are that $\mathcal{C}$ “has finite colimits” and that $\mathcal{C}$ is “cocomplete”, respectively.

June 19, 2007 Posted by | Category theory | 11 Comments