with category theory
Petri nets were invented for representing the dynamics of chemical reactions (Petri 1962)
Soon adopted as one of the many mathematical languages for modeling distributed systems
They can also be viewed as (discrete) dynamical systems
A Petri net is composed of places, transitions (and arcs weighted on the natural numbers).
Any place contains a given number of tokens, which represent resources.
Transitions are connected to places through the arcs, and can turn resources into other resources.
A transition can fire, consuming tokens living in places connected to its input, and producing tokens living in places connected to its output.
tokens
For a mathematician, a Petri net is a device to present a certain structure called a "free monoidal category" using its pieces as generators. (Something similar happens in algebra, but don't worry.)
"adjunction"
Idea: put a un bound on the number of tokens in a place.
Every place gains an antiplace with a transition pointing in the opposite direction
“firing a transition” amounts to call another process, and waiting for it to finish; akin to calling subroutines in a piece of code
[¹] or a "mana pool", if you were from a different tribe of nerd
[²] related work: https://arxiv.org/abs/1904.03550
Timed PNs: you can't fire before/after time t0.
Graph-based models of computation; same technology?
Extend mana-nets: how far can the original idea of Petri be pushed?