Algebraic Petri net
An algebraic Petri net is an evolution of the well known Petri net in which elements of user defined data types replace black tokens. This formalism can be compared to coloured Petri nets 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 :
- The control part which is handled by a Petri net.
- The data part which is handled by one or many AADTs.
- The signature which gives the valid constants and operations of the term algebra.
- The axiomatization which gives the semantics of the operations described in the signature part.
The control part is composed of :
- Places contain multiset of tokens. Those tokens are elements of a term algebra built upon the signature of the AADT. Each place contains one and only one multiset of terms, the place is typed by its multiset.
- Arcs can be labeled with multisets of either closed or free terms. Again terms are built from the AADT signature.
- Transitions are events that can be fired whenever there are enough resources and the guard of the transition holds. Then the produced tokens are put in the target places of the output arcs. Usually term rewriting is used for the operational semantics in order to check if conditions hold and to compute output terms.
Algebraic Petri nets are the basic formalism of more advanced ones such as CO-OPN.