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

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

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

. 3. and a set of modes (a type) to each transition. defined with the high-level net. called arcs. non-negative integer) which describes the number of repetitions of an item in a multiset. 3.1.1 Multiplicity: A natural number (i. a set of types.1.15.16.14.14.3 Marking of a place: A multiset of tokens associated with (‘residing in’) the place. Pre function imposing token demands (multisets of tokens) on places for each transition mode. such that only places can be connected to transitions. 3. 3.11 High-level Net (High-level Petri Net): An algebraic structure comprising: a set of places. 3.e.5 Reachability Set: The set of reachable markings of the net. and transitions to places. 3.e. called places and transitions.1.1.1. 3. Arc Annotations. 3.14.1. and their corresponding definitions in a set of Declarations.4 Reachable Marking: Any marking of the net that can be reached from the initial marking by the occurrence of transitions.1. and an initial marking. Post function determining output tokens (multisets of tokens) for places for each transition mode. 3.12 High-level Petri Net Graph: A net graph and its associated annotations comprising Place Types.14. 3.15. NOTE: The determination of transition modes guarantees that the Transition Condition is satisfied (see Transition Mode).1 Initial Marking (of the net): The set of initial place markings given with the highlevel net definition.16.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. 8 . a function associating a type to each place. a place or a transition). but never transitions to transitions.15 Multiset: A collection of items where repetition of items is allowed.1.. 3.14 Marking (of a net): The set of the place markings for all places of the net. 3. 3. 3.1 Net graph: A directed graph comprising a set of nodes of two different kinds.2 Initial Marking of a place: A special marking of a place. Transition Conditions.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 an Initial Marking of the net.2 Node (of a net): A vertex of a net graph (i.1.1.1.14.16 Net: A general term used to describe all classes of Petri nets. 3. nor places to places. and their interconnection by directed edges.1. including the initial marking. 3. a set of transitions.1.2 Multiset cardinality (cardinality of a multiset): The sum of the multiplicities of each of the members of the multiset.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.1. The demand is satisfied when the place’s marking contains (at least) the multiset of tokens indicated by the evaluated arc annotation.

the computation of the results of the associated functions.16.4 Range sort: The same as an output sort. taken from the place kind.1 Input Place (of a transition): A place connected to the transition by an input arc.24 Term: An expression comprising constants.2 Output Place (of a transition): A place connected to the transition by an output arc. 3. 3.1.20. and the edges correspond to transition occurrences. 3.1.1.1. and any simplifications performed (such as gathering like terms to obtain the symbolic sum representation of a multiset). 3.3. A place is typed.1.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.2 Term evaluation: The result obtained after the binding of variables in the term.1.24.1. 3. and one of the constants is ØÖÙ ÓÓÐ corresponding to the value true in the algebra. 3.23.1 Enabling Tokens: The multiset of values obtained when an input arc annotation is evaluated for a particular binding to variables.25. 9 .3 Place Type: A non-empty set of data items associated with a place.1. and named after their inventor.22. where the nodes correspond to reachable markings. one called places and the other called transitions.21 Reachability Graph: A directed graph of nodes and edges.1 Closed term: A term comprising constants and operators but no variables.2 Input sort: The same as an argument sort.1. variables and operators built from a signature and a set of sorted variables.20. 3.18 Parameter: A symbol that can take a range of values defined by a set.1.24. Carl Adam Petri. 3. 3. 3. normally represented by an ellipse in the net graph.1.23.20 Place: A node of a net.23 Sort: A symbol representing the name of a set.16.1. 3. 3. 3.1.1.) 3. 3.20.19 Parameterized High-level Net Graph: A high-level net graph that contains parameters in its definition.1.1.3 Output sort: The sort of an output of an operator.1.17 Operator: A symbol representing the name of a function. 3.23.1. 3. corresponding to the carrier Boolean in any associated algebra. together with their associated relations and functions. (This set can describe an arbitrarily complex data structure.1.22 Signature/Many-sorted signature: A mathematical structure comprising a set of sorts and a set of operators.3 Petri Net: An algebraic structure with two sets.1. 3. 3.1 Boolean signature: A signature where one of the sorts is ÓÓÐ. 3.1 Argument sort: The sort of an argument of an operator. It is instantiated as a constant.1.25 Token: A data item associated with a place and chosen from the place’s type.23. 3.1.

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

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

5. there are enough tokens on the input places to satisfy the linear combination of the pre maps for each transition mode in Ì . 12 . NOTE: A step may comprise the occurrence of: a single transition mode. 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.3. Ì . Also if then this reduces to the definition in the previous subclause. Å ¾ ÈÄ . Ì ¾ Ì Ê ÆË . is enabled at a marking Å iff È Ö ´ØÖµ Å 5. ØÖ ¾ Ì Ê ÆË .4 Transition Rule Given that a finite multiset of transition modes.3 Enabling 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. Ì ½.e.3.2 Concurrent Enabling of Transition Modes A finite multiset of transition modes. 5.1 Enabling of a Single Transition Mode A transition mode. Ì Å ¼ or Å   Å ¼ .5.2 Marking of HLPN A Marking of the HLPN is a multiset. or any number of concurrently enabled transition modes. i. is enabled at a marking Å . This definition allows a transition mode to be concurrently enabled with itself.

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

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

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

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

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

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

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

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

Three annotations are associated with a place Ô: ­ ¯ ¯ ¯ the place name. If the initial marking is empty. ż ´Ôµ. For example. 21 .If a step is enabled in marking Å . constants and functions that are used to annotate the Graph part. the name of the type (Ì ÝÔ the initial marking. Å ¼ . Å ¼ . If the Transition Condition is true (Ì ´Øµ ØÖÙ ). 8.2 Places Places are represented by ellipses (often circles). ´Ôµ) associated with the place. the initial marking could be shown inside the ellipse. 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. 8. where Å ¼ is given by denoted Å Ô¾È Å ¼ ´Ôµ Å ´Ôµ   ´ Ø «Ø µ¾ Î Ð«Ø ´Ô ص · ´ Ø «Ø µ¾ Î Ð«Ø ´Ø Ôµ 8 Notation for High-level Petri Net Graphs 8. defining all the types. and a Declaration. and its name and type outside. The width. and the type and initial marking outside.1 General The graphical form comprises two parts: a Graph which represents the net elements graphically and carries textual inscriptions. variables. colour and patterns of the lines used to draw the graph are not mandated by this standard. There needs to be a visual association between an inscription and the net element to which it belongs. then it may be omitted. it may be omitted. 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. the Transition Condition. 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. For example. The position of the annotations with respect to places is not mandated.

x y t1 represents a transition with a name t1. and the operator less than.4 Arcs For ´Ô ص ¾ .6). Let ÎØ Î be the set of variables associated with transition Ø. ´Ô ص ´Ø Ôµ. For example. . 3. or the name of the transition could be included inside the rectangle. Arcs are annotated with terms. 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. x and y. and the transition condition outside. of domains is given by 22 . Thus the set Ì ÝÔ ´Üµ Ü ¾ È Ì . and its name outside. An arc is represented by an arrow:   8.5 Markings and Tokens A token is a member of Ô¾È Ì ÝÔ ´Ôµ. 2.2. then Ì ÝÔ ´Øµ «Ø Î Ð ÓÓÐ «Ø ´Ì ´Øµµ ØÖÙ The types of places are obtained directly from the HLPN graph definition. an arrow is drawn from place Ô to transition Ø and vice versa for ´Ø Ôµ ¾ . Define « Ø as an assignment for À and ÎØ (cf A. Transitions: Ì is the set of transitions in the HLPN. and a transition condition. but usual mathematical conventions should be adopted where possible. 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. 8. Places: È is the set of places in the HLPN. where both the types of the variables. The notation for terms is not mandated by this International Standard. If ´Ô ص and ´Ø Ôµ have the same annotations (Ô is a side place of Ø). then this may be shown by a single arc with an arrowhead at both ends and annotated by a single inscription.1). x y.3. The position of the annotations with respect to transitions is not mandated. the transition condition could be shown inside the rectangle (as in the example). 1. Ë 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. A mechanism must be provided to remove any ambiguity regarding the association of these annotations with the correct transition. are defined in the declarations.

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

1.e. 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 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.2.10. 24 .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. there is no need for place typing. 10. 10.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. nor a declaration.. i.1 and the relevant notational conventions of clause 8. section B.2 HLPN Conformance 10. as these are trivial.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. new. . . 1. Z is the set of integers n.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.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 second volume of Kurt Jensen’s book on Coloured Petri Nets. Readers are also referred to the bibliography. 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. for example. 41 . structural analysis and invariants analysis that may be used to investigate properties of systems modelled by nets. This annex is just to alert readers of this standard to these possibilities.Annex E (informative) Analysis Techniques There are a large number of analysis techniques for Petri nets. including reachability analysis (with several state space reduction techniques and using model checking).

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

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