Source: http://www.morere.eu/IMG/pdf/cours_petri2.pdf