Abstract
Liveness properties of parallel systems usually specify that in every execution certain states are eventually reached. Therefore, violation of such a property can only be detected in infinite executions. In this paper we introduce a semi-decision method that is baseprogramming*d on structural Petri net analysis and makes use of the constraint programming paradigm. By a semi-decision method we understand a procedure which may answer ‘yes’, so that in this case the parallel system satisfies the property, or ‘don't know’. We give an implementation of our method in terms of the constraint programming tool 21p. An application of our approach to a snapshot algorithm demonstrates how constraint program ming can beat classical exact methods such as model checking.
This work has been supported by the Sonderforschungsbereich 342 Teilprojekt A3.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Progr., 19(2):87–152, 1992.
E. Best. Partial order verification with PEP. In D. Peled, G. Holzmann, and V. Pratt, editors, Proc, POMIV'96, Partial Order Methods in Verification. American Mathematical Society, August 1996.
E. Best. Sematics of Sequential and Parallel Programs. Prentice Hall, 1996.
E. Best, R. Devillers, and J. G. Hall. The Box Calculus: A New Causal Algebra with Multi-Label Communication. In Advances in Petri Nets 92, volume 609 of LNCS, 21–69, 1992.
E. Best and R. P. Hopkins. B(PN)2-a Basic Petri Net Programming Notation. In Procs. of PARLE '93, volume 694 of LNCS, 379–390, 1993.
L. Bouge. Repeated Synchronous Snapshots and their Implementation in CSP. In Procs. of 12th ICALP, volume 194 of LNCS, 63–70, 1981.
R. E. Bryant. Graph-based algorithm for boolean function manipulation. IEEE Transactions on Computers, C-35(8):677–691, August 1986.
E. Chang and R. Roberts. An Improved Algorithm for Decentralised Extremafinding in Circular Distributed Systems. Communications of the ACM, 22(5):281–283, 1979.
E. M. Clarke, E. A. Emerson, and A. P. Sistla. Automatic verification of finitestate concurrent systems using temporal logic specifications, testing and verification. ACM Transactions on Progn Languages and Systems, 8(2):244–263, 1986.
J. C. Corbett. Automated Formal Analysis Methods for Concurrent and Real-Time Software. PhD thesis, University of Massachusetts at Amherst, 1992.
P. Cousot and N.Halbwachs. Automatic discovery of linear restraints among variables of a program. In 5th ACM Symposium on Principles of Progr. Languages.
J. Esparza and S. Melzer. Model-Checking LTL using onstraint Programming. Sonderforschungsbericht 342/07/97 A, Technische Universität München, 1997 (also via WWW: http://wvw.informatik.tu-muenchen.de/~melzers).
J. Esparza and G. Bruns. Trapping Mutual Exclusion in the Box Calculus. Theoretical Computer Science, 153:95–128, 1996.
J. Esparza, S. Römer, and W. Vogler. An Improvement of McMillan's Unfolding Algorithm. In Procs. of TACAS '96, volume 1055 of LNCS, 87–106, 1996.
P. Godefroid. Partial-Order Methods for Verification of Concurrent Systems, volume 1032 of LNCS, 1996.
N. Halbwachs. About synchronous programming and abstract interpretation. In Procs. of SAS '94, volume 864 of LNCS, 179–192, 1994.
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language LUSTRE. Proc. of the IEEE, 79(9):1305–1320, 1991.
C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, 1978.
G. J. Holzmann. Basic Spin Manual. AT&T Bell Laboratories, Murray Hill.
K. McAloon and C. Tretkoff. Optimization and Computational Logic. John Wiley & Sons, 1996.
K. L. McMillan. Using unfoldings to avoid the state explosion problem in the verification of asynchronous circuits. In 4th Workshop on Computer Aided Verification, pages 164–174, 1992.
S. Melzer and J. Esparza. Checking system properties via integer programming. In Procs. of ESOP '96, volume 1058 of LNCS, 250–264, 1996.
R. Milner. Communication and Concurrency. Prentice-Hall, 1989.
T. Murata. Petri nets: Properties, analysis and application. Procs. of the IEEE, 77(4):541–580, 1989.
M. Raynal. Algorithms for Mutual Exclusion. North Oxford Academic, 1986.
A. Valmari. A Stubborn Attack on State Explosion. Formal Methods in System Design, 1:297–322, 1992.
M. Y. Vardi. An automata-theoretic approach to linear temporal logic. In Logics for Concurrency, volume 1043 of LNCS, 238–266, 1995.
M. Y. Vardi and P. Wolper. An automata-theoretic approach to atomatic program verification. In Procs. of the 1st Symposium on Logics in Computer Science, pages 322–331, 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Melzer, S. (1997). Verification of parallel systems using constraint programming. In: Smolka, G. (eds) Principles and Practice of Constraint Programming-CP97. CP 1997. Lecture Notes in Computer Science, vol 1330. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017432
Download citation
DOI: https://doi.org/10.1007/BFb0017432
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63753-0
Online ISBN: 978-3-540-69642-1
eBook Packages: Springer Book Archive