Skip to main content

Addressing dynamic issues of program model checking

  • Conference paper
  • First Online:
Model Checking Software (SPIN 2001)

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

Included in the following conference series:

Abstract

Model checking real programs has recently become an active research area. Programs however exhibit two characteristics that make model checking dificult: the complexity of their state and the dynamic nature of many programs. Here we address both these issues within the context of the Java PathFinder (JPF) model checker. Firstly, we will show how the state of a Java program can be encoded efficiently and how this encoding can be exploited to improve model checking. Next we show how to use symmetry reductions to alleviate some of the problems introduced by the dynamic nature of Java programs. Lastly, we show how distributed model checking of a dynamic program can be achieved, and furthermore, how dynamic partitions of the state space can improve model checking. We support all our findings with results from applying these techniques within the JPF model checker.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Barnat, L. Brim, and J. Stribrna. Distributed LTL model-checking in SPIN. Technical Report FIMU-RS-2000-10, Faculty of Informatics, Masaryk University, 2000. Available in this LNCS volume.

    Google Scholar 

  2. D. Bosnacki, D. Dams, and L. Holenderski. Symmetric SPIN. In Proc. of the 7th International SPIN Workshop, volume 1885 of LNCS. Springer-Verlag, September 2000.

    Google Scholar 

  3. Nick Benton, Andrew Kennedy, and George Russell. Compiling standard ML to Java bytecodes. SIGPLAN Notices, 34(1):129–140, September 1998.

    Article  Google Scholar 

  4. J. Bormann, J. Lohse, M. Payer, and G. Venzl. Model checking in industrial hardware design. In Proc. of the 32nd Design Automation Conference, 1995.

    Google Scholar 

  5. Thomas Ball and Sriram K. Rajamani. Bebop: A symbolic model checker for boolean programs. In Proc. of the 7th International SPIN Workshop, volume 1885 of LNCS, pages 113–130. Springer-Verlag, September 2000.

    Google Scholar 

  6. L.R. Clausen and O. Danvy. Compiling proper tail recursion and first-class continuations: Scheme on the Java Virtual Machine. The Journal of C Language Translation, 6(1):20–32, April 1998.

    Google Scholar 

  7. J. Corbett, M. Dwyer, J. Hatcli, S. Laubach, C. Pasareanu, and R. Zheng. Bandera: Extracting finite-state models from Java source code. In Proc. of the 22nd International Conference on Software Engineering, June 2000.

    Google Scholar 

  8. Edmund M. Clarke, E. Allen Emerson, Somesh Jha, and A. Prasad Sistla. Symmetry reductions in model checking. In Proc. of the 10th International Conference on Computer Aided Verification, volume 1427 of LNCS, pages 147–158. Springer-Verlag, 1998.

    Chapter  Google Scholar 

  9. Edmund M. Clarke, T. Filkorn, and S. Jha. Exploiting symmetries in temporal logic model checking. In Proc. of the 5th International Conference on Computer Aided Verification, volume 697 of LNCS. Springer-Verlag, 1993.

    Google Scholar 

  10. Edmund M. Clarke and J. M. Wing. Formal methods: State of the art and future directions. Technical Report CMU-CS-96-178, Carnegie Mellon University, 1996.

    Google Scholar 

  11. Claudio Demartini, Radu Iosif, and Riccardo Sisto. A deadlock detection tool for concurrent Java programs. Software-Practice and Experience, 29(7):577–603, 1999.

    Article  Google Scholar 

  12. E. Emerson and C. Jutla. Symmetry and model checking. In Proc. 5th International Conference on Computer Aided Verification, volume 697 of LNCS. Springer-Verlag, 1993.

    Google Scholar 

  13. Patrice Godefroid. VeriSoft: A tool for the automatic analysis of concurrent reactive software. In Proc of the 9th International Conference on Computer Aided Verification, volume 1254 of LNCS, pages 476–479. Springer-Verlag, June 1997.

    Google Scholar 

  14. Gerard J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.

    Google Scholar 

  15. Gerard J. Holzmann. The SPIN model checker. IEEE Transactions on Software Engineering, 23(5):279–295, May 1997.

    Article  MathSciNet  Google Scholar 

  16. Gerard J. Holzmann. State compression in SPIN: Recursive indexing and compression training runs. In Proc. of the 3th International SPIN Workshop, April 1997.

    Google Scholar 

  17. Gerard J. Holzmann. Logic verification of ANSI-C code with SPIN. In Proc. of the 7th International SPIN Workshop, volume 1885 of LNCS. Springer-Verlag, September 2000.

    Google Scholar 

  18. [HP98]Klaus Havelund and Thomas Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4), April 1998.

    Google Scholar 

  19. C. Norris Ip and David L. Dill. Better verification through symmetry. Formal Methods in System Design, 9(1/2):47–75, August 1996.

    Google Scholar 

  20. Radu Iosif and Riccardo Sisto. dSPIN: A dynamic extension of SPIN. In Proc. of the 6th International SPIN Workshop, volume 1680 of LNCS, pages 261–276. Springer-Verlag, September 1999.

    Google Scholar 

  21. Radu Iosif and Riccardo Sisto. Using garbage collection in model checking. In Proc. of the 7th International SPIN Workshop, volume 1885 of LNCS, pages 20–33. Springer-Verlag, September 2000.

    Google Scholar 

  22. Flavio Lerda. Model checking: Tecniche di verifica formale in ambiente distributo. Master’s thesis, Politecnico di Torino, May 2000.

    Google Scholar 

  23. Flavio Lerda and Riccardo Sisto. Distributed-memory model checking with SPIN. In Proc. of the 5th International SPIN Workshop, volume 1680 of LNCS. Springer-Verlag, 1999.

    Google Scholar 

  24. Ulrich Stern and David L. Dill. Parallelizing the Murphi verifier. In Proc. of the 9th International Conference on Computer Aided Verification, volume 1254 of LNCS, pages 256–278. Springer-Verlag, June 1997.

    Google Scholar 

  25. SpaceViews. Premature engine cuto likely cause of Mars Polar Lander failure. http://www.spaceviews.com/2000/03/28b.html, March 2000.

  26. Scott D. Stoller. Model-checking multi-threaded distributed Java programs. In Proc. of the 7th International SPIN Workshop, volume 1885 of LNCS, pages 224–244. Springer-Verlag, September 2000.

    Google Scholar 

  27. S. Tucker Taft. Programming the Internet in Ada 95. In Ada-Europe International Conference on Reliable Software Technologies, volume 1088 of LNCS, pages 1–16. Springer-Verlag, June 1996.

    Chapter  Google Scholar 

  28. Willem Visser, Klaus Havelund, Guillaume Brat, and Seung-Joon Park. Model checking programs. In Proc. of the 15th IEEE International Conference on Automated Software Engineering, September 2000.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lerda, F., Visser, W. (2001). Addressing dynamic issues of program model checking. In: Dwyer, M. (eds) Model Checking Software. SPIN 2001. Lecture Notes in Computer Science, vol 2057. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45139-0_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-45139-0_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42124-5

  • Online ISBN: 978-3-540-45139-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics