Petri nets are widely used to model concurrent systems. However, their composition and abstraction mechanisms are inadequate: we solve this problem in a satisfactory way. We start by remarking that place/transition Petri nets can be viewed as ordinary, directed graphs equipped with two algebraic operations corresponding to parallell and sequential composition of transitions. A distributive law bet

