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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
Nick Benton, Andrew Kennedy, and George Russell. Compiling standard ML to Java bytecodes. SIGPLAN Notices, 34(1):129–140, September 1998.
J. Bormann, J. Lohse, M. Payer, and G. Venzl. Model checking in industrial hardware design. In Proc. of the 32nd Design Automation Conference, 1995.
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.
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.
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.
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.
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.
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.
Claudio Demartini, Radu Iosif, and Riccardo Sisto. A deadlock detection tool for concurrent Java programs. Software-Practice and Experience, 29(7):577–603, 1999.
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.
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.
Gerard J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.
Gerard J. Holzmann. The SPIN model checker. IEEE Transactions on Software Engineering, 23(5):279–295, May 1997.
Gerard J. Holzmann. State compression in SPIN: Recursive indexing and compression training runs. In Proc. of the 3th International SPIN Workshop, April 1997.
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.
[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.
C. Norris Ip and David L. Dill. Better verification through symmetry. Formal Methods in System Design, 9(1/2):47–75, August 1996.
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.
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.
Flavio Lerda. Model checking: Tecniche di verifica formale in ambiente distributo. Master’s thesis, Politecnico di Torino, May 2000.
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.
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.
SpaceViews. Premature engine cuto likely cause of Mars Polar Lander failure. http://www.spaceviews.com/2000/03/28b.html, March 2000.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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