Coloured Petri net

Coloured Petri nets are a backward compatible extension of the mathematical concept of Petri nets.

Coloured Petri nets preserve useful properties of Petri nets and at the same time extend the initial formalism to allow the distinction between tokens.

Coloured Petri nets allow tokens to have a data value attached to them. This attached data value is called the token color. Although the color can be of arbitrarily complex type, places in coloured Petri nets usually contain tokens of one type. This type is called the color set of the place.

Definition 1. A net is a tuple N = (P, T, A, Σ, C, N, E, G, I ) where: In coloured Petri nets, sets of places, transitions and arcs are pairwise disjoint P ∩ T = P ∩ A = T ∩ A = ∅ Use of node function and arc expression function allows multiple arcs connect the same pair of nodes with different arc expressions.
 * P is a set of places.
 * T is a set of transitions.
 * A is a set of arcs
 * Σ is a set of color sets. This set contains all possible colors, operations and functions used within the coloured Petri net.
 * C is a color function. It maps places in P into colors in Σ.
 * N is a node function. It maps A into (P × T) ∪ (T × P).
 * E is an arc expression function. It maps each arc a ∈ A into the expression e. The input and output types of the arc expressions must correspond to the type of the nodes the arc is connected to.
 * G is a guard function. It maps each transition t ∈ T to a guard expression g. The output of the guard expression should evaluate to a Boolean value (true or false). If false, t cannot be fired.


 * I is an initialization function. It maps each place p into an initialization expression i. The initialization expression must evaluate to multiset of tokens with a color corresponding to the color of the place C(p).

A well-known program for working with coloured Petri nets is cpntools.