Algebraic Petri net

An algebraic Petri net (APN) is an evolution of the well known Petri net in which elements of user defined data types (called algebraic abstract data types (AADT)) replace black tokens. This formalism can be compared to coloured Petri nets (CPN) in many aspects. However, in the APN case, the semantics of the data types is given by an axiomatization enabling proofs and computations on it.
Algebraic Petri nets were invented by Jacques Vautherin in 1985 in his PhD thesis and later improved by Wolfang Reisig.
The formalism has two aspects :
AADT can be themselves split in two parts: 
The following picture describes an algebraic Petri net model of the "dining philosophers problem". There are two AADT in this model, one for the forks algebra, one for the philosophers algebra. Please note that the philosophers AADT uses the fork AADT. Since all philosophers can take their left fork without taking their right fork, executing this model can result in a "deadlock".
The control part is composed of :
In the example below only transition goEat is firable at the beginning. One goEat has been fired, takeL and takeR are also enabled and thus can also be fired.
Algebraic Petri nets are the basic formalism of more advanced ones such as CO-OPN.