I have been recently reading through Emily Riehl‘s “Category Theory in Context“, when I came across the following puzzle:

To whet the reader’s appetite, let us pose the following puzzle. Fixing two objects

A,Bin a locally small category, define a functorC(CA, −) ×(CB, −):→CSetthat carries an objectXto the set(CA,X) ×(CB,X) whose elements are pairs of mapsa:A→Xandb:B→Xin. What would it mean for this functor to be representable?C

My initial response was almost one of bewilderment. I still don’t really feel like I understand representability of functors, and while I can follow the arguments that prove (for example) that represents the forgetful functor * Grp* →

*, I don’t really have a strong idea for how one would come up with a representing object for a given functor.*

**Set**I had mostly moved past this point in the book, but came back to idly muse over it, and I found the though-process involved—and how I “solved” this puzzle—to be quite interesting, as it seems to touch on a lot of the benefits of having a broad base of mathematical knowledge which affords multiple ways to think about the same concept.

Here is roughly how my thoughts went. I first noted that if this functor were representable, all we are would be saying is that it is equivalent to a functor of the form * C*(

*R*, −) for some object

*R*in

*. That is, we would have natural isomorphism*

**C**for every *X* in * C*. This is nothing but writing down the definition of a representable functor.

Next, I idly noted that we sometimes write as a shorthand—at least, in some categories—the set of morphisms * C*(

*A*,

*X*) as

*X*. If we treat this as a purely formal replacement, we might try something like the following:

^{A}which is true for integers. However, it is true in other contexts, depending on how you define ‘+’! For example, if we define for sets *A* and *B* their sum *A* + *B* to be their disjoint union (often denoted ), then this is still correct. It then hit me that the key is that is a *coproduct*. And then it further hit me that that’s exactly what the solution to the puzzle is: the functor is representable exactly when *A* and *B* have a coproduct in the category * C*!

So I found myself for the first time, truly understanding a part of representability. And it came from a strange source: performing formal manipulations (which may not even make sense!), just to see what happens, and connecting it to some other concept that I knew. It was kind of fun to watch me work my way through this, a mix of idle play and insight that let to a better understanding of a concept of which I’d always had a murky understanding.

However, I came to feel a little unsatisfied with this as my resolution of this puzzle. It seemed to rely on a trick, or a bit of knowledge that had I not had, I would not have been able to resolve this. In a sense, I feel that it didn’t really give me a better hands-on understanding, I just formally danced my way past really digging into it. In particular, it did not requite me at any point to dig into the Yoneda lemma, which still feels like it remains an obstacle in my understanding.

So let’s look at it in that light, which may illuminate the concept a little bit more. According to my understanding of Yoneda, we should produce a diagram like so:

where the vertical maps are induced by the (hypothetical) map *R* → *X*, and the horizontal ones by the natural isomorphism. But this diagram simply says that a pair of maps *A, B* → *X* must factor through *R*: that is, we have a unique (!) factorization through the vertical arrow *R* → *X* below.

Ok, so maybe I do understand this a little better now.

As an aside: here are what some other coproducts are, just to be clear that they are not all disjoint unions:

- In
, the coproduct is the same as the product, i.e. the direct product.Ab- In
, the coproduct is the free product of groups.Grp- In
Set_{*}and inTop_{*}, the coproduct is the same as the pushouti.e. it is a type of gluing.