I tried looking at Sassone’s paper when you first linked to it months ago. It feels like I don’t have the background to understand it. I am hoping you plan to explain it here at some point.

But the concept of symmetric monoidal category is inevitable as soon as you ponder a bunch of things that can interact and also trade places (without getting tangled up).

This is a bit like sayng the concept of a stack is inevitable as soon as you ponder orbifolds and their maps

. I have pondered systems things that interact and can trade places. And I see answers that don’t look like symmetric monoidal categories.

There is the groupoid formalism for coupled cell networks

of Golubitsky, Stewart and their collaborators, where trading places

is modeled as a groupoid symmetry of interactions.

Recently a colleague of mine in engineering got me thinking about hybrid systems. While these kinds of systems are related to directed graphs, they are rather different from what people normally call dynamics on networks

. In dynamics on networks, phase spaces are products. In hybrid systems phase spaces are nonlinear quivers (diagrams in an appropriate category of phase spaces). The dynamics is nondeterminsitic.

… let’s not rush things.

It’s not rushing things for me to say: a reaction network, or Petri net, is a presentation of a symmetric monoidal category. The morphisms in this category are the ‘Feynman diagrams’ I’ve been drawing, like this:

If this isn’t true, then I’ll tweak the definition of Petri net until it is! The whole point of my research here is to show how various kinds of ‘networks’ in applied math are related to various kinds of symmetric monoidal categories. I started with Petri nets because they play a basic role: they let us describe a symmetric monoidal category generated by some objects (things) and morphisms (processes).

Concepts like ‘hypergraph’ may be a bit fidgety and *ad hoc*: I listed 8 different concepts of ‘graph’ and there could be more for ‘hypergraph’. But the concept of symmetric monoidal category is inevitable as soon as you ponder a bunch of things that can interact and also trade places (without getting tangled up). So that’s solid bedrock, as far as I’m concerned. And the connection to Petri nets is discussed here:

• Vladimiro Sassone, On the category of Petri net computations, *6th International Conference on Theory and Practice of Software Development*, Proceedings of TAPSOFT ’95, Lecture Notes in Computer Science **915**, Springer, Berlin, pp. 334-348.

I’m sorry if I sound a bit fierce, but this is my core philosophy. Other approaches are of course worth exploring, but this is mine.

]]>But what’s a directed hypergraph? The wikipedia seems only to define undirected hypergraphs. The definition in *Directed hypergraphs and applications* does not seem suitable. David Spivak gives two definitions in Higher-dimensional models of networks. One orders the vertices. The other doesn’t order them but does not allow repetitions of vertices ether. Neither of Spivak’s definition (which have the advantage of being presheaves) quite fit our needs.

Here is a proposal of a definition of a hypergraph associated with the sets of species and of transitions: is a pair of maps , from the set of transitions to the set of complexes . Hmm, I guess I just defined a reaction network.

I am not sure how to define paths of such a hypergraph. You could just look at paths in the reaction network graph. But it doesn’t feel optimal (maybe it would if I had more sleep). What looks right is made up of paths of length 4 starting (and ending) at species in the corresponding Petri net. I have trouble being articulate.

]]>Are places in Petri nets orderd? It seems that they should be… Hmm.

I’ve been calling them ‘states’ or ‘species’ and calling the set of them .

You’ve got an interesting point there! is not ordered according to any definition I’ve seen or used: my definition, one of the standard ones, is this:

**Definition.** A **Petri net** consists of a set of **states** and a set of **transitions**, together with a function

saying how many copies of each state shows up as **input** for each transition, and a function

saying how many times it shows up as **output**.

But if you’re using states and transitions as objects and morphisms of a symmetric monoidal categories you might want an order on the states that appear as inputs or outputs to a transition. Why? In a symmetric monoidal category ; all we’ve got is a chosen isomorphism , the ‘braiding’. So, turning a transition into a morphism

requires that we choose an ordering for the states (objects) showing up in this expression.

However, right now I actually think the way people are doing things is acceptable, if perhaps suboptimal in some ways. If we’re using the states and transitions to generate a free strict symmetric monoidal category, we need to choose a bunch of orderings to turn the transitions into well-defined morphisms and get a symmetric monoidal category. However, a different choice of orderings gives an isomorphic symmetric monoidal category, and this isomorphism is canonical.

There’s also a concept of ‘commutative’ monoidal category where the braiding is the identity and thus . Normally these are evil, but sometimes they’re okay! They’re important in algebraic geometry, for example.

In my post I talked a lot about the set of **complexes**, . This is the free commutative monoid on the set , at least when is finite. And this free commutative monoid is the set of objects in the free commutative monoidal category on our states and transitions!

So, I was almost tempted to use commutatve monoidal categories. I’d feel okay about this if the free commutative monoidal category on some states (objects) and transitions (morphisms) were equivalent to the free strict symmetric monoidal category on that data. But just while writing this I think I’ve seen they’re not.

And while we’re talking about ‘evil’, of course *strict* symmetric monoidal categories are also a bit evil. However, my hunch is that the free *strict* symmetric monoidal category on some objects and morphisms is equivalent to the free *weak* symmetric monoidal category on that data. If so, we can use strict ones without being punished by the math gods.

By the way: if you’re a category theorist, when I said “turn around all the arrows” you probably thought “opposite category”. And you’d be right! A Petri net is just a way of presenting a strict symmetric monoidal category that’s freely generated by some objects (the states) and some morphisms (the transitions). For more details, try:

• Vladimiro Sassone, On the category of Petri net computations,

6th International Conference on Theory and Practice of Software Development, Proceedings of TAPSOFT ’95, Lecture Notes in Computer Science915, Springer, Berlin, pp. 334-348.

So, to specify a Petri net we first give a set of objects called **states**:

and then a set of generating morphisms called **transitions**:

where each goes from some tensor product of states to some other tensor product of states. This data determines a strict monoidal category, say .

To specify a reaction network we do the exact same thing! Now, however, the states are called **species** and the morphisms are called **reactions**.

Note that every object of is isomorphic to exactly one of the form

so is equivalent to a ‘skeleton’ where these are the only objects. The set of objects of this skeleton is just . In the literature on reaction networks, is called the set of **complexes**.

By the way, I’ve been acting as if and are finite, and people often assume that, since we need it to prove certain theorems—but we don’t really need it in anything I just said. There are also important examples where and are infinite. For example, in ‘stochastic Petri net field theories’ we might take to be a lattice. Mathematical biologists can use this to describe animals moving around in space. Blake Stacey may tell us more about these sometime; he’s already shown us lots of references.

To get a *stochastic* Petri net, we let be the symmmetric monoidal category with one object and as morphisms, where composition and tensoring of morphisms are both given by multiplication. Then a stochastic Petri net is a strict symmetric monoidal functor

Since is freely generated by some objects and morphisms, all does is assign an arbitrary number to each transition . This number is called the **rate** of that transition.

The same is true for stochastic reaction networks; there’s no real difference!

I don’t know much about hypergraphs. But if I understand what you said, we can think of a directed hypergraph as a presentation of a free strict symmetric monoidal category, just as we can think of a directed graph, as a presentation of a free category.

When people use a directed graph to present a free category , they call the directed graph a ‘quiver’. A representation of this quiver is then a functor . Since is free these functors are easy to describe. We’re doing something similar now except we’re working with symmetric monoidal categories, which are a bit more complicated, but replacing by , which is simpler.

]]>