Skip to main content

Verification of parallel systems using constraint programming

  • Session 2a
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1330))

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.

Unable to display preview. Download preview PDF.

References

  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. 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. E. Best. Sematics of Sequential and Parallel Programs. Prentice Hall, 1996.

    Google Scholar 

  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. 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. 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. R. E. Bryant. Graph-based algorithm for boolean function manipulation. IEEE Transactions on Computers, C-35(8):677–691, August 1986.

    Google Scholar 

  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. 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. J. C. Corbett. Automated Formal Analysis Methods for Concurrent and Real-Time Software. PhD thesis, University of Massachusetts at Amherst, 1992.

    Google Scholar 

  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. 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).

    Google Scholar 

  13. J. Esparza and G. Bruns. Trapping Mutual Exclusion in the Box Calculus. Theoretical Computer Science, 153:95–128, 1996.

    Google Scholar 

  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. P. Godefroid. Partial-Order Methods for Verification of Concurrent Systems, volume 1032 of LNCS, 1996.

    Google Scholar 

  16. N. Halbwachs. About synchronous programming and abstract interpretation. In Procs. of SAS '94, volume 864 of LNCS, 179–192, 1994.

    Google Scholar 

  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. C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, 1978.

    Google Scholar 

  19. G. J. Holzmann. Basic Spin Manual. AT&T Bell Laboratories, Murray Hill.

    Google Scholar 

  20. K. McAloon and C. Tretkoff. Optimization and Computational Logic. John Wiley & Sons, 1996.

    Google Scholar 

  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. 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. R. Milner. Communication and Concurrency. Prentice-Hall, 1989.

    Google Scholar 

  24. T. Murata. Petri nets: Properties, analysis and application. Procs. of the IEEE, 77(4):541–580, 1989.

    Google Scholar 

  25. M. Raynal. Algorithms for Mutual Exclusion. North Oxford Academic, 1986.

    Google Scholar 

  26. A. Valmari. A Stubborn Attack on State Explosion. Formal Methods in System Design, 1:297–322, 1992.

    Google Scholar 

  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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gert Smolka

Rights and permissions

Reprints 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

Publish with us

Policies and ethics