Memory Efficient State Space Storage in Explicit Software Model Checking

The limited amount of memory is the major bottleneck in model checking tools based on an explicit states enumeration. In this context, techniques allowing an efficient representation of the states are precious. We present in this paper a novel approach which enables to store the state space in a compact way. Though it belongs to the family of explicit storage methods, we qualify it as semi-explicit since all states are not explicitly represented in the state space. Our experiments report a memory reduction ratio up to 95% with only a tripling of the computing time in the worst case.

[1]  Gerard J. Holzmann,et al.  State Compression in SPIN: Recursive Indexing and Compression Training Runs , 2002 .

[2]  Lars Michael Kristensen,et al.  A Sweep-Line Method for State Space Exploration , 2001, TACAS.

[3]  Matthew B. Dwyer,et al.  Space-Reduction Strategies for Model Checking Dynamic Software , 2003, SoftMC@CAV.

[4]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[5]  Jaco Geldenhuys,et al.  A Nearly Memory-Optimal Data Structure for Sets and Mappings , 2003, SPIN.

[6]  Willem Visser,et al.  Addressing dynamic issues of program model checking , 2001, SPIN '01.

[7]  Gianfranco Ciardo,et al.  Applications and Theory of Petri Nets 2005, 26th International Conference, ICATPN 2005, Miami, USA, June 20-25, 2005, Proceedings , 2005, ICATPN.

[8]  J.-C. Gregoire State space compression in Spin with GETSs , 1996 .

[9]  Atanas N. Parashkevov,et al.  Space Efficient Reachability Analysis Through Use of Pseudo-Root States , 1997, TACAS.

[10]  Alfred Strohmeier,et al.  Reliable Software Technologies — Ada-Europe 2003 , 2003, Lecture Notes in Computer Science.

[11]  Gerard J. Holzmann,et al.  State-space caching revisited , 1995, Formal Methods Syst. Des..

[12]  Michael Westergaard,et al.  Obtaining Memory-Efficient Reachability Graph Representations Using the Sweep-Line Method , 2004, TACAS.

[13]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[14]  Sami Evangelista,et al.  High Level Petri Nets Analysis with Helena , 2005, ICATPN.

[15]  Jordi Cortadella,et al.  Efficient encoding schemes for symbolic analysis of Petri nets , 1998, Proceedings Design, Automation and Test in Europe.

[16]  Olav Bolland,et al.  To store or not to store , 2007 .

[17]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[18]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[19]  Kurt Jensen,et al.  Coloured Petri nets: A high level language for system design and analysis , 1991, Applications and Theory of Petri Nets.

[20]  Karsten Schmidt,et al.  Using Petri net invariants in state space construction , 2003 .

[21]  Sami Evangelista,et al.  Quasar: A New Tool for Concurrent Ada Programs Analysis , 2003, Ada-Europe.

[22]  Karsten Wolf Automated generation of a progress measure for the sweep-line method , 2005, International Journal on Software Tools for Technology Transfer.

[23]  Jaco Geldenhuys,et al.  Runtime Efficient State Compaction in SPIN , 1999, SPIN.

[24]  Pierre Wolper,et al.  Reliable Hashing without Collosion Detection , 1993, CAV.

[25]  Jaco Geldenhuys,et al.  State Caching Reconsidered , 2004, SPIN.

[26]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[27]  허윤정,et al.  Holzmann의 ˝The Model Checker SPIN˝에 대하여 , 1998 .

[28]  Howard Barringer,et al.  Memory efficient state storage in Spin , 1996, The Spin Verification System.