High-level Petri Nets - Concepts, Definitions and Graphical Notation Final Draft International Standard ISO/IEC

15909 Version 4.7.1 October 28, 2000

Contents
Introduction 1 Scope 1.1 1.2 1.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Field of Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 6 6 7 7 7 7 10 10 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 16 18 18

2 Normative References 3 Terms, Definitions, Abbreviations and Symbols 3.1 3.2 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Conventions and Notation 5 Semantic Model for High-level Petri Nets 5.1 5.2 5.3 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marking of HLPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling of Transition Modes . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 5.3.2 5.4 Enabling of a Single Transition Mode . . . . . . . . . . . . . . . . . . Concurrent Enabling of Transition Modes . . . . . . . . . . . . . . . .

Transition Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Concepts Required for High-level Petri Net Graphs 6.1 6.2 6.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . High-level Petri Net Graph Components . . . . . . . . . . . . . . . . . . . . . Net Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 6.3.2 6.3.3 6.4 6.5 Enabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transition Rule for a Single Transition Mode . . . . . . . . . . . . . . Step of Concurrently Enabled Transition Modes . . . . . . . . . . . . .

Graphical Concepts and Notation . . . . . . . . . . . . . . . . . . . . . . . . . Conditionals in Arc Expressions, and Parameters . . . . . . . . . . . . . . . .

7 Definition of High-level Petri Net Graphs 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

7.2 7.3 7.4

Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.1 7.4.2 Enabling of a Single Transition Mode . . . . . . . . . . . . . . . . . . Concurrent Enabling of Transition Modes . . . . . . . . . . . . . . . .

18 19 20 20 20 20 21 21 21 21 22 22 22 23 23 23 24 24 24 24 25 25 25 25 25 26 26 26 26 26 26

7.5

Transition Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Notation for High-level Petri Net Graphs 8.1 8.2 8.3 8.4 8.5 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Markings and Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 Semantics of High-level Petri Net Graphs 10 Conformance 10.1 PN Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.2 Level 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 HLPN Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Level 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annex A: Mathematical Conventions (normative) A.1 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Multisets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.1 Sum Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.2 Membership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.3 Empty Multiset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.4 Cardinality and Finite Multiset . . . . . . . . . . . . . . . . . . . . . . A.2.5 Multiset Equality and Comparison . . . . . . . . . . . . . . . . . . . . A.2.6 Multiset Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Concepts from Algebraic Specification . . . . . . . . . . . . . . . . . . . . . . A.3.1 Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

A.3.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3.3 Boolean Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3.4 Terms built from a Signature and Variables . . . . . . . . . . . . . . . A.3.5 Many-sorted Algebras . . . . . . . . . . . . . . . . . . . . . . . . . . A.3.6 Assignment and Evaluation . . . . . . . . . . . . . . . . . . . . . . . Annex B: Net Classes (normative) B.1 Place/Transition nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annex C: High-level Petri Net Schema (informative) C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annex D: Tutorial (informative) D.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2 Net Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2.1 Places and Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2.2 Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2.3 Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2.4 The Net Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.3 Transition Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.4 Net Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.5 Flow Control Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annex E: Analysis Techniques (informative) Bibliography

27 27 27 28 28 30 30 32 32 32 33 33 33 33 34 35 35 35 37 38 41 42

4

For example. High-level Petri Nets. while the main concepts behind the graphical form are informally introduced in clause 6. The technique is particularly suited to parallel and distributed systems development as it supports concurrency. Clause 2 provides normative references (none at present). first introduced in 1979 and developed during the 1980s. and also the degree to which the syntax is supported. and referred to in clause 4. It also uses some of the notions developed for Algebraic Petri nets. Two of the early forms of high-level nets that this standard builds on are Predicate-Transition Nets and Coloured Petri Nets. It is believed that this standard captures the spirit of these earlier developments (see bibliography). Specifications written in the technique may be subjected to analysis methods to prove properties about the specifications. A problem with Petri nets is the explosion of the number of elements of their graphical form when they are used to describe complex systems. the form of the standard intended for industrial use. Clause 7 defines the Highlevel Petri Net Graph. Annex D is a tutorial on the High-level Petri Net Graph. thus saving on testing and maintenance time. Clause 1 describes the scope. or used by application developers or Petri net tool vendors or users. This International Standard may be cited in contracts for the development of software (particularly critical software). and is the usual term used in the Petri net community. The main mathematical apparatus required for defining the standard is developed in normative Annex A. first introduced in the mid 1980s. while clause 3 provides a glossary of terms and defines abbreviations. such as the use of complex structured data as tokens. Clause 8 further describes syntactical conventions. Normative Annex B defines Petri nets (without capacities) as a restriction of the definition of Clause 7. Clause 9 relates the graphical form to the basic semantic model. 5 . areas of application and the intended audience of this International Standard. allowing specification prototypes to be developed to test ideas at the earliest and cheapest opportunity. The conformance clause is given in clause 10. Petri nets have been used to describe a wide range of systems since their invention in 1962. and using algebraic expressions to annotate net elements. It is also an executable technique. The basic level of conformance is to the semantic model. The use of high-level to describe these Petri nets is analogous to the use of high-level in high-level programming languages (as opposed to assembly languages). The inscriptions are defined at a meta level allowing many different concrete syntaxes to be used. is mathematically defined. which allows classes of systems to be described at a syntactic level. The technique promises to have multiple uses.Introduction This International Standard provides a well-defined semi-graphical technique for the specification. Conformance to the standard is possible at several levels. before implementation commences. This International Standard provides an abstract mathematical syntax and a formal semantics for the technique. Three informative annexes are included: Annex C defines a High-level Petri Net Schema. The technique. The basic semantic model for High-level Petri Nets is given in clause 5. and may thus be used to provide unambiguous specifications and descriptions of applications. design and analysis of systems. The level of conformance depends on the class of high-level net supported. It may also serve to integrate techniques currently used independently such as state transition diagrams and data flow diagrams. it may be used directly to specify systems or to define the semantics of other less formal languages. High-level Petri Nets were developed to overcome this problem by introducing higher-level concepts.

and methods for analysis which may become the subject of future standardisation efforts. This International Standard does not provide a concrete syntax nor a transfer syntax and it does not address techniques for modularity (such as hierarchies). and development of Petri net support tools. transport systems (including railway control). This International Standard may be applied to a broad range of systems. hospital procedures. 1. including its syntax and semantics. simulation of systems to increase confidence. telecommunications and workflow. space. called High-level Petri Nets. communication protocols. legal processes. providing the semantics for concurrent languages. descriptions of existing systems prior to re-engineering. an abstract mathematical syntax for inscriptions and a graphical notation for High-level Petri Nets.2 Field of Application This International Standard is applicable to a wide variety of concurrent discrete event systems and in particular distributed systems. fault-tolerant systems. 6 . formal analysis of the behaviour of critical systems. development of specifications. defence command and control. This International Standard will also facilitate the development and interoperability of Petri net computer support tools. modelling business and software processes.and Annex E provides pointers to analysis techniques for High-level Petri Nets. defines a mathematical semantic model. operating systems. security systems. databases. business processes. nuclear power systems. Generic fields of application include: ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ requirements analysis. control systems. manufacturing systems. banking systems. designs and test suites. metabolic processes. computer hardware architectures. chemical processes. A bibliography concludes this International Standard. It provides a reference definition that can be used both within and between organisations. 1 Scope 1. information systems. augmentation of High-level Petri Nets with time. avionics. including air traffic control. music. internet protocols and applications.1 Purpose This International Standard defines a Petri net technique. to ensure a common understanding of the technique and of the specifications written using the technique. This International Standard. electronic commerce.

1.3 Assignment: For a set of variables. designers. 3.1.2 Output Arc (of a transition): An arc directed from the transition to a place.1.1. and for Petri net tool designers and standards developers.6 Carrier: A set of a many-sorted algebra.1. 3. 3. 3. 3. 3.1 Input Arc (of a transition): An arc directed from a place to the transition. abbreviations and symbols apply. 3. and hence are not ordered (see also Step and Concurrent Enabling).1. typed variables and functions required for defining the inscriptions on a High-level Petri Net Graph. 3 Terms. the following definitions.1.8 Declaration: A set of statements which define the sets. 3.1. Any ambiguity in the definitions is resolved by the mathematically precise definitions in the body of this International Standard.1.5 Binding: See Assignment. The expression must evaluate to a multiset over the type of the arc’s associated place. Abbreviations and Symbols For the purpose of this International Standard.1 Arc: A directed edge of a net which may connect a place to a transition or a transition to a place. 3.1 Glossary 3.1. variables and operators used to annotate an arc of a net.1. maintainers and procurers.1. Normally represented by an arrow.2 Arity: The input sorts and output sort for an operator.9 Enabling (a transition): A transition is enabled in a particular mode and net marking. the association of a value (of correct type) to each variable. Definitions.1. developers. constants. 3.3 Audience This International Standard is written as a reference for systems analysts. when the following conditions are met: 7 .3 Arc annotation: An expression that may involve constants. 3.1. 3.4 Basis set: The set of objects used to create a multiset. 2 Normative References None.7 Concurrency: The property of a system in which events may occur independently of each other.1. parameter values.1.

and an initial marking. Post function determining output tokens (multisets of tokens) for places for each transition mode.3 Marking of a place: A multiset of tokens associated with (‘residing in’) the place. 3.1 Multiplicity: A natural number (i.1.1. Pre function imposing token demands (multisets of tokens) on places for each transition mode. 3.1 Net graph: A directed graph comprising a set of nodes of two different kinds.14. a set of types.14 Marking (of a net): The set of the place markings for all places of the net. NOTE: The determination of transition modes guarantees that the Transition Condition is satisfied (see Transition Mode). such that only places can be connected to transitions. 3.16.12 High-level Petri Net Graph: A net graph and its associated annotations comprising Place Types.4 Reachable Marking: Any marking of the net that can be reached from the initial marking by the occurrence of transitions.2 Node (of a net): A vertex of a net graph (i. 3.1. defined with the high-level net. a set of transitions.14.1. including the initial marking.e... 3.15. The demand is satisfied when the place’s marking contains (at least) the multiset of tokens indicated by the evaluated arc annotation.1 Initial Marking (of the net): The set of initial place markings given with the highlevel net definition.1. 3.1. called places and transitions.1.10 Concurrent Enabling (of transition modes): A multiset of transition modes is concurrently enabled if all the involved input places contain enough tokens to satisfy the sum of all of the demands imposed on them by each input arc annotation evaluated for each transition mode in the multiset.1.14. 3.1.15.16. a function associating a type to each place. 3. 3.13 Many-sorted Algebra: A mathematical structure comprising a set of sets and a set of functions taking these sets as domains and co-domains. and a set of modes (a type) to each transition.1.2 Initial Marking of a place: A special marking of a place. Arc Annotations. called arcs.1. non-negative integer) which describes the number of repetitions of an item in a multiset.14.5 Reachability Set: The set of reachable markings of the net. nor places to places. 3. and an Initial Marking of the net. but never transitions to transitions. and their corresponding definitions in a set of Declarations. and their interconnection by directed edges.1.1.11 High-level Net (High-level Petri Net): An algebraic structure comprising: a set of places.The marking of each input place of the transition satisfies the demand imposed on it by its arc annotation evaluated for the particular transition mode. 8 .14.1.16 Net: A general term used to describe all classes of Petri nets. 3. a place or a transition). and transitions to places.15 Multiset: A collection of items where repetition of items is allowed.2 Multiset cardinality (cardinality of a multiset): The sum of the multiplicities of each of the members of the multiset. 3. 3. 3. Transition Conditions. 3.1.e. 3.1.

Carl Adam Petri. taken from the place kind.1.1. normally represented by an ellipse in the net graph.2 Output Place (of a transition): A place connected to the transition by an output arc.4 Place/Transition Net: A Petri net comprising a net graph with positive integers associated with arcs and an initial marking function which associates a natural number of simple tokens (‘black dots’) with places.1. 3.1 Argument sort: The sort of an argument of an operator. variables and operators built from a signature and a set of sorted variables.20.20.23.1.19 Parameterized High-level Net Graph: A high-level net graph that contains parameters in its definition. 3.23 Sort: A symbol representing the name of a set.20 Place: A node of a net.1.1. 3.1. 3.23. 3.1. and the edges correspond to transition occurrences.1. 3. together with their associated relations and functions.1.3.2 Input sort: The same as an argument sort.1.1.24.24 Term: An expression comprising constants. 3.25. 9 .3 Output sort: The sort of an output of an operator. 3.24. 3.23. one called places and the other called transitions. 3.1 Input Place (of a transition): A place connected to the transition by an input arc.1 Closed term: A term comprising constants and operators but no variables. where the nodes correspond to reachable markings.2 Term evaluation: The result obtained after the binding of variables in the term.3 Petri Net: An algebraic structure with two sets.1. and one of the constants is ØÖÙ ÓÓÐ corresponding to the value true in the algebra. A place is typed.22 Signature/Many-sorted signature: A mathematical structure comprising a set of sorts and a set of operators.1 Enabling Tokens: The multiset of values obtained when an input arc annotation is evaluated for a particular binding to variables. the computation of the results of the associated functions. 3.1.1.1.1.16. It is instantiated as a constant. 3.18 Parameter: A symbol that can take a range of values defined by a set. (This set can describe an arbitrarily complex data structure. 3.23. 3.1.16. 3.) 3. and named after their inventor. corresponding to the carrier Boolean in any associated algebra.20.1.25 Token: A data item associated with a place and chosen from the place’s type. and any simplifications performed (such as gathering like terms to obtain the symbolic sum representation of a multiset). 3.17 Operator: A symbol representing the name of a function.1 Boolean signature: A signature where one of the sorts is ÓÓÐ.21 Reachability Graph: A directed graph of nodes and edges. 3.4 Range sort: The same as an output sort.1. 3.3 Place Type: A non-empty set of data items associated with a place. 3.22.1.1. 3.

3. and 2.1 HLPN: High-level Petri Net.26 Transition: A node of a net.2.25. 3.1.26. the following actions occur indivisibly: 1.26. 3.2. 3. taken from the transition kind.2. On the occurrence of the transition.1. The notion of multisets is required for clauses 10 .1. These are the transition condition.1.4 Step: The simultaneous occurrence of a multiset of transition modes that are concurrently enabled in a marking. 3. 3.2.2. 3.1.2 Transition mode: A pair comprising the transition and a mode. (using the ‘·’ symbol). 3. and represented by a rectangle in the net graph.1 Transition condition: A boolean expression (one that evaluates to true or false) associated with a transition.2. Annex A also defines the concept of multiset addition. 3.4 PN: Petri Net.5 PNG: Petri Net Graph.2 HLPNG: High-level Petri Net Graph. 3. which should not be confused with arithmetic addition. When considering a High-level Petri Net Graph.26.3 HLPNS: High-level Petri Net Schema. and the annotations of arcs surrounding the transition.1. and used in Place/Transition nets (as opposed to high-level nets).3 Transition occurrence (Transition rule): If a transition is enabled in a mode.5 Transition Variables: All the variables that occur in the expressions associated with the transition. multisets and universal algebra defined in Annex A. a mode may be derived from an assignment of values to the transition’s variables that satisfies the transition condition.3.1. 3.1. For each output place of the transition: the multiset of tokens of the evaluated output arc expression is added to the marking of the output place.26.1 Mode: a value taken from the transition’s type. normally represented by a black dot. it may occur in that mode. NOTE: A place may be both an input place and an output place of the same transition.2 Abbreviations 3. 4 Conventions and Notation This International Standard uses the notation for sets. For each input place of the transition: the enabling tokens of the input arc with respect to that mode are subtracted from the input place’s marking.26. 3.1.27 Type: A set.2 Simple Token: A valueless token.26. 3.

A similar convention applies when an arc expression evaluates to a set. An instance of notation specific to Petri nets is when a marking of the net is transformed to a new marking. which may be a subset of the associated place’s type. 5.1 Definition A HLPN is a structure ÀÄÈ Æ ´È Ì Ì ÝÔ È Ö È Ó×Ø Å¼ µ where ¯ È is a finite set of elements called Places. In high-level nets. sorted variables and many-sorted algebras provided in Annex A is required for clauses 7 and 9 and Annexes B and C. NOTE: ÈÄ . section A. Å Ì Å ¼ is used to denote that a new marking.   is a function used to assign types to places and to determine ¯ È Ö È Ó×Ø Ì Ê ÆË   ÈÄ ÈÄ are the pre and post mappings with Ì Ê ÆË ´Ø ѵ Ø ¾ Ì Ñ ¾ Ì ÝÔ ´Øµ ´Ô µ Ô ¾ È ¾ Ì ÝÔ ´Ôµ ¯ Å ¾ ÈÄ ¼ is a multiset called the initial marking of the net. Å ¼ . an arc may be annotated by a variable or constant (or combination) of the same type as the arc’s place. 7. when in the marking Å . 5 Semantic Model for High-level Petri Nets This clause provides the basic semantic model for High-level Petri Nets (HLPN). È Ä 11 (see Annex A.2). This is interpreted as a multiset over the place’s type.5. The graphical notation used in clause 6 is that defined in clause 8. This notation is defined in clause 5. 8 and 9. ¯ is a non-empty finite set of non-empty domains where each element of type. Ì . 6. By convention. is called a ¯ Ì ÝÔ È Ì transition modes. this is interpreted as the corresponding singleton multiset over the place’s type. An understanding of many-sorted signatures. and similar notation is used in clause 7. Wherever possible standard mathematical notation has been used. if an arc expression evaluates to an element of the place’s type. with corresponding multiplicities of zero and one. is the set of multisets over the set. is created on the occurrence of a multiset of transition modes. The evaluation of the arc expression is thus an element of the place’s type. This is necessary as an arc annotation when evaluated must be a multiset over the associated place’s type. ¯ Ì is a finite set of elements called Transitions disjoint from È (È Ì ).

ØÖ ¾ Ì Ê ÆË .3 Enabling of Transition Modes 5. This definition allows a transition mode to be concurrently enabled with itself. is enabled at a marking Å iff È Ö ´ØÖµ Å 5.2 Concurrent Enabling of Transition Modes A finite multiset of transition modes. Ì Å ¼ or Å   Å ¼ .4 Transition Rule Given that a finite multiset of transition modes. Å ¾ ÈÄ . 5. then a step may occur resulting in a new marking Å ¼ given by ż A step is denoted by Å Å   È Ö ´Ì µ · È Ó×Ø´Ì µ Ì where the linear extension of È Ó×Ø is used. there are enough tokens on the input places to satisfy the linear combination of the pre maps for each transition mode in Ì .5. Ì ½. 5. Ì ¾ Ì Ê ÆË . Also if then this reduces to the definition in the previous subclause.2 Marking of HLPN A Marking of the HLPN is a multiset. is enabled at a marking Å iff È Ö ´Ì µ Å where the linear extension of È Ö is given by È Ö ´Ì µ ØÖ¾Ì Ê ÆË Ì ´ØÖµÈ Ö ´ØÖµ All transition modes in Ì are said to be concurrently enabled if Ì is enabled. or any number of concurrently enabled transition modes. is enabled at a marking Å .e. i. 12 . NOTE: A step may comprise the occurrence of: a single transition mode.1 Enabling of a Single Transition Mode A transition mode.3.3. Ì .

Place Marking. Arc Annotations: Arcs are inscribed with expressions which may comprise constants.g. This clause introduces the concepts that are needed in the definition of the High-level Petri Net Graph.2 High-level Petri Net Graph Components A High-level Petri Net Graph (HLPNG) comprises: ¯ ¯ ¯ ¯ A Net Graph. Ü ¯ ¯ Ý ) inscribing a transition. The expressions are evaluated by assigning values to each of the variables. High-level Petri Nets are normally represented using a graphical form which allows visualisation of system dynamics (flows of data and control). When an arc’s expression is evaluated.. typing of variables. and arcs connecting places to transitions. 6. The basic semantic model is not what is used by practitioners. as it is the graphical form of HLPNs that is most appropriate for industrial use.g. Place Types. Ü Ý ) and function images (e. 13 . One type is associated with each place.. it must result in a collection of items taken from the type of the arc’s place. Repetition of items is allowed. The graphical form is referred to as a High-level Petri Net Graph (HLPNG). Declarations: comprising definitions of place types. ´Üµ).6 Concepts Required for High-level Petri Net Graphs 6. NOTE: A collection of items which allows repetitions is known in mathematics as a multiset. Transition Condition: A boolean expression (e. It provides a graphical notation for places and transitions and their relationships. called places and transitions. and determines the inscriptions of the graphical elements. The items associated with places are called tokens. The collection may have repetitions. This approach is taken. variables (e. Clause 5 provides the definition of the basic mathematical semantic model. The variables are typed.1 Introduction High-level Petri Nets can be defined in a number of ways. and transitions to places. and function definitions.g.. Readers interested in a tutorial exposition on High-level Petri Net Graphs are referred to Annex D. The concepts of enabling and transition rule are also introduced for the graphical form to demonstrate how the net may be executed to show system dynamics. consisting of sets of nodes of two different kinds. These are non-empty sets. A collection of elements (data items) chosen from the place’s type and associated with the place.

If a transition is enabled in a mode. each input place’s marking contains at least the sum of the enabling tokens (with respect to both modes) of each input arc associated with that input place. A net marking comprises the set of all place markings of the net. and tokens are added to its output places. resulting in a multiset of tokens of the same type as that of the input place. the transition condition is true). Each input arc expression is evaluated for the transition mode. tokens are removed from its input places. This can illustrate flow of control and flow of data within the same model. The transition’s variables are all those variables that occur in the expressions associated with the transition. that satisfies the transition condition (i. An input place of a transition is a place which is connected to the transition by an arc leading from that place to the transition.2 Transition Rule for a Single Transition Mode Enabled transitions can occur. and 14 . if for the associated transitions..4.1 Enabling A transition is enabled with respect to a net marking.6. for a particular net marking. allowing the flow of tokens around the net to be visualised. These are the transition condition. An arc that leads from an input place to a transition is called an input arc of the transition.3 Net Execution HLPNGs are executable.3. the following actions occur atomically: 1. with respect to that mode. and the annotations of arcs involving the transition. An arc that leads from a transition to a place (an output place of the transition) is called an output arc of the transition. A transition is also enabled in a particular transition mode. On the occurrence of the transition in a specific mode. A transition is enabled in a specific mode. 6. it may occur in that mode. An example is given in subclause 6. Enabling a transition involves the marking of its input places. Key concepts governing this execution are enabling of transitions and the occurrence of transitions defined by the Transition Rule. When a transition occurs.3. If each input place’s marking contains at least its input arc’s multiset of tokens (resulting from the evaluation of the input arc’s expression in the specific mode). The input arc’s multiset of tokens resulting from the evaluation of the input arc’s expression in a specific mode is called the input arc’s enabling tokens. A transition mode is an assignment of values to the transition’s variables.e. 6. For each input place of the transition: the enabling tokens of the input arc with respect to that mode are subtracted from the input place’s marking. An output place of a transition is a place which is connected to the transition by an arc directed from the transition to the place. then the transition is enabled in that mode. Two transition modes are concurrently enabled for a particular marking.

for x bound to ½. and y bound to ¿. is added to the marking of the output place. y: B ¢ ÓÓÐ Ò arithmetic ‘less than’ Figure 1: HLPNG with a Transition Condition. Place p1 is typed by and has an initial marking Å ¼ (p1) ½ ½ · ¾ ¿.3. this is interpreted as the corresponding singleton multiset over the place’s type. a square). 6. The evaluation of the arc expression is thus an element of the place’s type. NOTE: A place may be both an input place and an output place of the same transition. the transition by a rectangle (in this example. using the sum representation of multisets of clause A. This states that associated with the place p1 are the value ½ and two instances of the value ¿. For example. For each output place of the transition: the multiset of tokens. the value associated with 15 .4 B = 3. Arc (p1.A B x x<y t1 y p2 ½ ½·¾ ¿ p1 A = 1.3 Step of Concurrently Enabled Transition Modes Several concurrently enabled transition modes may occur in one step. one transition.3.4. while arc (t1. t1. The places are represented by ellipses (in this case. and t1 to p2. The transition is inscribed with the boolean expression x y.t1) is annotated with the variable x. The declarations define two types. ż (p2) .4. is that arcs may be annotated by variables or constants of the same type as the arc’s place. as described above.p2) is annotated with y. An example is given in subclause 6. named p1 and p2. A convention adopted in high-level nets. Variable x is of type . where the less than operator is defined in the declarations. 6.2. Place p2 is typed by .2.7 x: A. that is in one atomic action. This example comprises two places.4 Graphical Concepts and Notation The graphical representation of the net graph is introduced by the simple example of a HLPNG given in figure 1.1. and arcs from p1 to t1. and . and is empty representing the empty multiset. circles).5. and variable y is of type . that are different subsets of the positive integers. By convention. 2. The change to the marking of the net when a step occurs is given by the sum of all the changes that occur for each transition mode. and the arcs by arrows. resulting from the evaluation of the output arc expression for the mode.

and the second. which is interpreted to be a multiset over .t1) would be ½ x. A number (N) of agents (processes) wish to access a shared resource (such as a file). the initial markings are given in the declaration.) An agent can obtain access in one of two modes: if shared (m=s). For example.arc (p1. the Control place contains L simple tokens (represented by a black dot ¯) and Access is empty. No assumptions are made regarding scheduling. and m e ¼. which is interpreted to mean the multiset ½ ¿. Access can be in one of two modes: shared (s). Another example of the concurrent enabling of modes is the multiset ½ ´½ µ · ½ ´¿ µ and yet another is ½ ´½ µ · ½ ´¿ µ · ½ ´¿ µ. and similarly the value associated with arc (t1. is concurrently enabled. ½ ´½ ¿µ · ¾ ´¿ µ. reading). Shared 16 . the multiset conversion operator ‘ ’ should be used.p2) is ¿. where up to L agents may have access at the same time (e. In the initial marking. both of which are positive integers. This is therefore a parameterized HLPNG. L and N. then the resultant marking would be: Alternatively. rather than x. µ.. then all L tokens are removed preventing further access until the resource is released (transition Leave).t1) is ½. t1 can be enabled in the following modes ´½ ¿µ ´½ µ ´½ µ ´½ µ ´¿ µ ´¿ µ ´¿ µ where the first element of each pair represents a binding for x. interpreted as ½ ¯) when Enter occurs in a single mode. and Parameters The HLPNG of figure 2 uses a variant of the readers/writers problem to illustrate many of the features of a HLPNG including the use of parameters and conditionals in arc expressions. which is interpreted as the multiset L ¯. and exclusive (e). if exclusive (m=e). if the multiset of modes marking would be ½ ´½ ¿µ · ¾ ´¿ µ occurred concurrently. the annotation on the arc (p1. The marking of place Wait is given by the set . Place Wait is marked with all agents. a binding for y which satisfies x y.. 6. which could then be executed. which is interpreted to mean the multiset ½ ½.g. where only one agent may have access (e. It can be seen that the multiset of modes. more formally. In a similar convention. and thus the arc expression evaluates to ¯. the marking of Control is given by L¯. If transition t1 occurred in mode ½ ´¿ Å (p1) ½ ½ · ½ ¿ Å (p2) ½ . which represents infinitely many readers/writers systems. then a single token is removed from Control (as m=e is false. In this example.g. Where there is any possibility of ambiguity.5 Conditionals in Arc Expressions. A HLPNG model of figure 2 illustrates the use of two parameters. Each instantiation of N and L would produce a HLPNG. writing). (That is the separator ‘ ’ is dropped where there is no ambiguity. It has been assumed that the initial state is when all the agents are waiting to gain access to the shared resource (with no queueing discipline assumed). where each of the multiplicities of the agents is one. the resultant Å (p1) Å (p2) ½ ¿ · ¾ .

17 .Enter x A Wait (x.e Control: C = ¯ Positive integer constants: N. m: M Function ÓÓÐ ¼ ½ where ØÖÙ ½ and Ð× ¼ ż ´Waitµ A ż ´Controlµ L¯ ż ´Accessµ Figure 2: HLPNG of Resource Management.m) ¯· m e ´L ½µ¯ Leave Set of Agents:A = a½ aÆ Set of Access Modes: M = s. L Variables x: A.m) A¢M ¯· m e ´L ½µ¯ C Control Access x (x.

access is limited to a maximum of L agents as transition Enter is disabled when Control is empty. 7. defined in Annex A. ´ËÀ ÇÀ µ is a many-sorted algebra for the signature Ë È ËÀ is a function which assigns types to places.2 Definition A HLPNG is a structure ÀÄÈÆ where ´Æ Ë Î À Ì ÝÔ Æ Å¼ µ ¯Æ – ´È Ì µ is called a net graph. Ì ÊÅ ´Ç Î µ « and ΠЫ are 18 . integer subtraction. It is assumed that multiset addition. disjoint from È (È Ì ´È ¢ Ì µ ´Ì ¢ È µ a set of directed edges called arcs. This is the notation for conditionals in arc expressions. enabling and transition rule are also formally defined for the graphical form. Ì ÊÅ ´Ç Î µ such that for all ´Ô ص ´Ø¼ Ôµ ¾ . . ´ Ì µ is a pair of net annotations. defined in Annex A. known as the flow – relation. is a function that annotates each arc with a term that when evaluated (for any binding) results in a multiset over the associated place’s type. called Transitions. ). It provides an abstract mathematical syntax for inscribing the graphical elements. ¯ ¯ ¯ ¯ ¯ Ë À Ì ÝÔ Æ – ´Ë ǵ is a Boolean signature defined in Annex A. and – Ì a finite set of nodes. with È a finite set of nodes. Î is an Ë -indexed set of variables. disjoint from Ç. The concepts of marking. Outfix notation has been used for the function ÓÓÐ ¼ ½ . for all bindings « ΠЫ ´ ´Ô صµ ΠЫ ´ ´Ø¼ Ôµµ ¾ Ì ÝÔ ´Ôµ. called Places. 7 Definition of High-level Petri Net Graphs 7. the equality predicate and a tupling operator are primitive and do not need to be defined in the declaration.1 Introduction This clause provides a formal definition for the graphical form of high-level nets.

À . Also. 7. NOTE 1: Arbitrarily complex terms can be generated for the arc inscriptions. NOTE 3: The carriers (sets) of the algebra may be arbitrarily complex. Transitions are annotated by Boolean terms. This leads us to the notion of a HLPN schema which is included in informative Annex C and may be considered for future standardisation. this allows there to be multiterms and conditionals in arc expressions. ż ´Ôµ ¾ Ì ÝÔ ´Ôµ. the places become Ë -sorted.e. Å È Ë Ô¾È Ì ÝÔ ´Ôµ such that for all Ô ¾ È .. markings become (appropriately sorted) ground terms of the signature. For example. The schemas are also useful for analysis (see bibliography). À× . NOTE 4: The restriction on the arc annotations (evaluating to a multiset over the place’s type). is the initial marking A HLPNG comprises an annotated net graph. A typing function associates a set of the many-sorted algebra with each place. ÓÓÐ is a function that annotates transitions with Boolean ¯Å È ¼ Ë function which associates a multiset of tokens (of the correct type) which each place. allows terms which evaluate to multisets over subtypes of the place’s type to be used in the annotations. for example. Å . a variable.g. and an associated many sorted algebra. NOTE 2: The evaluation of an arc term may result in an empty multiset. a sort (rather than a type) is associated with each place. Terms are built from the signature and variables. A place can only hold tokens of the same type as the place and hence the initial marking is a multiset over the place’s type.. and others will need a multiset addition operator (and its counterpart in the algebra).– Ì Ì Ì ÊÅ ´Ç Î µ Ô¾È expressions. and may be related. The annotations are derived from a many sorted signature. Ì ÝÔ ´Ôµ such that Ô ¾ È . the terms for arc annotations are of the same sort as that associated with the arc’s place. is removed. defined in the algebra (e. 19 . In this case. This allows us to specify concrete systems where the sets and functions have already been determined. Å ´Ôµ ¾ Ì ÝÔ ´Ôµ. so that Ü ). of the HLPNG is defined in the same way as the initial marking.3 Marking A marking. i. NOTE 5: In defining HLPNGs. known as its type. a set of sorted variables. may be typed by a set of multisets. À×¾ À×½ . This type is a carrier (set) of the many-sorted algebra. or a powerset. Many applications will require the definition of an operator which will convert (in the algebra) an element of a set to a singleton multiset. and the many-sorted algebra. There is also a need for a more abstract or syntactic form that allows classes of systems to be specified. À . by defining the appropriate signature (operators and sorts) and sorted variables. Ü× . a type has been intentionally associated with each place. where is the basis set. Arcs are annotated by terms. which must evaluate to a multiset over the associated place’s type. The approach provides a great deal of flexibility in defining the syntax required for arc inscriptions.

for ´Ù Úµ ¾ where ΠЫ ´¨µ ¨ is a symbol that represents the empty multiset at the level of the signature. iff Ô¾È where for ´Ù Î Ð«Ø ´Ô ص Å ´Ôµ Ú µ ¾ ´È ¢ Ì µ ´Ì ¢ È µ. then the sum is reduced to a single term so that the enabling condition is the same as that of the previous subclause. If comprises a single transition mode. so that . iff Ô¾È ´ Ø «Ø µ¾ Î Ð«Ø ´Ô ص Å ´Ôµ Thus all of the transition modes in are concurrently enabled. denoted Å Ø «Ø Å ¼ .2 Concurrent Enabling of Transition Modes Let «Ø be an assignment for the variables of transition Ø ¾ Ì which satisfies its transition condition and denote the set of all assignments (which satisfy its transition condition) for transition Ø. . 7. of transition modes is enabled in a marking. according to the following rule: Ô¾È Å ¼ ´Ôµ Å ´Ôµ   Î Ð«Ø ´Ô ص · Î Ð«Ø ´Ø Ôµ 20 . for a particular assignment. 7.4. Î Ð ÓÓÐ ´Ì ´Øµµ ØÖÙ .1 Enabling of a Single Transition Mode A transition Ø ¾ Ì is enabled in a marking.4 Enabling 7.7. « Ø . Å . to its variables. Ø may occur in mode «Ø . known as a mode of Ø.5 Transition Rule If Ø ¾ Ì is enabled in mode «Ø . by ×× ÒØ . if is enabled. Define the set of all transition modes to be ÌÅ A step ´Ø «Øµ Ø ¾ Ì «Ø ¾ ×× ÒØ and a step to be a finite non-empty multiset over Ì Å . that satisfies the transition condition. for marking Å . When Ø occurs in mode «Ø . for ´Ù Úµ ¾ ¯ Ù Ú ¨. the marking of the net is transformed to a new marking Å ¼ .4. ¯ Ù Ú ´Ù Úµ. Å .

the initial marking could be shown inside the ellipse. ´Ôµ) associated with the place.2 Places Places are represented by ellipses (often circles). If the initial marking is empty.If a step is enabled in marking Å . or the name of the place could be included inside the ellipse.3 Transitions A transition is represented by a rectangle and is annotated by a name and a boolean expression. ż ´Ôµ. colour and patterns of the lines used to draw the graph are not mandated by this standard. it may be omitted. 8. The position of the annotations with respect to places is not mandated. There needs to be a visual association between an inscription and the net element to which it belongs. For example. Three annotations are associated with a place Ô: ­ ¯ ¯ ¯ the place name. then the step can occur resulting in a new marking. and A mechanism must be provided to remove any ambiguity regarding the association of these annotations with the correct place. Å ¼ . where Å ¼ is given by denoted Å Ô¾È Å ¼ ´Ôµ Å ´Ôµ   ´ Ø «Ø µ¾ Î Ð«Ø ´Ô ص · ´ Ø «Ø µ¾ Î Ð«Ø ´Ø Ôµ 8 Notation for High-level Petri Net Graphs 8. then it may be omitted. constants and functions that are used to annotate the Graph part. and a Declaration. the name of the type (Ì ÝÔ the initial marking. 21 . and its name and type outside. The declaration may also include the initial marking and the typing function if these cannot be inscribed on the graph part due to lack of space. 8.1 General The graphical form comprises two parts: a Graph which represents the net elements graphically and carries textual inscriptions. Å ¼ . The width. and the type and initial marking outside. defining all the types. the Transition Condition. variables. For example. If the Transition Condition is true (Ì ´Øµ ØÖÙ ).

3. If ´Ô ص and ´Ø Ôµ have the same annotations (Ô is a side place of Ø). The notation for terms is not mandated by this International Standard. x y. A Marking of the net may be shown graphically by annotating a place with its multiset of tokens Å ´Ôµ using the symbolic sum representation (see clause A. the transition condition could be shown inside the rectangle (as in the example). and the operator less than. 2. then this may be shown by a single arc with an arrowhead at both ends and annotated by a single inscription. and a transition condition.3. 8. Thus the set Ì ÝÔ ´Üµ Ü ¾ È Ì . Places: È is the set of places in the HLPN. where both the types of the variables.x y t1 represents a transition with a name t1. Ë 9 Semantics of High-level Petri Net Graphs The HLPNG may be given an interpretation as a HLPN (see clause 5) in the following way. Define « Ø as an assignment for À and ÎØ (cf A. ´Ô ص ´Ø Ôµ.4 Arcs For ´Ô ص ¾ . and the transition condition outside. . then Ì ÝÔ ´Øµ «Ø Î Ð ÓÓÐ «Ø ´Ì ´Øµµ ØÖÙ The types of places are obtained directly from the HLPN graph definition. 1.2. Arcs are annotated with terms. The position of the annotations with respect to transitions is not mandated. A mechanism must be provided to remove any ambiguity regarding the association of these annotations with the correct transition. and its name outside.5 Markings and Tokens A token is a member of Ô¾È Ì ÝÔ ´Ôµ. Set of Types: The set of modes for a transition is determined by the types of the variables occurring in the surrounding arc annotations restricted by its transition condition.6). are defined in the declarations.1). of domains is given by 22 . x and y. An arc is represented by an arrow:   8. or the name of the transition could be included inside the rectangle. an arrow is drawn from place Ô to transition Ø and vice versa for ´Ø Ôµ ¾ . Let ÎØ Î be the set of variables associated with transition Ø. For example. Transitions: Ì is the set of transitions in the HLPN. but usual mathematical conventions should be adopted where possible.

¯ ¯ ¯ ¯ ¯ There is a one to one mapping between È Ä There is a one to one mapping between Ì Ê Each transition has a single mode. Thus for all Ø ¾ Ì and for all Ñ ¾ Ì ÝÔ ´Øµ È Ö ´Ø ѵ ´Ô µ Ô ¾ È ¾ È Ö ´Ô ص ´Ñµ È Ó×Ø´Ø Ñµ ´Ô µ Ô ¾ È ¾ È Ó×Ø´Ô Øµ ´Ñµ where È Ö ´Ô ص ´Ñµ 6. The Typing Function: The typing function restricted to places is defined in the HLPNG and Ì ÝÔ ´Øµ is given above. 10 Conformance Conformance to this International Standard is according to net class. The initial marking determines the number of black dots allocated to each place initially.. the lowest conformance level is to the semantics. such as ¯ . 23 . Within a class. È Ó×Ø´Ô Øµ ´Ñµ . The pre and post maps are given. The definition of the semantic model (clause 5). there is only one token represented by a black dot). for all mappings: ´Ô ص ´Ø Ôµ ¾ . This has the following consequences. 5.1.1 PN Conformance 10.4. Each place is typed by and È .e. by providing a mapping from the implementation’s syntax to the semantic model in a similar way to that defined in clause 9. The lowest level is for the Place/Transition net class and the highest at the level of the HLPNG. by the following family of È Ö ´Ô ص Ì ÝÔ ´Øµ   Ì ÝÔ ´Ôµ È Ó×Ø´Ô Øµ Ì ÝÔ ´Øµ   Ì ÝÔ ´Ôµ For ´Ô ص ¾ and Ñ ¾ Ì ÝÔ ´Øµ.1 Level 1 To claim PN Level 1 conformance to this International Standard an implementation shall demonstrate that it has the semantics defined in clause 5. Pre and Post Maps. ¯ (i. will be specialised by the restriction that consists of one set with one element. 10. ż ´Ôµ is as defined in the HLPNG. If the semantics are adhered to. ¾ and Ñ ¾ Î Ð«Ø Ñ´ ´Ô صµ and È Ó×Ø Ô Ø ´Ñµ Î Ð«Ø Ñ ´ ´Ø Ôµµ ´ µ For all Ô ¾ È . ÆË and Ì . then the next level is with respect to syntax. Initial Marking. È Ö ´Ô ص ´Ñµ and for ´Ø Ôµ Ì ÝÔ ´Øµ.

1 Level 1 To claim HLPN Level 1 conformance to this International Standard an implementation shall demonstrate that it has the semantics defined in clause 5. there is no need for place typing. by providing a mapping from the implementation’s syntax to the semantic model in a similar way to that defined in clause 9.2.1. 10.1 and the relevant notational conventions of clause 8. 24 .2 Level 2 To claim HLPN Level 2 conformance to this International Standard an implementation shall have satisfied the requirements of HLPN Level 1 conformance and in addition shall include the syntax of the HLPNG defined in clause 7 and the notational conventions of clause 8. section B.10. nor a declaration.. 10.e. as these are trivial.2.2 Level 2 To claim PN Level 2 conformance to this International Standard an implementation shall have satisfied the requirements of PN Level 1 conformance and in addition shall include the syntax of the PNG defined in Annex B. i.2 HLPN Conformance 10.

.2 the integers.2. where the multiplicity of each of the basis elements is either zero or one. Æ Ò ¼ . A. .1 Sets Æ Æ· ¼½ the natural numbers. is a function A multiset. A set is a special case of a multiset. ¼. see the book by Truss in the Bibliography. and 25 .1 Sum Representation A multiset may be represented as a symbolic sum of basis elements scaled by their multiplicities (sometimes known as co-efficients). NOTE: For notions of basic set theory including sets. The multiplicity of ¾ in .   Æ which associates a multiplicity. denoted ¾ . (also known as a bag) over a non-empty basis set.2. A. The set of multisets over is denoted by . if ´µ ¼. ØÖÙ Ð× Multisets .2 Membership Given a multiset. then ¾ ¾ is a member of . the positive integers. conversely if ´ µ ¾ .  ½ ¼ ½ ÓÓÐ Ò A. is given by ´ µ. ´µ ¾ A.Annex A (normative) Mathematical Conventions This annex defines the mathematical conventions required for the definition of High-level Petri Nets. possibly zero. with each of the basis elements. functions and relations.

¾. ½ ¾¾ ¾´ µµ . ½ ¾. Ë . are equal. the multiset is called a finite multiset.5 Multiset Equality and Comparison .2. is a pair: Ë where ´Ë ǵ 26 .3 Empty Multiset The empty multiset. A. A. to the left and are defined as follows: ½ · ¾ iff ¾ ´ µ ½´ µ · ¾´ µ ¾ ( ½´ µ ¾´ µµ ´ ´ µ ½´ µ   ½   ¾ iff Scalar multiplication of a multiset. ½´ µ ¾´ µ.2. In the HLPNG.2. ½ Two multisets.3. Ò ¾ Æ .3 Concepts from Algebraic Specification In order to define the HLPNG. ½´ µ ¾´ µ. terms and many-sorted algebras that are required for the definition of the HLPNG. is the ¾ . variables. is defined as A. ´µ ¾ When is finite.1 Signatures A many-sorted (or S-sorted) signature. . The cardinality sum of the multiplicities of each of the members of the multiset. ½ ¾ ¾ ½ is less than or equal to (or contained in) A. iff ¾ . concepts from algebraic specification are required. has no members: A. Signatures provide a convenient way to characterise many-sorted algebras at a syntactic level. Many-sorted signatures provide an appropriate mathematical framework for this representation. Ò ½ « ¾ ½¾ ´ µ Ò ¢ ½´ µ . iff ¾ . ´ µ ¼.6 Multiset Operations The addition operation and subtraction partial operation on multisets. associate where ¢ is arithmetic multiplication. arcs are annotated by terms and transitions by Boolean expressions.A.2. by a natural number. of a multiset .4 Cardinality and Finite Multiset Multiset cardinality is defined in the following way. ¾. This clause introduces the concepts of signatures.

f. Denote the set of terms of sort × by Ì ÊÅ ´Ç Î µ × . and generate them inductively as follows. Ó ´ ×µ ¾ Ì ÊÅ ´Ç Î µ×.) For example. called an Ë -sorted set of variables. A. (In the algebra. ¾ Ë £ is called the input or argument sorts. and ¯ Ç is a set of operators (the names of functions) together with their arity in Ë which specifies the names of the domain and co-domain of each of the operators. in the following way. then an integer variable would be Ú´ ÁÒص or ÚÁÒØ .e. if ½ ¾ Ì ÊÅ ´Ç Î µ×½ 3. e. over Ë .3. The sort of a variable may also be declared in the same way as that of constants. A variable in Î of sort × ¾ Ë would be denoted by Ú ´ ×µ or more simply by Ú× . declared by letting A.5. Ú ¾ Î× iff ×).. A. and .2 Variables Let Î be a set of sorted variables.3. where Î× denotes the set of variables of sort × (i. for all Ó´ ×µ 2. For example an integer constant is denoted by Ó ´ ÁÒص or simply ÓÁÒØ . such as equality ( ) or less than ( ).¯ Ë is a set of sorts (the names of sets. Arity is a function from the set of operator names to Ë £ ¢ Ë . Ì ÊÅ ´Ç Î µ×Ò are Ò µ ¾ Ì ÊÅ ´Ç Î µ× Î× ×Ò ¾ Ë (Ò ¼). Using a standard convention. It is assumed that Ë and Ç are disjoint. .. for ×½ Ò ¾ sorted terms and Ó´×½ ×Ò ×µ ¾ Ç . if ÁÒØ ¾ Ë . including the empty string.3. ÁÒØ for the integers). where Ë £ is the set of finite sequences. and × the output or range sort of operator Ó. Î may be partitioned according to sorts.3. corresponding to the carrier Boolean in any associated algebra.3 Boolean Signatures The term Boolean Signature is used to mean a many-sorted signature where one of the sorts is Bool. the sort of a constant may be . A Boolean signature will also include the constant ØÖÙ ÓÓÐ . Terms of sort × ¾ Ë may be built from a signature Ë Î . ¾ Ë £ and × ¾ Ë denoted by Ó´ ×µ. then Ó´ÁÒØ ÁÒØ ÓÓе represents a binary predicate symbol. if Ë ÁÒØ ÓÓÐ . For × ¾ Ë 1. clause A.4 Terms built from a Signature and Variables ´Ë ǵ and an S-sorted set of variables. from the set of variable names to ¢ Ë. For example. the sequence of input sorts will define a cartesian product as the domain of the function corresponding to the operator and the output sort will define its co-domain – c. is an operator. ¾ Ç.g. Thus every operator in Ç is indexed by a pair ´ ×µ. then Ó´×½ ×Ò ×µ ´ ½ 27 Ì ÊÅ ´Ç Î µ× .

also called ground terms). and operators (with appropriate arguments) of output sort ÁÒØ are terms of sort ÁÒØ. Ó× . (or Ë -Algebra). À and Ë -sorted variables in Î . À .3. if Ë ´ ÁÒØ ÓÓÐ ´ÁÒØ ÁÒØ ÓÓе µ then a corresponding many-sorted algebra would be where and Ð is the set of integers: À½ ÓÓÐ Ò ØÖÙ ××Ø Ò ¢ Ð× ´ ÓÓÐ Ò Ð ××Ø Òµ  ½ ¼ ½ ÓÓÐ Ò is the usual integer comparison function. À . ´Æ ÓÓÐ Ò Ð ××Ø Òµ where Æ is the set of non-negative integers: ¼ ½ À and Î is a «× Î× 1 À× The terms binding and valuation are also used in this context. À¾ It could also be ÓÓÐ Ò ØÖÙ Ð× ××Ø Ò Æ ¢ Æ ÓÓÐ Ò. is a pair ¾ À×. provides an interpretation (meaning) for the signature Ë . then there is a corresponding element ÓÀ be considered as a function of arity zero. integer constants and variables. Ë -sorted variables are typed by the carrier corresponding to the sort. NOTE: In the algebra. Definition: A many-sorted Algebra. and Ð A. 28 . comprising an assignment function for each sort × ¾ Ë . an assignment 1 for family of functions «. Thus Thus if ÁÒØ is a sort.Let Ì ÊÅ ´Ç Î µ denote the set of all terms and Ì ÊÅ ´Ç µ the set of all closed terms (those not containing variables.3. with for all × ¾ Ë À× and £ ÇÀ ÓÀ Ó´ ×µ ¾ Ç ¾ Ë Ò × ¾ Ë the set of corresponding functions.5 Many-sorted Algebras ×¾Ë Ì ÊÅ ´Ç Î µ× A many-sorted algebra. À× . there is a corresponding set. which may À where ËÀ ´ËÀ ÇÀ µ À× × ¾ Ë is the set of carriers. known as a carrier and for every operator Ó´×½ ×Ò ×µ ¾ Ç. Ì ÊÅ ´Ç Î µ A.6 Assignment and Evaluation Given an Ë -sorted algebra. there is a corresponding function ÓÀ À×½ ¢ ¢ À×Ò À× In case an operator is a constant. × ¾ Ë . For example. For every sort.

Î Ð× « ´Ú× µ «× ´Ú× µ. if Ò µ. then Î Ð× « ´ µ ÓÀ ´Î Ð× « ´ µ Î Ð×Ò « ´ Ò µµ ¾ À×. For a constant. ¾ Ç. Ó× 2. For a variable. For × ¾ Ë 1. 3. and For ¾ Ë £ Ò . and ¾ Ì ÊÅ ´Ç Î µ× Ó ×´ Ò ¾ Ì ÊÅ ´Ç Î µ×Ò . ×× ×Ò . ¾ Ì ÊÅ ´Ç Î µ.This function may be extended to terms by defining the family of functions Î for each sort × ¾ Ë : Ð « comprising. ½ ¾ ½ ½ ½ ´ µ ½ ½ ½ 29 . with × ×Ò ¾ Ë . Î Ð× « Ì ÊÅ ´Ç Î µ× À× The values are determined inductively as follows. Î Ð× «´Ó×µ ÓÀ ¾ À×. Ú× ¾ Î× .

). PNG. Although this is a rather baroque definition of Place/Transition nets. Other subclasses may include Elementary Net systems and other high-level nets. (By convention this is omitted from the graphical representation.Annex B (normative) Net Classes The purpose of this Annex is to define various classes of nets as a subclass of the HLPNG. ¯ Ì ÝÔ È ÓØ is a function which assigns the type ÓØ to all places. Ç ¯ ÓØ ØÖÙ ÓÓÐ ½Æ Ø ¾Æ Ø À ´ ÓØ ÓÓÐ Ò Æ ¯ ØÖÙ ½ ¾ µ a many-sorted algebra for the signature Ë .1 Place/Transition nets A Place/Transition net graph (without capacity). B. ´¯ ÓØ µÀ ¯. ´ØÖÙ ÓÓÐ µÀ ØÖÙ . ¯ Æ ´ Ì µ is a pair of net annotations. 30 . Æ ØÀ Æ . ÓÓÐÀ ÓÓÐ Ò. – where ½Æ Ø ¯ ÓØ ¾Æ د ÓØ – Ì constant ØÖÙ . is a special HLPNG ÈÆ where ´Æ Ë Î À Ì ÝÔ Æ Å¼ µ ¯ ¯ ¯ ¯ Æ Ë Î ´È Ì µ is a net graph ´Ë ǵ with Ë ÓØ ÓÓÐ Æ Ø . where ÓØ ¯ and the obvious correspondences are made ( ÓØÀ ÓØ. ´½Æ Ø µÀ ½ etc. ÈÆ where ´Æ Ï Å µ ¼ ¯Æ ´È Ì µ is a net graph.) Ì ØÖÙ ÓÓÐ is a function that annotates every transition with the Boolean ¯Å È ¼ ÓØ. Currently it defines Place/Transition nets (without capacities) which is a common form of Petri nets where tokens are simply ‘black dots’. it can be seen to be in one to one correspondence with a more usual definition given below.

and hence doesn’t need to be considered. the type of each place is the same. assigning a positive integer to each arc. and the number of dots (¯) associated with each arc (Weight function). are in one to one correspondence with the positive integers. and given by a single value ¯. · ¼ This is because: ¯ ¯ ¯ the transition condition is true for each transition. 31 . These are represented by dots (¯). ¯ Å È Æ is the initial marking assigning a natural number of tokens to each place.¯Ï Æ is the weight function. the number of dots (¯) associated with each place (marking) are in one to one correspondence with the Naturals. and hence there is no need for typing places.

C. known as the flow – relation.Annex C (informative) High-level Petri Net Schema C. and allows classes of systems to be specified an an abstract level. Ë is a function which assigns sorts to places. is a function that ´ µ Ì Ì Ì ÊÅ ´Ç Î µ terms. Ì ÊÅ ´Ç Î µ is defined in Annex A. called Places. ËÓÖØ È Ò – annotates each arc with a term of the same sort as that of the associated place.2 Definition HLPNS is a structure given by ÀÄÈÆË ´Æ Ë Î ËÓÖØ Ò Ñ µ ¼ where ¯Æ – ´È Ì µ is a net graph. disjoint from Ç. called Transitions. ´Ô ص ´Ø¼ Ôµ ¾ Ì ÊÅ ´Ç Î µËÓÖØ Ô . Ѽ ´Ôµ ¾ Ì ÊÅ ´ÇµËÓÖØ´Ôµ . The ground term has the same sort as the place. ). ÓÓÐ is a function that annotates transitions with Boolean ¯Ñ È Ì ÊÅ ´Çµ such that Ô ¾ È . Î is an Ë -indexed set of variables. disjoint from È (È Ì ´È ¢ Ì µ ´Ì ¢ È µ a set of directed edges called arcs. 32 . is the initial ¼ marking function which associates a ground term which each place.1 Introduction This clause provides a formal definition for a high-level net schema. and – Ì a finite set of nodes. Ì ÊÅ ´Ç Î µ such that for all ´Ô ص ´Ø¼ Ôµ ¾ . with È a finite set of nodes. ¯ ¯ ¯ ¯ Ë ´Ë ǵ is a Boolean signature defined in Annex A. – ´ Ì µ is a pair of net annotations. It provides an abstract mathematical syntax for inscribing the graphical elements.

Tokens reside in places.2 Net Graphs In HLPNGs. The created objects may be related to objects that are consumed. The 33 .modify or consume objects from some collections and . Generally.create objects in other collections. for example. which is graphically represented by a rectangle.1. The graphical representations of components of a net graph are shown in figure D. A discrete event system comprises ¯ ¯ collections of real or abstract objects and discrete actions which . show which places a transition operates on. Arcs never connect a place with a place nor a transition with a transition. D.2.1: Graphic conventions.e. Places and transitions are called the nodes of a net graph. the collection of coins in someone’s purse. or a data base. irrespective of varying contents.. Each arc connects a place and a transition in one direction. several instances of the same object can be contained in a collection.Annex D (informative) Tutorial D. an action is modelled by a transition. Take. D. place arc transition Figure D. called arcs.1 Introduction High level Petri net graphs (HLPNGs) are used to model discrete event systems.1 Places and Tokens The objects of the system are modelled by (arbitrarily complex) data items called tokens. The contents (i. which is graphically represented by a circle or an ellipse. A collection is modelled by a place. the tokens) of a place is called the marking of the place. It is assumed that the collections considered have some permanent identity. Arrows.

A marking of a net consists of the markings of each place. If there was no separator. The number of each of the coins in the purse. Example A in figure D. The set of coins is defined in a textual part of the HLPNG called the Declarations. In this example. nothing ever happens and nothing ever changes in this system. 50c 10c 1c 10c 50c 1c 10c Coins AlicesPurse Coins = 1c. Alice’s present coin collection can be written as the initial marking. As a place can be marked with a large number of tokens. AlicesPurse. Thus. 10c. the notation 25c would be ambiguous. This means that only coins (belonging to Coins) can reside in Alice’s purse. because other markings will usually evolve. each place is defined with a special marking. Example A is a net graph. ż (AlicesPurse) = 2 1c + 3 10c + 2 50c and the net graph is then drawn (admittedly in a less illustrative way) without tokens. called the initial marking. is separated from the value of the coin by a backprime ( ). several instances of the same token can reside in the place. Drip Figure D. any number of times. For example. the initial marking may be declared textually instead of pictorially. The place. even though it has neither places nor arcs. AlicesPurse.3: Example B.e. Example B is also a net. As no actions are modelled. When a particular instance of a HLPNG is defined. to avoid any confusion (for example when the values are themselves integers). Transition Drip can always happen. 5c..2 Transitions Example B in figure D. the tokens correspond to coins.3 models the dripping of a tap. Coins. 2c.2: Example A. i.2. 34 . 50c Figure D. 20c. We need to distinguish between two 5c coins and a 25c coin. is typed by the set.2 consists of a single place. three 10 cent and two 50 cent coins. in some currencies there may be both a 5c and a 25c coin. once a net is executed. It has neither transitions nor arcs. D. which models that Alice’s purse contains two 1 cent.tokens form a collection (known in mathematics as a multiset).

the places. a ten cent and a fifty cent coin. Spend) Traditionally. and F denotes the set of arcs. It only shows what happens to Bob’s purse as a consequence of an arbitrary number of occurrences of Receive. 20c.D. called AlicesPurse. two fifty cent coins. Alice could spend: a ten cent coin. the net graph. but in this International Standard we use P (since it is written in English). These letters are the initials of the German words Stelle. She may spend any number of coins at a time. transitions. Flussrelation. as well as the size and shape of the arcs. one might say.2. D. S denotes the set of places. it has to be declared in the textual part of Example C that x denotes a variable for coins. i.e. D.. 10c. Coins AlicesPurse x Spend Coins 1c. 5c. 35 . although often important for readability. and arcs of the net. Example D does not model where the coins may come from.4.3 Arcs An arc from a place to a transition indicates that this transition consumes objects from the place. the annotation x indicates that any coin (from Alice’s purse) can be spent. Alice has a smaller coin collection comprising one ten cent and two fifty cent coins.2. Spend. and one arc from AlicesPurse to Spend. are irrelevant to the mathematical description of a net. Informally. a fifty cent coin. Arc annotations determine the kinds and numbers of tokens that are produced or consumed.4: Example C. Example C. that is by the occurrence of transition spend. and all her coins in one transaction. one transition.4 The Net Graph The size and position of the nodes. 2c. Formally this can be expressed as: P T F AlicesPurse Spend (AlicesPurse. T denotes the set of transitions. Here. However. Each arc is thus described as the pair consisting of its origin node and its target node. the net has one place.5 models that Bob starts with an empty purse and collects 10 cent coins. In figure D.3 Transition Conditions Example D in figure D. 50c x : Coins ż (AlicesPurse) ½ 10c·¾ 50c Figure D. Transition. An arc in the opposite direction indicates that this transition produces tokens on the place.

. 2c.Coins BobsPurse 10c Receive Coins 1c. 5c.6: Example E. 5c. Coins x AlicesPurse x=10c Donate 10c Coins BobsPurse Coins 1c. 36 . Bob cannot put arbitrarily many coins into his purse. The transition. 2c. 5c. Example F in figure D. however. 10c. Donate. then Donate cannot occur. Alice is ready to give Bob any of her coins. 10c. requiring that x 10c.5: Example D. 10c. 10c) tokens in AlicesPurse. In a more realistic variant of Example D. depicted in figure D. 50c n :N N¢N ÓÓÐ usual ‘less than’ predicate · N¢N N arithmetic addition ż (BobsPurse) ż (NumberOfCoins) ½ ¼ Figure D. A transition condition has been added. 2c. 50c x : Coins ż (AlicesPurse) ½ 10c·¾ 50c ż (BobsPurse) Figure D.e. accepts only 10c coins from Alice. 50c ż (BobsPurse) Figure D. can occur only with such variable values as fulfill the condition. If there are no appropriate (i. Bob.6.7 limits the number of 10 cent coins that Bob can receive to 200. In the next example.7: Example F. N n+1 n n<200 Receive 10c Coins NumberOfCoins BobsPurse N set of natural numbers Coins 1c.

4 Net Dynamics Example C can be used to illustrate the modelling of system dynamics in HLPNs. ) (Spend.10c)}) (AlicesPurse. Let her spend a 10 cent coin. A different marking would be reached by Alice spending a fifty cent coin. From this diagram.{(x.½ ½¼c) ¼c) (Spend. This indicates which transition occurs (Spend).10c)}) ¼c) (Spend.{(x.{(x. In the net. As long as Alice’s purse contains coins.D. is bound. (x. The dynamics of Example C. In her first action. she can spend any of them.¾ ¼c) (Spend. as well as the transition occurrences performed to reach each one.{(x.8. 37 . the following facts about the dynamics of Example C: ¯ If Alice spends first 10 cents and then 50 cents.. and to which value each of the variables. with x having the value 10c.50c)}) (AlicesPurse. (AlicesPurse. appearing in the arc annotations around the transition.e.{(x.½ ½¼c·½ (Spend. for example. one can read. then she will have 50 cents left.10c)}) Figure D. This occurrence of Spend is denoted by (Spend. Spend can occur with x bound to any one of the tokens in the marking of AlicesPurse. Markings reachable from reachable markings are also called reachable.8: Reachability graph of Example C. The new marking is called a reachable marking of Example C. Alice can spend any number of her coins.{(x.½ ½¼c·¾ ¼c) (Spend.½ (Spend. Spend occurs. and is bound to 10c. ¯ ¯ the markings reachable in Example C.50c)}) (AlicesPurse. as long as AlicesPurse is marked with a non-empty multiset of tokens. or if she does it in the reverse order.50c)}) (AlicesPurse.10c) ). Then in the net. are depicted in the reachability graph in figure D.50c)}) (AlicesPurse.10c) ) a new marking of the net is created: Ž (AlicesPurse) ¾ 50c. i. In this case only x appears. By the occurrence (Spend. (x.{(x.

(BobsPurse. 38 .9: Reachability graph of Example D. A Co and B Co.g. the empty sequence) will allow Alice to restore the contents of her purse. but that no variable is assigned a value. one by one. set braces . ) (Receive.½ ½¼c) (Receive.. as indicated in figure D.¯ ¯ ¯ Alice can perform at most three actions.¾ ½¼c) (Receive. ) (BobsPurse. A Co packs and sends big crates of equal size to B Co. of course. are written around the pair parentheses (. The occurrence (Receive. D. ) does not mean that Bob receives no coins.) wherever usually an entire set appears in this position. MAX.5 Flow Control Example Two companies.10.9. Crates may be taken from the store room for processing (e. only within the range of actions considered in Example C. The people from B Co have a problem. Generally there are sets of place markings and sets of variable bindings to be described. B Co has a room where the crates are stored... This procedure is modelled in figure D. of these crates.. It just happens that in our very simple example these are one-element sets and the (. ) etc.) looks unnecessarily complicated. In order to avoid being forced either to leave crates in the street or to rent another store room. B Co agrees with A Co on a ‘flow control protocol’.. Figure D. distributed to retailers. Every sequence of 3 actions ends with an empty purse. No sequence of actions (save. The store room of B Co can only hold a certain number. ) (BobsPurse. trivially. In the reachability graph. The reachability graph for Example D consists of a single infinite chain. reside in different cities.. or opened and the contents consumed – it does not matter here).. All of this holds. say.

B Co may reserve them and give the number of reserved (and empty) slots as sending credits for crates to A Co.11. Any time that there are empty slots. Each such value val. Sending a crate. and processing a crate raises the number of empty and hence unreserved slots by one. Example G(val). the situation is as follows: no crate or letter is in transit. while B Co keeps a record of empty ‘slots’ available for placing crates in the store. Initially. that may take any natural number as a value. To implement the protocol.SendCrate Cr CratesInTransit Cr Crates ReceiveCrate Cr StoreRoom Cr Crates ProcessCrate Figure D. there is no sending credit. Note that this net models infinitely many different systems. This distributed system is modelled by figure D. 39 . lowers SendingCredits by 1. the store room is empty. B Co does this by sending a letter with this number to A Co and setting the number of unreserved slots to 0. A Co keeps a record of SendingCredits. which is only possible if SendingCredits is 1 or more.10: Crate procedure. it increases SendingCredits by the number written in it. It is a parameterized HLPNG with a parameter. and all slots are empty and unreserved. MAX. Whenever A Co receives such a letter. substituted for MAX instantiates Example G to an ‘ordinary’ HLPNG without parameters.

Z is the set of integers n. . 2. new. .11: Example G. sc : N MAX : N · Z ¢ Z Z is arithmetic addition   Z ¢ Z Z is arithmetic substraction ż (CratesInTransit) ż (LettersInTransit) ż (SendingCredits) ½ ¼ ż (UnreservedSlots) ½ MAX Figure D. 1.SendCrate sc>0 Cr CratesInTransit Cr Crates ReceiveCrate Cr StoreRoom Cr Crates ProcessCrate sc sc-1 sc+new new sc n n n>0 SendLetter 0 n n+1 N N N SendingCredits ReceiveLetter LettersInTransit UnreservedSlots Crates Cr N 0. ż (StoreRoom) 40 . .

The Petri net community has publish a 2 volume set in Lecture Notes in Computer Science (volumes 1491 and 1492) as a handbook on Petri nets in 1998.Annex E (informative) Analysis Techniques There are a large number of analysis techniques for Petri nets. 41 . the second volume of Kurt Jensen’s book on Coloured Petri Nets. Readers are also referred to the bibliography. structural analysis and invariants analysis that may be used to investigate properties of systems modelled by nets. for example. including reachability analysis (with several state space reduction techniques and using model checking). This annex is just to alert readers of this standard to these possibilities.

1989. K.J. Springer-Verlag. 1987. 1992. 14. 1989. A. 11-13 December. May 1991. SpringerVerlag. “Predicate/Transition Nets”. Wissenschaftsverlag. 1991. Notations and Terminology on Petri Net Theory. Petri-Netze. 345-364. Volume 3: Practical Use. 10. pp. Jensen. 42 . Kyoto. Lecture Notes in Computer Science. 8. Arbeitspapiere der GMD 195. Lecture Notes in Computer o Science. K. Genrich. Reisig. Rozenberg (Eds. Petri Nets and Grafcet. Control and Performance Analysis. 166-179. Grundlagen und Anwendungen.) High-Level Petri Nets: Theory and Application. SpringerVerlag. 1995. 1997. University of Cambridge Computer Laboratory Technical Report No. Rozenberg (eds). Jensen. David and H. Springer-Verlag. pp. pp. E. 1991. A. Jensen. Springer-Verlag. Jensen. 7. Volume 2: Analysis Methods. H. Kyoto. Second Edition. Coloured Petri Nets. J. Petri Nets: Central Models and Their Properties Advances in Petri Nets. “Extensions to Coloured Petri Nets”. Desrochers and R. W. 2. Springer-Verlag. Mannheim. Volume 1: Basic Concepts. Jensen. 61-70. Japan. J. Rozenberg (Eds. IEEE Press. pp 207-247. Esparza. Baumgarten. Kindler and H. G. W. Billington. 3. Fernandez. Lecture Notes in Computer Science. Coloured Petri Nets. B. 11. K. Vol. “Many-sorted High-level Nets”.Bibliography 1. 1420. “Extensions to Coloured Petri Nets and their Application to Protocols”. Prentice Hall. 5. also reprinted in K. Billington. 15. Al’Jaar.Y. 4. Best and C. Bad Honnef. 12. Part I. Proceedings of the Third International Workshop on Petri Nets and Performance Models. Japan. Volume 254 (and 255 for Part II). G. Cambridge University Press. 254. Billington. Brauer. 1990. 9. Desel and J. V¨ lzer. “Flexibility in Algebraic Nets”. Second Edition. 222. 11-13 December. 1998. Alla. Cambridge Tracts in Theoretical Computer Science 40. J. 6. March 1987. Free Choice Petri Nets. 13. SpringerVerlag. invited paper in Proceedings of the Third International Workshop on Petri Nets and Performance Models. Springer-Verlag. G. K. J. 1995. September1986. 1997. E. Coloured Petri Nets. Applications of Petri Nets in Manufacturing Systems: Modelling. Vol. 1997.) High-Level Petri Nets: Theory and Application. Proceedings of an Advanced Course. 1987. R. 1986.

“Parameterized Reachability Trees for Algebraic Petri Nets”. 21. Prentice-Hall. No. 4. C. Vol. Addison-Wesley. Volumes 1491 and 1492. 1989. Rozenberg. 24. 1994. 1998. 17.16. SpringerVerlag. 1995. W. 43 . Lecture Notes in Computer Science. Volume 77. W. 392-411. pp. J. A. pp. 541-580. pp. 1998. Springer Verlag.J. Petri Nets. Murata. J. Analysis and Applications”. 338-357. Springer-Verlag. Reisig and G. Volume 935. Reisig. W.Brauer. N. Springer-Verlag. 20. 23. pp. Schmidt. W. Lakos and S. Reisig. Lectures in Petri Nets. Vol. Christensen.). An Introduction. T. G. May. Truss. Rozenberg (eds). 80.. Petri Nets and Algebraic Specifications. Petri Net Theory and the Modeling of Systems. 1991. “Petri Nets: Properties. Springer-Verlag. K. W. Proc IEEE. Salomaa (Eds. Modeling and Analysis with Petri Nets. Reisig. 18. Lecture Notes in Computer Science. EATCS. Berlin. Monographs on Theoretical Computer Science. Lecture Notes in Computer Science. 1-34. Peterson. 1985.A. 19. “A General Systematic Approach to Arc Extensions for Coloured Petri Nets”. 22. 1981.K. L. 815. Distributed Algorithms. 1991. TCS. Discrete Mathematics for Computer Scientists.