The Unapologetic Mathematician

Mathematics for the interested outsider

Limits in functor categories

Today I want to give a great example of creation of limits that shows how useful it can be. For motivation, take a set X, a monoid M, and consider the set M^X of functions from X to M. Then M^X inherits a monoid structure from that on M. Just define \left[f_1f_2\right](x)=f_1(x)f_2(x) and take the function sending every element to the identity of M as the identity of M^X. We’re going to do the exact same thing in categories, but with having limits instead of a monoid structure.

As a preliminary result we need to note that if we have a set of categories \mathcal{C}_s for s\in S each of which has \mathcal{J}-limits, then the product category \prod\limits_{s\in S}\mathcal{C}_s has \mathcal{J}-limits. Indeed, a functor from \mathcal{J} to the product consists of a list of functors from \mathcal{J} to each category \mathcal{C}_s, and each of these has a limiting cone. These clearly assemble into a limiting cone for the overall functor.

The special case we’re interested here is when all \mathcal{C} are the same category. Then the product category \prod\limits_S\mathcal{C} is equivalent to the functor category \mathcal{C}^S, where we consider S as a discrete category. If \mathcal{C} has \mathcal{J}-limits, then so does \mathcal{C}^S for any set S.

Now, any small category \mathcal{S} has a discrete subcategory |\mathcal{S}|: its set of objects. There is an inclusion functor i:\left|\mathcal{S}\right|\rightarrow\mathcal{S}. This gives rise to a functor \mathcal{C}^i:\mathcal{C}^\mathcal{S}\rightarrow\mathcal{C}^{|\mathcal{S}|}. A functor F:\mathcal{S}\rightarrow\mathcal{C} gets sent to the functor F\circ i:\left|\mathcal{S}\right|\rightarrow\mathcal{C}. I claim that \mathcal{C}^i creates all limits.

Before I prove this, let’s expand a bit to understand what it means. Given a functor F:\mathcal{J}\rightarrow\mathcal{C}^\mathcal{S} and an object S\in\mathcal{S} we can get a functor \left[F(\underline{\hphantom{X}})\right](S):\mathcal{J}\rightarrow\mathcal{C} that takes an object J\in\mathcal{J} and evaluates F(J) at S. This is an |\mathcal{S}|-indexed family of functors to \mathcal{C}, which is a functor to \mathcal{C}^{|\mathcal{S}|}. A limit of this functor consists of a limit for each of the family of functors. The assertion is that if we have such a limit — a \mathcal{J}-limit in \mathcal{C} for each object of \mathcal{S} — then these limits over each object assemble into a functor in \mathcal{C}^\mathcal{S}, which is the limit of our original F.

We have a limiting cone \lambda_{J,S}:L(S)\rightarrow[F(J)](S) for each object S\in\mathcal{S}. What we need is an arrow L(s):L(S_1)\rightarrow L(S_2) for each arrow s:S_1\rightarrow S_2 in \mathcal{S} and a natural transformation L\rightarrow F(J) for each J\in\mathcal{J}. Here’s the diagram we need:
Pointwise Limits Diagram

We consider an arrow j:J_1\rightarrow J_2 in \mathcal{J}. The outer triangle is the limiting cone for the object S_1, and the inner triangle is the limiting cone for the object S_2. The bottom square commutes because F is functorial in \mathcal{S} and \mathcal{J} separately. The two diagonal arrows towards the bottom are the functors F(J_1) and F(J_2) applied to the arrow s. Now for each J we get a composite arrow \left[F(J)\right](s)\circ\lambda_{J,S_1}:L(S_1)\rightarrow\left[F(J)\right](S_2), which is a cone on \left[F(\underline{\hphantom{X}})\right](S_2). Since \lambda_{J,S_2}:L(S_2)\rightarrow\left[F(J)\right](S_2) is a limiting cone on this functor we get a unique arrow L(s):L(S_1)\rightarrow L(S_2).

We now know how L must act on arrows of \mathcal{S}, but we need to know that it’s a functor — that it preserves compositions. To do this, try to see the diagram above as a triangular prism viewed down the end. We get one such prism for each arrow s, and for composable arrows we can stack the prisms end-to-end to get a prism for the composite. The uniqueness from the universal property now tells us that such a prism is unique, so the composition must be preserved.

Finally, for the natural transformations required to make this a cone, notice that the sides of the prism are exactly the naturality squares for a transformation from L to F(J_1) and F(J_2), so the arrows in the cones give us the components of the natural transformations we need. The proof that this is a limiting cone is straightforward, and a good exercise.

The upshot of all this is that if \mathcal{C} has \mathcal{J}-limits, then so does \mathcal{C}^\mathcal{S}. Furthermore, we can evaluate such limits “pointwise”: \left[\varprojlim_\mathcal{J}F\right](S)=\varprojlim_\mathcal{J}(F(S)).

As another exercise, see what needs to be dualized in the above argument (particularly in the diagram) to replace “limits” with “colimits”.

June 23, 2007 - Posted by | Category theory


  1. wow, your blog is all math. this is very much an interest to you isn’t it? are you a professor? and are you from maryland?

    Comment by Hallie Honey | June 23, 2007 | Reply

  2. I grew up a long time in Maryland and did my undergraduate work at College Park. I completed my Ph.D. at Yale, and yes, I’ll be a professor in the math department at Tulane in the fall. Until then I’m hanging around central Maryland where my parents still live.

    Comment by John Armstrong | June 23, 2007 | Reply

  3. Hi John,

    Under suitable assumptions on your category C (e.g., if C has arbitrary *coproducts* (!)), there’s another way of deriving this result, using the fact that the functor C^S –> C^|S| is monadic, hence preserves and reflects (creates) any limits which happen to exist. (I haven’t checked; have you talked about the Eilenberg-Moore category of algebras somewhere on your blog?) Similarly, if C has arbitrary products, then C^S –> C^|S| is comonadic.

    Comment by Todd Trimble | June 24, 2007 | Reply

  4. No, I haven’t gone into Eilenberg-Moore, nor monads. In fact, I haven’t quite talked about monoidal categories yet, which would be a precursor (in my mind) to that sort of thing. It’s a good point, though.

    Comment by John Armstrong | June 24, 2007 | Reply

  5. […] the proof of this is so similar to how we established limits in categories of functors, I’ll just refer you back to that and suggest this as practice with those […]

    Pingback by Taking limits is functorial « The Unapologetic Mathematician | June 24, 2007 | Reply

  6. Lots of new non-parsing formulas in this one

    Comment by Avery | January 8, 2008 | Reply

  7. If I is a small category ans it has an initial object, i, how can I prove that any functor F:I->C has limit and the limit is F(i) ?

    Comment by Lucia | February 2, 2009 | Reply

  8. Lucia, I am not in the business of doing your homework.

    Comment by John Armstrong | February 2, 2009 | Reply

  9. Thank you 🙂 you were very helpful:)

    Comment by Lucia | February 2, 2009 | Reply

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: