An algebra of high level Petri nets
Petri nets were introduced by C.A. Petri as a theoretical model of concurrency in which the causal relationship between actions, rather than just their temporal ordering, can be represented. As a theoretical model of concurrency, Petri nets have been widely successful. Moreover, Petri nets are popular with practitioners, providing practical tools for the designer and developer of real concurrent and distributed systems. However, it is from this second context that perhaps the most widely voiced criticism of Petri nets comes. It is that Petri nets lack any algebraic structure or modularity, and this results in large, unstructured models of real systems, which are consequently often intractable. Although this is not a criticism of Petri nets per se, but rather of the uses to which Petri nets are put, the criticism is well taken. We attempt to answer this criticism in this work. To do this we return to the view of Petri nets as a model of concurrency and consider how other models of concurrency counter this objection. The foremost examples are then the synchronisation trees of Milner, and the traces of Hoare, (against which such criticism is rarely, if ever, levelled). The difference between the models is clear, and is to be found in the richness of the algebraic characterisations which have been made for synchronisation trees in Milner's Calculus of Communicating Systems (CCS), and for traces in Hoare's Communicating Sequential Processes (CSP). With this in mind we define, in this thesis, a class of high level Petri nets, High Level Petri Boxes, and provide for them a very general algebraic description language, the High Level Petri Box Algebra, with novel ideas for synchronisation, and including both refinement and recursion among its operators. We also begin on the (probably open-ended task of the) algebraic characterisation of High Level Petri Boxes. The major contribution of this thesis is a full behavioural characterisation of the High Level Petri Boxes which form the semantic domain of the algebra. Other contributions are: a very general method of describing communication protocols which extend the synchronisation algebras of Winskel; a recursive operator that preserves finiteness of state (the best possible, given the generality of the algebra); a refinement operator that is syntactic in nature, and for which the recursive construct is a behavioural fix-point; and a notion of behavioural equivalence which is a congruence with respect to a major part of the High Level Petri Box Algebra.