# The definition of a free monoidal category

I want to understand what a free monoidal category is, over a signature $$\Sigma,$$ as described just before Theorem 2.3 of Selinger. In particular, I am hoping to get a more explicit description of the free monoidal category (ideally something akin to Definition 4.4.4 of the statebox book), and I would like to understand how Selinger's definition relates to some free/forgetful adjoint functors (so I guess knowing what type of category Selinger's monoidal signatures live in would be useful, i.e., what the arrows are between them). I heard that free monoidal categories can somehow be obtained from Petri nets, as described by Meseguer and Montanari.

I would like to emphasize that I am interested in free monoidal categories over signatures which may involve morphism variables like $$f: A \otimes B \rightarrow C,$$ and I don't just want to focus on strict cases. I am similarly seeking understanding of the meaning of free symmetric monoidal categories and also free Markov categories over a signature. I would really appreciate any literature or insights people have on these topics.

• MacLane's theorem dictates that the free strict monoidal category is also the free monoidal category. What exactly do you mean by "don't just want to focus on strict cases"? Commented Aug 25, 2023 at 20:47

There seems to be many different questions asked here. I'll answer some of them.

The free/forgetful adjunction that you want looks like this: Consider the bicategory $$\textsf{Cat}$$ of categories, functors and natural transformations. Consider the bicategory $$\textsf{MCat}$$ of monoidal categories, (strong) monoidal functors and monoidal natural transformations. There is an obvious 2-functor $$\textsf{MCat} \to \textsf{Cat}$$. The free monoidal category generated by a category is then the bi-adjunction. For the strict case just throw away all the natural transformations to get 1-categories. You may also define the monoidal category generated by a graph, or a set of objects, etc. in a similar way.

To address the $$A \otimes B \to C$$ generator problem, we would like to intertwine the process of generating things and stating new generators and equations. This is exactly the problem addressed by sketches. Traditionally we usually deal with freely generated limits/colimits. But this can be done with any 2-monad (in your case, you need the 2-monad that generates a free monoidal category from a category). See this for a treatment.

Concrete syntactic treatment (such as those you have linked) can also be done, it's basically just a huge inductive definition, quotiented by all the necessary equations. This is routinely done in type theory.

I'm researching the same topic so for now I will just share what I've read.

These are the papers that I can recommend:

The DisCoPy module is well maintained if you want to program with categories: https://discopy.org/