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

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

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

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

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

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

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

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

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

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

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

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

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

Enter x A Wait (x.e Control: C = ¯ Positive integer constants: N. L Variables x: A. 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. 17 .m) ¯· m e ´L ½µ¯ Leave Set of Agents:A = a½ aÆ Set of Access Modes: M = s.

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

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

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

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

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

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

2.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. 10. as these are trivial.10.2 HLPN Conformance 10.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. by providing a mapping from the implementation’s syntax to the semantic model in a similar way to that defined in clause 9. 24 . i.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. 10. there is no need for place typing. section B.1..1 and the relevant notational conventions of clause 8.e.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . 2. new. 1. . Z is the set of integers n.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. sc : N MAX : N · Z ¢ Z Z is arithmetic addition   Z ¢ Z Z is arithmetic substraction ż (CratesInTransit) ż (LettersInTransit) ż (SendingCredits) ½ ¼ ż (UnreservedSlots) ½ MAX Figure D.11: Example G. ż (StoreRoom) 40 .

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

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

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

Sign up to vote on this title
UsefulNot useful