The Unapologetic Mathematician

Monoidal Functors and Natural Transformations

Now that we’ve got monoidal categories as the category-level analogue of monoids we need the category-level analogue of monoid homomorphisms. Recall that a monoid homomorphism is a function from the underlying set of one monoid to that of another that preserves the monoid compositions and identities. Since functors are the category-level version of functions, the natural thing to do is to ask for functors that preserves the monoidal category structure.

Of course it can’t be just that simple. As usual, we want to only ask for things to work out “up to isomorphism”. That is, given monoidal categories $\mathcal{C}$ and $\mathcal{D}$ — I’ll write $\otimes$ and $\mathbf{1}$ for both monoidal products and both identities and trust context to make clear which is which — we don’t want to insist that a functor $F:\mathcal{C}\rightarrow\mathcal{D}$ satisfies $F(\mathbf{1})=\mathbf{1}$ and $F(A\otimes B)=F(A)\otimes F(B)$ and so on. Instead we want natural isomorphisms to replace these equations.

So there should be an isomorphism $F_*:\mathbf{1}\rightarrow F(\mathbf{1})$ in $\mathcal{D}$. As specified objects of $\mathcal{D}$, both $\mathbf{1}$ and $F(\mathbf{1})$ are given by functors from the category $\bullet$ to $\mathcal{D}$, and an isomorphism between the objects is automatically a natural isomorphism between these functors.

There should also be a natural isomorphism $F_{(--)}:F(\underline{\hphantom{X}})\otimes F(\underline{\hphantom{X}})\rightarrow F(\underline{\hphantom{X}}\otimes\underline{\hphantom{X}})$. That is, for every pair of objects $A$ and $B$ of $\mathcal{C}$ there’s an isomorphism $F_{(A,B)}:F(A)\otimes F(B)\rightarrow F(A\otimes B)$ in $\mathcal{D}$, and these commute with arrows $A\rightarrow A'$ and $B\rightarrow B'$ in $\mathcal{C}$.

And, strictly speaking, we need such a natural isomorphism for every functor built from $\underline{\hphantom{X}}\otimes\underline{\hphantom{X}}$ and $\mathbf{1}$. For example, there should be a natural isomorphism $F_{(-((1-)-))}:F(\underline{\hphantom{X}})\otimes((F(\mathbf{1})\otimes F(\underline{\hphantom{X}}))\otimes F(\underline{\hphantom{X}}))\rightarrow F(\underline{\hphantom{X}}\otimes((\mathbf{1}\otimes\underline{\hphantom{X}})\otimes\underline{\hphantom{X}}))$. And, of course, all these isomorphisms should fit together well. This makes for a lot of data, and how are we going to manage it all?

The Coherence Theorem will come to our rescue! There’s a unique natural isomorphism built from $\alpha$s, $\lambda$s, and $\rho$s taking (say) $\underline{\hphantom{X}}\otimes((\mathbf{1}\otimes\underline{\hphantom{X}})\otimes\underline{\hphantom{X}})$ to $\underline{\hphantom{X}}\otimes(\underline{\hphantom{X}}\otimes\underline{\hphantom{X}})$ in $\mathcal{C}$ (call it $\gamma$) and another unique such isomorphism in $\mathcal{D}$ (call it $\delta$). So we can build the above isomorphism $F_{(-((1-)-))}$ as $F(\gamma^{-1})\circ F_{(-(--))}\circ\delta$. Now all we need is the natural isomorphisms for completely right-parenthesized products with no slots filled with identity objects.

And we can build these from the natural isomorphisms $F_{(--)}$ and $F_*$ (and make sure all the isomorphisms fit together well) — as long as these satisfy a few coherence conditions to make sure they play well with the associator and other structural isomorphisms: Similarly to the terminology for monoidal categories, if the natural isomorphisms $F_*$ and $F_{(--)}$ are actually identities (and thus so are all the others built from them) then we call $F$ a “strict monoidal functor”. Alternatively, some prefer to call what I’ve defined above a “weak monoidal functor”.

We aren’t quite done yet, though. At the level of sets we have sets and functions between them. Up at the category level we have categories, functors, and now also natural transformations, so we should also focus on the natural transformations that preserve monoidal structures. A monoidal natural transformation between monoidal functors $\eta:F\rightarrow G$ is a natural transformation satisfying $G_{(A,B)}\circ(\eta_A\otimes\eta_B)=\eta_{A\otimes B}\circ F_{(A,B)}$ and $G_*=\eta_\mathbf{1}\circ F_*$.

Now we have all the analogous tools for monoidal categories as we used for just plain categories to define equivalence. We say that two monoidal categories $\mathcal{C}$ and $\mathcal{D}$ are monoidally equivalent if there are monoidal functors $F:\mathcal{C}\rightarrow\mathcal{D}$ and $G:\mathcal{D}\rightarrow\mathcal{C}$ with monoidal natural isomorphisms $\eta:1_\mathcal{C}\rightarrow G\circ F$ and $\epsilon:F\circ G\rightarrow1_\mathcal{D}$.

It’s useful to verify at this point that the set of isomorphism classes of objects of a monoidal category $\mathcal{C}$ form a monoid $C$ with $\otimes$ as its composition and (the isomorphism class of) $\mathbf{1}$ as identity, a monoidal functor $F:\mathcal{C}\rightarrow\mathcal{D}$ induces a homomorphism of monoids $f:C\rightarrow D$, and an equivalence between $\mathcal{C}$ and $\mathcal{D}$ induces an isomorphism between the monoids $C$ and $D$. These are all pretty straightforward, and they’re good for getting used to the feel of how equalities weaken to isomorphisms as we move from sets to categories. Comment by jeremy | October 10, 2007 | Reply