Verification of parallel systems using constraint programming

  • Stephan Melzer
Session 2a
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1330)


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.


Verification Petri nets constraint programming finite-state systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Progr., 19(2):87–152, 1992.Google Scholar
  2. 2.
    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.Google Scholar
  3. 3.
    E. Best. Sematics of Sequential and Parallel Programs. Prentice Hall, 1996.Google Scholar
  4. 4.
    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.Google Scholar
  5. 5.
    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.Google Scholar
  6. 6.
    L. Bouge. Repeated Synchronous Snapshots and their Implementation in CSP. In Procs. of 12th ICALP, volume 194 of LNCS, 63–70, 1981.Google Scholar
  7. 7.
    R. E. Bryant. Graph-based algorithm for boolean function manipulation. IEEE Transactions on Computers, C-35(8):677–691, August 1986.Google Scholar
  8. 8.
    E. Chang and R. Roberts. An Improved Algorithm for Decentralised Extremafinding in Circular Distributed Systems. Communications of the ACM, 22(5):281–283, 1979.Google Scholar
  9. 9.
    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.Google Scholar
  10. 10.
    J. C. Corbett. Automated Formal Analysis Methods for Concurrent and Real-Time Software. PhD thesis, University of Massachusetts at Amherst, 1992.Google Scholar
  11. 11.
    P. Cousot and N.Halbwachs. Automatic discovery of linear restraints among variables of a program. In 5th ACM Symposium on Principles of Progr. Languages.Google Scholar
  12. 12.
    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: Scholar
  13. 13.
    J. Esparza and G. Bruns. Trapping Mutual Exclusion in the Box Calculus. Theoretical Computer Science, 153:95–128, 1996.Google Scholar
  14. 14.
    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.Google Scholar
  15. 15.
    P. Godefroid. Partial-Order Methods for Verification of Concurrent Systems, volume 1032 of LNCS, 1996.Google Scholar
  16. 16.
    N. Halbwachs. About synchronous programming and abstract interpretation. In Procs. of SAS '94, volume 864 of LNCS, 179–192, 1994.Google Scholar
  17. 17.
    N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language LUSTRE. Proc. of the IEEE, 79(9):1305–1320, 1991.Google Scholar
  18. 18.
    C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, 1978.Google Scholar
  19. 19.
    G. J. Holzmann. Basic Spin Manual. AT&T Bell Laboratories, Murray Hill.Google Scholar
  20. 20.
    K. McAloon and C. Tretkoff. Optimization and Computational Logic. John Wiley & Sons, 1996.Google Scholar
  21. 21.
    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.Google Scholar
  22. 22.
    S. Melzer and J. Esparza. Checking system properties via integer programming. In Procs. of ESOP '96, volume 1058 of LNCS, 250–264, 1996.Google Scholar
  23. 23.
    R. Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
  24. 24.
    T. Murata. Petri nets: Properties, analysis and application. Procs. of the IEEE, 77(4):541–580, 1989.Google Scholar
  25. 25.
    M. Raynal. Algorithms for Mutual Exclusion. North Oxford Academic, 1986.Google Scholar
  26. 26.
    A. Valmari. A Stubborn Attack on State Explosion. Formal Methods in System Design, 1:297–322, 1992.Google Scholar
  27. 27.
    M. Y. Vardi. An automata-theoretic approach to linear temporal logic. In Logics for Concurrency, volume 1043 of LNCS, 238–266, 1995.Google Scholar
  28. 28.
    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.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Stephan Melzer
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenGermany

Personalised recommendations