The Unapologetic Mathematician

Mathematics for the interested outsider

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