skip to main content
article

Dynamic partial-order reduction for model checking software

Published:12 January 2005Publication History
Skip Abstract Section

Abstract

We present a new approach to partial-order reduction for model checking software. This approach is based on initially exploring an arbitrary interleaving of the various concurrent processes/threads, and dynamically tracking interactions between these to identify backtracking points where alternative paths in the state space need to be explored. We present examples of multi-threaded programs where our new dynamic partial-order reduction technique significantly reduces the search space, even though traditional partial-order algorithms are helpless.

References

  1. T. Ball and S. Rajamani. The SLAM Toolkit. In Proceedings of CAV'2001 (13th Conference on Computer Aided Verification), volume 2102 of Lecture Notes in Computer Science, pages 260--264, Paris, July 2001. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. MIT Press, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. R. Cohen and E. A. Feigenbaum. Handbook of Artificial Intelligence. Pitman, London, 1982.]]Google ScholarGoogle Scholar
  4. J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, and H. Zheng. Bandera: Extracting Finite-State Models from Java Source Code. In Proceedings of the 22nd International Conference on Software Engineering, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. B. Dwyer, J. Hatcliff, V. R. Prasad, and Robby. Exploiting Object Escape and Locking Information in Partial Order Reduction for Concurrent Object-Oriented Programs. To appear in Formal Methods in System Design, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Esparza. Model Checking Using Net Unfoldings. Science of Computer Programming, 23:151--195, 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Esparza and K. Heljanko. Implementing LTL model checking with net unfoldings. In Proceedings of the 8th SPIN Workshop (SPIN'2001), volume 2057 of Lecture Notes in Computer Science, pages 37--56, Toronto, May 2001. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Flanagan and S. Qadeer. Transactions for Software Model Checking. In Proceedings of the Workshop on Software Model Checking, pages 338--349, June 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  9. P. Godefroid. Partial-Order Methods for the Verification of Concurrent Systems -- An Approach to the State-Explosion Problem, volume 1032 of Lecture Notes in Computer Science. Springer-Verlag, January 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Godefroid. Model Checking for Programming Languages using VeriSoft. In Proceedings of POPL'97 (24th ACM Symposium on Principles of Programming Languages), pages 174--186, Paris, January 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid. Software Model Checking: The VeriSoft Approach. To appear in Formal Methods in System Design, 2005. Also available as Bell Labs Technical Memorandum ITD-03-44189G.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Godefroid and D. Pirottin. Refining dependencies improves partial-order verification methods. In Proceedings of CAV'93 (5th Conference on Computer Aided Verification), volume 697 of Lecture Notes in Computer Science, pages 438--449, Elounda, June 1993. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Godefroid and P. Wolper. Using partial orders for the efficient verification of deadlock freedom and safety properties. Formal Methods in System Design, 2(2):149--164, April 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy Abstraction. In Proceedings of the 29th ACM Symposium on Principles of Programming Languages, pages 58--70, Portland, January 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Katz and D. Peled. Defining conditional independence using collapses. Theoretical Computer Science, 101:337--359, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558--564, 1978.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Mattern. Virtual Time and Global States of Distributed Systems. In Proc. Workshop on Parallel and Distributed Algorithms, pages 215--226. North-Holland / Elsevier, 1989.]]Google ScholarGoogle Scholar
  18. A. Mazurkiewicz. Trace theory. In Petri Nets: Applications and Relationships to Other Models of Concurrency, Advances in Petri Nets 1986, Part II; Proceedings of an Advanced Course, volume 255 of Lecture Notes in Computer Science, pages 279--324. Springer-Verlag, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. McMillan. Using unfolding to avoid the state explosion problem in the verification of asynchronous circuits. In Proc. 4th Workshop on Computer Aided Verification, volume 663 of Lecture Notes in Computer Science, pages 164--177, Montreal, June 1992. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Peled. All from one, one for all: on model checking using representatives. In Proc. 5th Conference on Computer Aided Verification, volume 697 of Lecture Notes in Computer Science, pages 409--423, Elounda, June 1993. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. D. Stoller. Model-Checking Multi-Threaded Distributed Java Programs. International Journal on Software Tools for Technology Transfer, 4(1):71--91, October 2002.]]Google ScholarGoogle ScholarCross RefCross Ref
  22. S. D. Stoller and E. Cohen. Optimistic Synchronization-Based State-Space Reduction. In H. Garavel and J. Hatcliff, editors, Proceedings of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 2619 of Lecture Notes in Computer Science, pages 489--504. Springer-Verlag, April 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. D. Stoller, L. Unnikrishnan, and Y. A. Liu. Efficient Detection of Global Properties in Distributed Systems Using Partial-Order Methods. In Proceedings of the 12th Conference on Computer Aided Verification, volume 1855 of Lecture Notes in Computer Science, pages 264--279, Chicago, July 2000. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C.A. Thekkath, T. Mann, and E.K. Lee. Frangipani: A scalable distributed file system. In Proceedings of the 16th ACM Symposium on Operating Systems Principles, pages 224--237, October 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Valmari. Stubborn sets for reduced state space generation. In Advances in Petri Nets 1990, volume 483 of Lecture Notes in Computer Science, pages 491--515. Springer-Verlag, 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Valmari. On-the-fly verification with stubborn sets. In Proc. 5th Conference on Computer Aided Verification, volume 697 of Lecture Notes in Computer Science, pages 397--408, Elounda, June 1993. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. W. Visser, K. Havelund, G. Brat, and S. Park. Model Checking Programs. In Proceedings of ASE'2000 (15th International Conference on Automated Software Engineering), Grenoble, September 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic partial-order reduction for model checking software

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 40, Issue 1
                Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2005
                391 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1047659
                Issue’s Table of Contents
                • cover image ACM Conferences
                  POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 2005
                  402 pages
                  ISBN:158113830X
                  DOI:10.1145/1040305
                  • General Chair:
                  • Jens Palsberg,
                  • Program Chair:
                  • Martín Abadi

                Copyright © 2005 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 12 January 2005

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader