Monoidal Categories

Posted on April 15, 2018 by James Leslie

In mathematics, we are familiar with putting structure on sets, for example a group is a set with a binary operation satisfying certain properties. We can extend this notion to categories. The first examples I came across in my studies were monoidal categories, which are used to abstract the notion of a tensor product, and have deep ties to quantum mechanics and physics.

A monoidal category is a category \(\mathcal{C}\) with a functor \( \otimes: \mathcal{C} \times \mathcal{C} \rightarrow \mathcal{C}\), an object \( I \in \mathcal{C}\) called the unit and the following natural isomorphisms, written in terms of their components:

  1. An associator \(\alpha_{A,B,C}: (A \otimes B) \otimes C \rightarrow A \otimes (B \otimes C)\),
  2. A left unitor \(\lambda_A: I \otimes A \rightarrow A\),
  3. A right unitor \(\rho_A: A \otimes I \rightarrow A\).

These maps all have to satisfy the following diagrams, aptly named the triangle and pentagon identities.

These two diagrams remarkably lead to a coherence theorem which states that every well formed formula built from \(\alpha, \lambda, \rho\) and their inverses holds. This gives us for free that \( \rho_I = \lambda_I\), which would otherwise be very painful to prove.

The classic example of a monoidal category is \( \mathbf{Hilb}\), the category of Hilbert spaces with morphisms as bounded linear maps. The tensor functor simply gives the tensor product of two Hilbert spaces and the unit object is \( \mathbb{C}\), the complex numbers. The natural transformations are given in the obvious way. We can turn \( \mathbf{Set}\) into a monoidal category by having the \( \otimes\) functor give the Cartesian product of two sets and having the terminal object 1 as the unit.

The study of both \( \mathbf{Hilb}\) and \( \mathbf{Set}\) are useful for physics. The former is used to formalize quantum mechanics and the latter classical physics. One property that \(\mathbf{Hilb}\) has that \(\mathbf{Set}\) doesn’t is the existence of a zero object. This is an object, denoted \(0\), which is both initial and terminal, that is, given any other object \( A\), there is exactly one morphism \( 0 \rightarrow A\) and exactly one morphism \( A \rightarrow 0\). It isn’t hard to see that \( \mathbf{Hilb}\), the zero object is simply the Hilbert space consisting of just a zero vector. It is also not difficult to show that \( \mathbf{Set}\) doesn’t have a zero object, since if it did it would need to be isomorphic to both the one element set and the empty set, which is impossible.

It is easy to see that in \( \mathbf{Hilb}\), we have \( 0 \otimes 0 \cong 0\). This is true for all monoidal categories with a zero object, as we shall now prove. I highly recommend trying this exercise for yourself first!

We have the following unique arrows: \( f: I \rightarrow 0\) and \( g:0 \rightarrow I\). These give rise to maps \( f \otimes 1_0:I \otimes 0 \rightarrow 0 \otimes 0\) and \( g \otimes 1_0: 0 \otimes 0 \rightarrow I \otimes0\). We then get the following composites:

  1. \( 0 \xrightarrow{\lambda_0^{-1}} I \otimes 0 \xrightarrow{f \otimes 1_0} 0 \otimes 0\),
  2. \(0 \otimes 0 \xrightarrow{g \otimes 1_0} I \otimes 0 \xrightarrow{\lambda_0} 0\).

As \( 0\) is a zero-object, there is only one map \( 0 \rightarrow 0\), namely the identity map \( 1_0\). This means

\(\left(\lambda_0 \circ (g \otimes 1_0)\right) \circ \left((f \otimes 1_0) \circ \lambda_0^{-1} \right)= 1_0\).

We also see that \( f \circ g:0 \rightarrow 0\), so \( f \circ g = 1_0\). We can then build the following commuting square:

We can apply the functor \( - \otimes 0\) to this square to get the following square:

Factoring \( 1_{I \otimes 0} = \lambda_0^{-1} \circ \lambda_0\) gives the following diagram:

We also know that \( 1_0 \otimes 1_0 = 1_{0 \otimes0}\), from the tensor product functor. As this commutes, we have \( \left((f \otimes 1_0) \circ \lambda_0^{-1} \right) \circ  \left(\lambda_0 \circ (g \otimes 1_0)\right) = 1_{0\otimes0}\). This results in the maps (1) and (2) being mutual inverses, hence \( 0 \cong 0 \otimes 0\), as required.

This is only the tip of the iceberg when it comes to monoidal categories, for example, we might want \( A \otimes B \cong B \otimes A\), in which case we need to look at braided monoidal categories. This post has been inspired by revision for one of my exams. The content is from lecture notes by my lecturer Chris Heunen which can (currently) be found here.