Categories of Nets
We present a unified framework for Petri nets and various variants, such as pre-nets and Kock's whole-grain Petri nets. Our framework is based on a less well-studied notion that we call -nets, which allow finer control over whether tokens are treated using the collective or individual token philosophy. We describe three forms of execution semantics in which pre-nets generate strict monoidal categories, -nets (including whole-grain Petri nets) generate symmetric strict monoidal categories, and Petri nets generate commutative monoidal categories, all by left adjoint functors. We also construct adjunctions relating these categories of nets to each other, in particular showing that all kinds of net can be embedded in the unifying category of -nets, in a way that commutes coherently with their execution semantics.
This paper came forth as a response to the paper on Computational Petri Nets: Adjunctions Considered Harmful which suggested not producing an adjunction when you introduce the semantics of a Petri net.