The Unapologetic Mathematician

Mathematics for the interested outsider

Monoid Objects

Now it’s time to start getting into the fun things we can do with monoidal categories. For my first trick, I’m going to build a neat monoidal category \mathcal{M} and show you what we can do with it.

Any monoidal category has an “identity” object \mathbf{1}, so to make it a bit more interesting let’s throw in a single non-identity object M. Then we get for free all the monoidal products built with M and \mathbf{1}. Let’s make our lives easier by saying our category is strict. Then all our objects look like M^{\otimes n} — the monoidal product of n copies of M. We can see that \mathbf{1}=M^{\otimes0}, and that M^{\otimes n_1}\otimes M^{\otimes n_2}=M^{\otimes(n_1+n_2)}.

This is all well and good, but we still don’t really have much going on here. All the morphisms in sight are identities. We don’t even have associators or unit isomorphisms because our category is strict. So let’s throw in a couple morphisms, and of course all the other ones we can build from them.

First let’s make our category symmetric. That is, we’ll add a “twist” \tau:M\otimes M\rightarrow M\otimes M that swaps the copies of M. We’ll insist that it satisfy \tau^2=1_{M\otimes M}. We can then build a braiding \beta_{M^{\otimes n_1},M^{\otimes n_2}}:M^{\otimes n_1}\otimes M^{\otimes n_2} by swapping the copies of M one at a time. This seems a little silly at first glance. If M had any additional structure — if it was a set, for instance — this would be clearly useful. As it stands, though, the use isn’t apparent. Don’t worry, we’ll get to it.

Next, let’s add a morphism e:\mathbf{1}\rightarrow M. From this we can get a bunch of other morphisms. For example, 1_M\otimes e:M\otimes\mathbf{1}\rightarrow M\otimes M or e\otimes1_M:\mathbf{1}\otimes M\rightarrow M\otimes M. We can use this one to increase the number of copies of M in a product in many different ways, depending on where we stick the new copy of M.

But we could also add a new copy of M in one place and use the symmetric structure to move it to a different place. For example, instead of adding a copy on the right with 1_M\otimes e, we could instead use \tau\circ(e\otimes1_M) to add a copy on the left and then swap the two. Notice also that 1_M=\beta_{\mathbf{1},M} and \tau=\beta_{M,M}, which means that these two morphisms are (1_M\otimes e)\circ\beta_{\mathbf{1},M} and \beta_{M,M}\circ(e\otimes1_M). The naturality of \beta says that these two are really the same. So, adding a new copy of M and then moving it around immediately to another position is the same as just adding it in the new position right away.

Now let’s add a way to reduce the number of copies. We’ll use a morphism m:M\otimes M\rightarrow M. Of course, we get for free such compositions as (m\otimes1_M)\circ(1_M\otimes\tau):M^{\otimes3}\rightarrow M^{\otimes2} and m\circ(e\otimes1_M):M\rightarrow M. There will be some equalities arising from the naturality of \beta, but nothing too important yet.

So let’s throw in a few more equalities. Let’s say that m\circ(m\otimes1_M)=m\circ(1_M\otimes m) and that m\circ(e\otimes1_M)=1_M=m\circ(1_M\otimes e). And of course there are other equalities we can build from these. The whole thing should start looking a bit familiar by this point.

Okay, so we’ve got ourselves a strict monoidal category \mathcal{M} with a bunch of objects and a few morphisms satisfying some equations. So what? Well, let’s start looking at symmetric monoidal functors from \mathcal{M} into other symmetric monoidal categories.

The first monoidal category we’ll look at is \mathbf{Set}, which uses the cartesian product as its monoidal structure. What does a monoidal functor F:\mathcal{M}\rightarrow\mathbf{Set} look like? Well, F(M) is some set X, and by monoidality we see that F(M^{\otimes n})=X^{\times n} — the cartesian product of n copies of X. In particular, F(\mathbf{1})=\{*\}: a set with a single element.

The symmetry for \mathbf{Set} is the natural isomorphism \beta_{A,B}:A\times B\rightarrow B\times A defined by \beta_{A,B}: (a,b)\mapsto(b,a). In particular, we get F(\tau)=\beta_{X,X}: (x_1,x_2)\mapsto(x_2,x_1).

The morphism e:\mathbf{1}\rightarrow M now becomes F(e)=1:\{*\}\rightarrow X, which picks out a particular point of X. Let’s call this point 1, just like the function that picks it out.

The morphism m:M\otimes M\rightarrow M is now a function F(m)=\mu:X\otimes X\rightarrow X. The equations that we imposed in \mathcal{M} must still apply here: \mu\circ(\mu\times1_X)=\mu\circ(1_X\times\mu) and \mu\circ(1\otimes1_X)=1_X=\mu\circ(1_X\otimes1). Since we’re in the category of sets, let’s just write these all out as functions and see what they do to particular elements.

The first equation is between two functions with source X\times X\times X, so let’s pick an arbitary element (x_1,x_2,x_3) to follow. The left side of the equation sends this to \mu(\mu(x_1,x_2),x_3), while the right sends it to \mu(x_1,\mu(x_2,x_3)). The equation now reads \mu(\mu(x_1,x_2),x_3)=\mu(x_1,\mu(x_2,x_3)). But that’s just the associative law for a composition! The second equation is between three functions that all have source X. Starting with an arbitrary element x we read off the equation \mu(1,x)=x=\mu(x,1). And that’s the left and right unit law for a composition!

So what we see here is that X=F(M) gets the structure of a monoid. And given any monoid X we can construct such a symmetric monoidal functor with F(M)=X and sending m and e to the multiplication and identity functions.

Can we do better? Sure we can. Let’s say we’ve got a homomorphism between two monoids f:X_1\rightarrow X_2. We can consider this to be a function between their underlying sets. Immediately we get f^{\times n}:X_1^{\times n}\rightarrow X_2^{\times n} as well, applying f to each entry of the product. This is clearly symmetric. Saying that f preserves the multiplication of these monoids is just the same as saying that f\circ F_1(m)=F_2(m)\circ(f\times f), which is the naturality square for m. Similarly, preserving the identities is the same as making the naturality square for e commute. So a monoid homomorphism is the same as a natural transformation between these functors!

Let’s back up a bit and give our toy category a better name. Let’s call it \mathrm{Th}(\mathbf{Mon}) — the “theory of monoids”. What we’ve just seen is that our familiar category \mathbf{Mon} of monoids is “really” the category \mathbf{Set}^{\mathrm{Th}(\mathbf{Mon})} of symmetric monoidal functors from the “theory of monoids” to sets. We now slightly shift our terminology and instead of calling such a set-with-extra-structure a “monoid”, we call it a “monoid object in \mathbf{Set}“.

And now the road is clear to generalize. Given any symmetric monoidal category \mathcal{C} we can take the category \mathcal{C}^{\mathrm{Th}(\mathbf{Mon})} of “monoid objects in \mathcal{C}“.

[UPDATE]: On reflection, the symmetric property isn’t really essential. That is, we can just consider the category of monoidal functors from \mathrm{Th}(\mathbf{Mon}) to \mathcal{C}. In fact, there’s one example I’ll be getting to that doesn’t have a symmetry. In general, though, when the target category has a symmetry we’ll usually ask that our functors preserve that structure as well.

[UPDATE]: You know what? Scrap that whole symmetry bit altogether. Sometimes the target category will have symmetry and sometimes that will be helpful, but it’s just not worth it in the general theory. I’m almost sorry I brought it up in the first place.

July 23, 2007 Posted by | Category theory | 13 Comments