AMAST'98 (Algebraic Methodology and Software Technology, Manaus - Brazil, 98):

The State of PEP

BIB-TeX entry

Author: Bernd Grahlmann

Abstract:

The PEP tool can be considered to be one of the most widely distributed Petri net based tools. A continuously increasing functionality and an adequate graphical user interface may have been good reasons for its acceptance. Currently the tool contains approximately 500,000 lines of source code, and supports (to the best of our knowledge) the widest variety of input formalisms and verification methods of all verification tools. We briefly review the most recent developments.

Ftp-able versions of the tool and PEP related papers are available via http://theoretica.informatik.uni-oldenburg.de/~pep.

Keywords: 3D visualisation, C code generation, Parallel programs, PEP, Petri nets, SDL, Simulation, Verification.

SPIN Workshop (Paris 1998):

Profiting from Spin in PEP

BIB-TeX entry

Authors: Bernd Grahlmann and Carola Pohl

Abstract:

This paper describes how the PEP tool (Programming Environmnet based on Petri nets) profits from an integration of the Spin (Simple PROMELA INterpreter) verification package.

Translation methods from three input formalisms (parallel programs, high-level and low-level Petri nets) into PROMELA (PROtocol MEta LAnguage) are discussed and the Spin based verification is compared with a Petri net based partial order model checker using a number of typical examples.

Keywords: Parallel programs, PEP, Petri nets, PROMELA, SDL, Spin, Verification.

ATPN'98 (Application and Theory of Petri Nets - Lisboa 98):

A Compositional Petri Net Semantics for SDL

BIB-TeX entry

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract:

In this paper a compositional high-level Petri net semantics for SDL (Specification and Description Language) is presented. Emphasis is laid on the modelling of dynamic creation and termination of processes and of procedures - features, which are, for instance, essential for typical client-server systems.

In a preliminary paper we have already shown that we are able to use `state of the art' verification techniques by basing our approach on M-nets (an algebra of high-level Petri nets). Therefore, this paper concentrates on the details of the semantics.

A distinctive feature of the presented solution is that the `infinite case' (infinitely many concurrent process and procedure instances as well as unbounded capacities of input queues and channels) is covered.

Keywords: ARQ protocol, Compositionality, Concurrency, Dynamic Processes, Infinity, Petri Net Semantics, Procedures, SDL.

TACAS'98 (Tools and Algorithms for the Construction and Analysis of Systems - Lisboa 98):

Combining Finite Automata, Parallel Programs and SDL using Petri Nets

BIB-TeX entry

Author: Bernd Grahlmann

Abstract:

This paper introduces a method to combine finite automata, parallel programs and SDL (Specification and Description Language) specifications. We base our approach on M-nets exploiting the rich set of composition operators available in this algebra of high-level Petri nets. In order to be able to combine different modelling techniques, we rely on compatible interfaces. Therefore,

Considering the hybrid modelling of an ARQ (Automatic Repeat reQuest) protocol, we show how the different formalisms fit together as well as the resulting verification possibilities. As a side-effect we describe on-going development of the PEP tool (Programming Environment based on Petri Nets). As a consequence of our approach we are introducing a hierarchical `programming with nets' method which is currently implemented in the high-level Petri net editor of the tool.

Keywords: B(PN)^2, Finite automata, Hybrid system design, M-nets, Parallel programs, PEP, Petri nets, SDL, Verification.

HICSS'98 (31st Hawaii International Conference on System Science):

Towards Compositional Verification of SDL Systems

BIB-TeX entry

An extended but preliminary version is online available here

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract:

In this paper, a new method for proving qualitative properties of SDL-systems is presented, which is based on a compositional high-level Petri net semantics for SDL. Since emphasis is laid on the modelling of dynamic creation and termination of processes and of procedures, our method is especially interesting for typical client-server systems.

By using M-nets as the semantic model we are able to use `state of the art' verification techniques. For instance, the verification component of the PEP tool may be applied which presently includes partial order based model checking and algorithms based on linear programming as well as interfaces to other verification packages such as INA, SMV and SPIN providing reduction algorithms based on BDDs, on the stubborn set or sleep set method, and on symmetries.

We show the benefits of our method applying it to a typical client-server system. After describing how safety, liveness and progress properties can be checked fully automatically, we give examples how the compositional nature of the M-net semantics can be used to solve the `state explosion' problem, and how interactive verification may extend the verification possibilities.

Keywords: Compositionality, Concurrency, Dynamic Processes, Petri Net Semantics, Procedures, SDL, Verification.

SDL (Technical Report):

A Compositional Petri Net Semantics for SDL

This is a preliminary but extended version of two papers which has the reference:

BIB-TeX entry

The details of the final versions can be found here and here.

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract:

In this paper a high-level Petri net semantics for SDL (Specification and Description Language) is presented. Emphasis is laid on the modelling of dynamic creation and termination of processes and of procedures - features, which are, for instance, essential for typical client-server systems.

In addition to presenting the main ideas as well as the details of the semantics, we show that we are able to use `state of the art' verification techniques by basing our approach on M-nets (an algebra of high-level Petri nets). Therefore, we verify our running example, an ARQ (Automatic Repeat reQuest) communication protocol, using the verification component of the PEP tool which presently includes partial order based model checking and algorithms based on linear programming as well as interfaces to other verification packages such as INA, SMV and SPIN providing reduction algorithms based on BDDs, on the stubborn set or sleep set method, and on symmetries. Moreover, we give examples how the compositional nature of the M-net semantics can be used to solve the `state explosion' problem, and how interactive verification may extend the verification possibilities.

Keywords: ARQ protocol, Compositionality, Concurrency, Dynamic Processes, PEP tool, Petri Net Semantics, Procedures, SDL, Verification.

ATPN'97:

The PEP Tool

BIB-TeX entry

Author: Bernd Grahlmann

Abstract:

The PEP tool is a Programming Environment based on Petri Nets. Comprehensive modelling, compilation, simulation and verification components are embedded in a user-friendly graphical interface. The basic idea is that the modelling component allows the user to design parallel systems by parallel finite automata, parallel programs, process algebra terms, high-level or low-level Petri nets, and that the PEP system then automatically generates Petri nets from such models in order to use Petri net theory for simulation and verification purposes.

This paper describes the typical usage of the PEP tool by considering the design of the well-known `alternating-bit' protocol. Among others, the usefulness of new concepts for the handling of hierarchies and synchronous communication is explained.

PEP has been implemented on Solaris 2.x and Linux. Ftp-able versions are available via http://parsys.informatik.uni-oldenburg.de/~pep.

Keywords: `Alternating bit' protocol, B(PN)^2, Hierarchical Petri nets, M-nets, Parallel finite automata, Parallel programs, PEP, Simulation, Tool, Verification.

CAV'97:

The PEP Tool

BIB-TeX entry

Author: Bernd Grahlmann

Abstract:

The PEP tool embeds sophisticated programming and verification components in a user-friendly graphical interface. The basic idea is that the programming component allows the user to design concurrent algorithms in an imperative language, and that the PEP system then generates Petri nets from such programs in order to use Petri net theory for simulation and verification purposes. A key feature is flexibility; its modular design eases the task of adding new interfaces to other verification packages, such as `INA', `PROD' or `SMV'.

PEP has been implemented on Solaris 2.x and Linux. Ftp-able versions are available via http://parsys.informatik.uni-oldenburg.de/~pep.

Keywords: Binary decision diagrams, B(PN)^2, Model checking, PEP, Petri nets, Simulation, Stubborn sets, Temporal logic, Tool.

Model checker correction:

Computing Reachability Properties Hidden in Finite Net Unfoldings

Author: Burkhard Graves

Abstract:

It is commonly known that every reachable marking of a finite-state Petri net system is represented in its finite unfolding according to McMillan. Also the reachability of markings from each other is represented in the finite unfolding, but it is almost unknown that this information can be hidden very deep. This paper presents an efficient method for gaining this information, which is of course of great importance for potential modelcheckers working on finite unfoldings. All results presented in this paper also hold for a recently proposed optimized unfolding method.

Keywords: Branching process, Finite unfolding, Model checking, Petri net, Reachability of markings, Tricky events, Verification.

PDSE'97 (Parallel and Distributed Software Engineering - Boston 97):

A Petri Net Semantics for B(PN)^2 with Procedures

BIB-TeX entry

An extended but preliminary version is online available here

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract:

Verification of parallel programs is a very important goal on the way to improve the reliability of software. The PEP tool, a Programming Environment based on Petri nets, allows verification of parallel programs by a variety of different verification methods (e.g., partial order or BDD based model checking, and stubborn set or symmetrically reduced state space analysis) based on a compositional denotational Petri net semantics.

The main contribution of this paper consists in the development of a fully compositional high-level Petri net semantics for concurrent programs with procedures, covering recursion, global variables, and different types of parameter passing (including call-by-reference). The semantics (which is already implemented) is oriented towards verification, i.e., the semantic models are minimised.

Due to the abstract and flexible nature of the Petri net model used, our approach is very general and may also be applied to other specification and programming languages. We are, for instance, presently approaching SDL (Specification and Description Language).

Keywords: B(PN)^2, High-level Petri Nets, M-nets, Parallel Programming Language, PEP, Petri Net Semantics, Procedures, Verification.

TACAS'97:

The Reference Component of PEP

(2 pages on one version)

BIB-TeX entry

Author: Bernd Grahlmann

Abstract:

The PEP tool is a Programming Environment based on Petri Nets. Sophisticated programming and verification components are embedded in a user-friendly graphical interface. The basic idea is that the programming component allows the user to design concurrent algorithms in an easy-to-use imperative language, and that the PEP system then generates Petri nets from such programs in order to use Petri net theory for simulation and verification purposes.

The main focus of this paper is the reference component which represents the bridge between these two worlds. We integrate references in the formal semantics and present some of the provided features. Among others the simulation of a parallel program can be triggered through the simulation of a Petri net. Program formulae can be transformed automatically into net formulae which can then be an input for the verification component.

PEP has been implemented on Solaris 2.x and Linux. Ftp-able versions are available via http://parsys.informatik.uni-oldenburg.de/~pep.

Keywords: B(PN)^2, Model checking, Parallel finite automata, PEP, Petri nets, Reference component, Simulation, Temporal logic, Tool.

TACAS'96:

PEP - More than a Petri Net Tool

BIB-TeX entry

Authors: Bernd Grahlmann and Eike Best

Abstract:

This paper presents the syntax of a concurrent programming The PEP system (Programming Environment based on Petri Nets) supports the most important tasks of a good net tool, including HL and LL net editing and comfortable simulation facilities. In addition, these features are embedded in sophisticated programming and verification components.

The programming component allows the user to design concurrent algorithms in an easy-to-use imperative language, and the PEP system then generates Petri nets from such programs. The PEP tool's comprehensive verification components allow a large range of properties of parallel systems to be checked efficiently on either programs or their corresponding nets. This includes user-defined properties specified by temporal logic formulae as well as specific properties for which dedicated algorithms are available.

PEP has been implemented on Solaris 2.4, SunOS 4.1.3 and Linux. Ftp-able versions are available.

Keywords: B(PN)^2, Model checking, Parallel finite automata, PEP, Petri nets, Process algebra, Temporal logic, Tool.

(December 96):

A Petri Net Semantics for B(PN)^2 with Procedures

This is a preliminary but extended version. The reference for the final version is:

BIB-TeX entry

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract:

Verification of parallel programs is a very important goal on the way to improve the reliability of software. The PEP tool, a Programming Environment based on Petri nets, allows verification of parallel programs by partial order model checking based on a compositional denotational Petri net semantics.

The language supported by the PEP tool covers block structuring, parallel and sequential composition, choice, iteration, synchronous and asynchronous communication, including use of unbounded buffers. At present, it does not cover, however, the structuring of programs by procedures.

The main contribution of this paper consists in the development of a fully compositional high-level Petri net semantics for concurrent programs with procedures, covering recursion, global variables, and different types of parameter passing (including call-by-reference).

The semantics will guarantee that the semantical model (high-level as well as low-level net) of program P is finite whenever:
- P has only finite data types.
- For each procedure in P only finitely many instances can be active concurrently.

Due to the abstract and flexible nature of the Petri net model used, our approach is very general and may also be applied to other specification and programming languages. This has already partially been done for SDL (Specification and Description Language).

Keywords: B(PN)^2, high-level Petri nets, M-nets, parallel programming language, PEP, Petri net semantics, procedures, verification.

Technical Report (July 96):

A Petri Net Semantics for B(PN)^2 with Procedures which Allows Verification

This is a preliminary version with reference:

BIB-TeX entry

The reference for the final version is:

BIB-TeX entry

Authors: Hans Fleischhack and Bernd Grahlmann

Abstract: Verification of parallel programs is a very important goal on the way to improve the reliability of software. The PEP tool, a Programming Environment based on Petri nets, allows verification of parallel programs by partial order model checking based on a compositional denotational Petri net semantics.

The language supported by the PEP tool covers block structuring, parallel and sequential composition, choice, iteration, synchronous and asynchronous communication, including use of unbounded buffers. At present, it does not cover, however, the structuring of programs by procedures.

The main contribution of this paper consists in the development of a fully compositional high level Petri net semantics for concurrent programs with procedures, covering recursion, global variables, and many types of parameter passing (including call-by-reference).

The semantics will guarantee that the semantical model of program P is finite whenever:
- P has only finite data types.
- For each procedure in P only a finitely many instances can be active concurrently.

Due to the abstract and flexible nature of the Petri net model used, our approach is very general and may also be applied to other specification and programming languages. This has already (partially) been done for the Specification and Description Language (SDL).

Keywords: B(PN)^2, high-level Petri nets, M-nets, parallel programming language, PEP, Petri net semantics, procedures, verification.

POMIV'96:

Partial Order Verification with PEP

Author: Eike Best

Abstract: This paper describes the current status of the verification testbed PEP (Programming Environment based on Petri nets) from a personal perspective of the author. The paper concentrates on what are perceived as the main high-lights and the major shortcomings of PEP.

Parle'93:

B(PN)^2 - a Basic Petri Net Programming Notation

Authors: Eike Best and Richard P. Hopkins

Abstract: This paper presents the syntax of a concurrent programming notation which integrates a variety of process interaction techniques, its compositional Petri net semantics via the Box calculus, and an example of using the semantics for program verification.

Keywords: Concurrent Programming Notation, Petri Nets, Peterson's Mutual Exclusion Algorithm

STRICT'95 (Berlin):

An M-net Semantics of B(PN)^2

Authors: Eike Best, Hans Fleischhack, Wojciech Fraczak, Richard P. Hopkins, Hanna Klaudel and Elisabeth Pelz

Abstract: Using a class of high level Petri nets, M-nets, endowed with composition operators resembling those of CCS, we give the compositional semantics of B(PN)^2 - a syntactically simple but semantically powerful concurrent programming language. We also give an associated low level net semantics and show the consistency of these high and low level semantics, as well as consistency with a previously defined low level semantics of B(PN)^2.

Application and Theory of Petri Nets'95 (Torino 95):

A Class of Composable High Level Petri Nets

Authors: Eike Best, Hans Fleischhack, Wojciech Fraczak, Richard P. Hopkins, Hanna Klaudel and Elisabeth Pelz

Abstract: In this paper a high-level Petri net model called M-nets (for multilabeled nets) is developed. A distinctive feature of this model is that it allows not only vertical unfolding, as do most other high-level net models, but also horizontal composition - in particular, synchronisation - in a manner similar to process algebras such as CCS. This turns the set of M-nets into a domain whose composition operations satisfy various algebraic properties. The operations are shown to be consistent with unfolding in the sense that the unfolding of a composite high-level net is the composition of the unfoldings of its components. A companion paper shows how this algebra can be used to define the semantics of a concurrent programming language compositionally.

Application and Theory of Petri Nets'95 (Torino 95):

A Refined View of the Box Algebra

Authors: Eike Best and Maciej Koutny

Abstract: This paper presents the operational semantics and the Petri net semantics of a fragment of the box algebra in tutorial style. For the operational semantics, inductive rules for marked expressions are given. For the net semantics, a general mechanism of refinement and relabelling is introduced, using which the connectives of the algebra are defined. A companion paper shows how this mechanism can be extended to handle recursion.

Keywords: Petri nets, Process algebra, Refinement.

TACAS'96 (Passau):

An Improvement of McMillan's Unfolding Algorithm

Author: Javier Esparza, Stefan Römer and Walter Vogler

Abstract: McMillan has recently proposed a new technique to avoid the state explosion problem in the verification of systems modelled with finite-state Petri nets. The technique requires to construct a finite initial part of the unfolding of the net. McMillan's algorithm for this task may yield initial parts that are larger than necessary (exponentially larger in the worst case). We present a refinement of the algorithm which overcomes this problem.

RELECTRONIC'95 (Budapest):

Verifying Telecommunication Protocols with PEP

BIB-TeX entry

Author: Bernd Grahlmann

Abstract: Nowadays telecommunication services become more and more complex. Because of the increasing comfort of these services the design and especially the verification of the underlying protocols is an extremely difficult task. In general protocols are only extensively tested but not verified due to the lack of powerful tools.

Within the PEP project a tool has been developed which is well suited to design telecommunication protocols with a parallel specification and programming language called B(PN)^2. Furthermore the automatic translation into Petri nets allows the efficient verification of various interesting properties by use of a partial order based model checking algorithm.

Keywords: Protocols, Petri nets, Verification, Model checking, Tool.

3. Workshop Algorithmen und Werkzeuge für Petrinetze:

Petri Net File Formats

BIB-TeX entry

Author: Bernd Grahlmann

Abstract: The main intention of this paper is to encourage discussion about standards for Petri net file formats. We present criteria for good formats and estimate their significance for different classes of involved persons. The following persons are considered: The PEP file format serves as an example to explain design decisions.

Keywords: File Formats, PEP, Petri Nets, Standards.

2. Workshop Algorithmen und Werkzeuge für Petrinetze:

A new Interface for the PEP tool - Parallel Finite Automata -

BIB-TeX entry

Author: Bernd Grahlmann, Matthias Möller and Ulrich Anhalt

Abstract: This paper introduces a special kind of parallel finite automata (PFA) with B(PN)^2 actions as edge annotations. An algorithm for the automatic translation into a B(PN)^2 program is described. The algorithm is non-trivial because the structure of a PFA is preserved in the generated B(PN)^2 program.

The modelling of the `Alternating-Bit' protocol using the parallel composition of four finite automata (FA) is considered as an example. The resulting B(PN)^2 program can be used directly as an input for the current version of the PEP tool. Thus one further input interface is provided to the user of the tool.

Keywords: Alternating-Bit-Protocol, B(PN)^2, Finite Automata, PEP.

ESOP'96 (Linköping):

Checking System Properties via Integer Programming.

Authors: Stephan Melzer and Javier Esparza

Abstract: The marking equation is a well known verification method in the Petri net community. It has also be applied by Avrunin, Corbett et al. to automata models. It is a semidecision method, and it may fail to give an answer for some systems, in particular for those communicating by means of shared variables. In this paper, we complement the marking equation by a so called trap equation. We show that both together significantly extend the range of verifiable systems by conducting several case studies.

Keywords:Integer Programming, Petri net, marking equation, trap equation.

ATPN'95 (Torino):

PEP: A Programming Environment based on Petri nets

BIB-TeX entry

Author: Bernd Grahlmann

Abstract: The PEP system is not just another Petri net tool. Of course it fullfills the main tasks of a good net tool. It includes a high-level and a low-level net editor with comfortable editing and simulating facilities. In addition it offers a sophisticated verification component based on a model checking algorithm using partial orders. Thus various properties - given as temporal logic formulae can be checked efficiently.

But the PEP system is even more, it is a Programming Environment based on Petri Nets. In PEP two of today's most accepted theoretical approaches for the description of parallel systems, Petri nets and process algebras, are combined to model, simulate, analyse and verify parallel systems. The application of both approaches using a common, flexible parallel programming language called B(PN)^2 (Basic Petri Net Programming Notation) is one of the main characteristics of PEP.

Its comprehensive verification component allows to verify a large range of properties of the parallel systems modelled by the PEP tool. PEP has been implemented on Solaris 2.4, SunOS 4.1.3 and Linux. An ftp-able version will be made available shortly.

Keywords: Petri nets, Parallel Programming Language, Simulation, Verification, Model checking, Tool.

Project Report:

A BDD-based Model Checker for the PEP Tool

Author: Guido Wimmel

Abstract: PEP (Programming Environment based on Petri Nets) is a tool developed at the University of Hildesheim. It can be used for editing, simulating and verifying Petri nets, and for creating Petri nets from a program in an imperative programming language. For the verification task, model checkers are used to decide whether a given logical formula is true or false for a particular Petri net. A fairly new method in implementing model checkers, symbolic model checking, involves binary decision diagrams (BDDs), a data structure for representing considerably large state spaces. In the individual project described in this dissertation, a BDD-based model checker for the PEP tool was developed that can verify safe Petri nets. The model checker makes use of the SMV system, developed at the Carnegie Mellon University. In addition, a range of different modelling possibilities, model checking options and optimisation techniques is discussed and evaluated using examples like the dining philosophers problem. The performance of BDD-based Petri net model checking is compared to the performance of the partial order model checker that is already implemented in the PEP Tool.

Keywords: Petri nets, symbolic model checking, binary decision diagrams, PEP Tool, SMV, dining philosophers problem.

Diplomarbeit:

SimPEP 3D-Visualisierung und Animation paralleler Prozesse

BIB-TeX entry

Author: Michael Kater

PEP-Workshop Berlin 1994

BIB-TeX entry

PEP: Ein Werkzeug zur Modellierung, Simulation, Analyse und Verifikation paralleler Systeme

BIB-TeX entry

Author: Bernd Grahlmann

Abstract: PEP is a Programming Environment based on Petri Nets. In PEP two of today's most accepted theoretical approaches for the description of parallel systems, Petri nets and process algebras, are combined to model, to simulate, to analyse and to verify parallel systems. The application of both approaches using a common, flexible parallel programming language called B(PN)^2 (Basic Petri Net Programming Notation) is one of the main characteristics of PEP. Its comprehensive verification component offers the possibility to verify a large range of properties of the parallel systems modelled by the PEP tool.

In this talk the fundamental objects -- B(PN)^2 programs, PBC (Petri Box Calculus) expressions and Petri boxes -- will be introduced. Considering the typical cycle of the usage of the PEP system the interplay of these objects will be explained as will be the basic functionality of the prototype. This leads directly to the structure of the PEP system, i. e., the composition and the interaction of the individual components constituting the tool. Finally the advantages of integrating the functionality in a graphical user surface are emphasized by demonstrating the use of the tool on an example.

Implementation Concepts of PEP

Author: Andree Seidel

Abstract: The PEP system consists of editors, compilers and simulation and analysis tools. Because of the different requirements for the implementation of these four system parts, the programming languages C as well as C++ were used. The basic implementation concepts of the system and its data structures are presented in this talk.

Since the analysis tools consist of complex algorithms, the language C was prefered for their implementation. These parts of the system can therefore run on different remote machines.

The other parts of the system are designed in object-oriented fashion by means of C++. The kernel of this implementation is implemented in terms of a large class library. This library consists of several categories of classes: on the one hand basic classes like data structures for the collection of objects, classes for the operating system and the user interface, and classes for the graphical representation. On the other hand, there are special classes concerning B(PN)^2, PBC and Petri boxes.

An Efficient Algorithm for the Computation of Unfoldings of Finite, Safe Petri Nets

Author: Stefan Römer

Abstract: It is reasonable suitable to describe the behaviour of systems (marked Petri nets) by giving their partial order semantics in terms of process nets. Branching processes are defined via condition/event nets, i.e. process nets, which are acyclic and allow forward branching but no backward branching of conditions. A maximal branching process contains information about all possible runs of a system. Concerning reachability and deadlock properties it is sufficient to construct a finite prefix of this process, called unfolding, which is large enough to implicitly represent all reachable states of the system. The algorithm for generating unfoldings of 1-safe systems, which is used within the framework of PEP, has been developed by K. L. McMillan. We were able to increase efficiency of the implementation by correcting some insufficencies of the original algorithm. Furthermore a number of extensions have been implemented in order to faciliate

Modelchecking als Komponente der Petrinetzbasierten Entwicklungs- und Programmierumgebung PEP

Author: Thomas Thielke

Abstract: The use of Petri nets for modelling highly parallel systems, especially parallel programs, becomes more and more popular in theoretical as well as practical regards. Verification of system properties often is a severe problem. Due to the state explosion problem most algorithms for analysis fail even for small, non-trivial examples. Model checking - a general approach for analysis - the algorithmic determination of truth or falsehood of a temporal logic formula with respect to a system is an NP-hard problem.

We describe the implementation of an efficient model checker for 1-safe T-systems called MCA as well as its applications and limits when being used in the framework of PEP. The basic idea of the algorithm is to avoid the generation of the reachability tree by the suitable manipulation of a temporal logic formula and its evaluation directly on the system rather than the tree. The implementation is ploynomial in the size of the system, but exponential in the size of the formula. The latter is not crucial, because in general meaningful and interesting formulae are small in comparison with the size of the systems in question.

Implementation of a Model Checking Algorithm Based on Partial Order Semantics

Author: Burkhard Graves

Abstract: Javier Esparza presented in his Habilitation Thesis 'A Partial Order Approach to Model Checking' (1993) a new approach dealing with the model checking problem which makes fundamental use of the theory of net unfoldings.

Most of the work done in the field of model checking concentrates on interleaving semantics, which are well suited for an easy design of elegant modelcheckers. One of the main disadvantages of interleaving model checkers is closely related to the state explosion problem. In special cases partial order semantics provides an interesting alternative to deal with this problem, because of the usually smaller partial orders (compared to the set of interleavings) of a system. On the other hand the development of appropriate verification algorithms is much more sophisticated.

In this talk an attempt will be made to explain the fundamental aspects of Esparza's approach. By giving various examples the focus of interest will be to explain the way the model checker implemented in the PEP system works.

Verweise in PEP und mögliche Anwendungen

Author: Matthias Damm

Abstract: Using the PEP system it is possible to translate a program written in the concurrent programming notation B(PN)^2 into a box expression of the Petri Box Calculus (PBC). Each box expression can be translated into a Petri box, a special class of safe Petri nets. The token game of the resulting Petri box can be simulated in the Petri box editor.

Each atomic command used in a B(PN)^2 program is represented by a single transition, each possible value of a variable by a single place in the resulting Petri box. In many cases (e.g. while learning how to use B(PN)^2 or while checking properties of a program by using the built-in Petri net simulator) it can be very useful to know which atomic command corresponds to which transition or which place belongs to which variable's value. Therefore, PEP creates a system of references between the B(PN)^2 program, the box expression and the Petri box while translating one into the other.

The application of references is very simple: After selecting one or more vertices in the Petri box and calling the 'reference' menu item, the corresponding part of the program will be highlighted. The other way round, one simply selects a region of the program text and in return gets the corresponding vertices.

Another possible (but not yet implemented) application is the simulation of a concurrent program based on the simulation of the Petri box. An enabled transition belonging to an atomic command denotes that the program is in a state where this command might be executed. The firing of the transition represents the execution of this command. The declared variables' bindings can be seen in the marking of the places in the data or channel box.

An Introduction to the Principles, the Functionality and the Use of the PEP System

BIB-TeX entry

Author: Bernd Grahlmann

Abstract: The Programming Environment based on Petri Nets PEP focuses its interest mainly on four kinds of objects well suited to model, to simulate, to analyse and to verify parallel systems: A project management component is the central part of PEP. Apart from editors for the kinds of objects just described, compilers and analysis algorithms can be invoked.

This talk introduces the conception and the functionality of PEP. It is augmented by examples of parallel systems being modelled and verified by the tool. Performance results as well as other statistics are presented. Finally an overview concerning future work is given.

A Temporal Logic for B(PN)^2 Programs

Author: Robert Riemann
Abstract: An important goal of a development- and verification environment for parallel programs is to formulate and verify properties of a given program. For the programming language B(PN)^2 (Basic Petri Net Programming Notation), the semantics of a program are defined as a Petri net. This Petri net is called a Petri box.

The problem of verifying a formula for B(PN)^2 is solved in the PEP system (Programming Environment based on Petri nets) by verifying a corresponding formula on the Petri box of the program.

A user of the PEP system can express a property of a program by means of a formula of a temporal logic defined on Petri nets. The elementary formulae of this logic are place related formulae. This talk describes how one can define a similar logic on B(PN)^2 rather than on nets. The elementary formulae refer to certain points in the control flow of a program, rather than the places of a net. As these points get translated into places, the formulae of a program get translated into formulae of a net.

The definition of the new logic on B(PN)^2 is given. The semantics of a formula on B(PN)^2 is given as a formula on the Petri box of the corresponding program. Thus the model checking problem for B(PN)^2 is solved by reducing it to the model checking problem for Petri nets which is integrated in B(PN)^2 already.

First an introduction to the syntax and semantics of B(PN)^2 is given. Then we present the temporal logic on several examples. Finally some alternative possibilities for the definition of the logic on B(PN)^2 are discussed.

A Low-Level Net Semantics for B(PN)^2 Procedures

Author: Lars Jenner
Abstract: Via the Petri Box Calculus (PBC), the programming notation B(PN)^2 (Basic Petri Net Programming Notation) has been given a basic Petri box semantics. The aim of this talk is to augment B(PN)^2 with a procedure concept and to give it an appropriate net semantics.

It will be shown that a modified refinement operator for the PBC which satisfies the axiom of syntactic substitution can be used to solve this problem.

Based on this refinement operator, a low-level Petri box semantics is given to a B(PN)^2 procedure syntax, which provides direct and simultaneous recursion as well as call-by-value and call-by-reference mechanisms. Furthermore, these procedures can be declared in every block, they can be nested, they provide static bindings and they can affect global variables.

Except for the modification of the refinement operator, the framework of PBC is kept unchanged.

Conception of a C Code Generator for B(PN)^2

Author: Stephan Melzer
Abstract: In this talk the basic ideas of the underlying an implementation of a code generator for B(PN)^2 (Basic Petri Net Programming Notation), i.e. a translator of B(PN)^2 into C is presented. The generator translates the core syntax of the source language, i.e. B(PN)^2 into C with the additional facility that within B(PN)^2 atomic commands, a variety of C routines can be called which are pre-implemented and later bound to the product of the translation.

The destination language is represented in terms of the ANSI C standard with its operating system routines belonging to the POSIX standard. The source language is considered to be used on a multiprocessor UNIX platform. The major difficultiy of a translation are the following: Some considerations concerning the choice of the processing platform (UNIX processes / multi-threads) are briefly presented.

A High-Level Net Semantics for B(PN)^2 with Procedures

Author: Hans Fleischhack
Abstract: The semantics of B(PN)^2 (Basic Petri Net Programming Notation) has previously been defined in terms of elementary nets. Initially, it has been crucial to ensure the compositionality of this semantics both for the control and for the data parts of a program. The size of the resulting net has not been at issue, but clearly, this can become a problem in view of the machine representability and the applicability of the semantics.

Therefore we have been investigating way to give the language a high level net semantics. Because compositionality remains of primary importance, it is necessary to view high level nets not just as abbreviations of elementary nets, but as objects of a domain. Suitable operations must be defined on this domain in such a way that they serve as the target of a translation from corresponding B(PN)^2 operators.

This talk introduces the class of high level nets that we have developed for this purpose, called M-nets (multilabelled nets). Various B(PN)^2-like operations (unary and binary) are defined on the class of M-nets in addition to the operation of unfolding an M-net into an elementary net. A commutativity property holds true, namely, that the elemantary semantics of a program is the same, whether it is obtained directly by an elementary net or indirectly by means of the unfolding of an M-net.

As will be explained as well in the talk, M-nets are particularly suited to define the semantics of programs with procedures and (recursive) procedure calls concisely.

Language Preserving Reductions of Safe Petri Nets

Author: Anja Gronewold
Abstract: Most decision algorithms for Petri nets are expected to have exponential complexity, even if restricted to safe nets. In some cases, this high complexity is caused by the computation of the net's reachability graph. Some decision problems for Petri nets can also be solved by analyzing the net language.

A new method for the computation of (a regular expression for) the language of a safe Petri net is presented. This method is based on net reductions as introduced by Berthelot, and it uses the net's trace language to rebuild the possible interleavings which can get lost during the reduction process. A class of nets whose transitions are labelled by regular expressions is defined, and for this class of nets, a set of reduction rules preserving the net language is proposed. Using the rules, a net is reduced as far as possible, resulting either in a single transition (labelled with a regular expression describing the net language) or in a net which is not further reducible. For this (smaller) net, a regular expression can be computed in the usual way.

The set of reduction rules is implemented as a tool within the PEP system. While the reduction rules are applied to nets belonging to the class of transition-labelled nets (which can be created and edited in the tool's net editor), it is also possible to include Petriboxes and to apply the rules to these special 1-safe nets that are created by translation of a B(PN)^2- or PBC-program.

Mail to PEP


Back to PEP's home page


Christian StehnoChristian.Stehno@informatik.uni-oldenburg.de, 26.11.2001