Incremental Hashing for Spin

This paper discusses a generalised incremental hashing scheme for explicit state model checkers. The hashing scheme has been implemented into the model checker Spin . The incremental hashing scheme works for Spin 's exhaustive and both approximate verification modes: bitstate hashing and hash compaction. An implementation is provided for 32-bit and 64-bit architectures. We performed extensive experiments on the BEEM benchmarks to compare the incremental hash functions against Spin 's traditional hash functions. In almost all cases, incremental hashing is faster than traditional hashing. The amount of performance gain depends on several factors, though. We conclude that incremental hashing performs best for the (64-bits) Spin 's bitstate hashing mode, on models with large state vectors, and using a verifier, that is optimised by the C compiler.

[1]  David S. L. Wei,et al.  Computer Algorithms , 1998, Scalable Comput. Pract. Exp..

[2]  Francisco Durán,et al.  LTL Model Checking , 2007, All About Maude.

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

[4]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[5]  Gerard J. Holzmann,et al.  On Limits and Possibilities of Automated Protocol Analysis , 1987, PSTV.

[6]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[7]  Christel Baier,et al.  Validation of Stochastic Systems , 2004, Lecture Notes in Computer Science.

[8]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[9]  Gerard J. Holzmann,et al.  An Analysis of Bitstate Hashing , 1995, Formal Methods Syst. Des..

[10]  Viet Yen Nguyen,et al.  Optimising techniques for model checkers , 2007 .

[11]  Stefan Edelkamp,et al.  Dynamic Incremental Hashing in Program Model Checking , 2006, MoChArt@CONCUR/SPIN.

[12]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[13]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[14]  Jonathan D. Cohen,et al.  Recursive hashing functions for n-grams , 1997, TOIS.

[15]  Panagiotis Manolios,et al.  Fast and Accurate Bitstate Verification for SPIN , 2004, SPIN.

[16]  Richard M. Karp,et al.  Efficient Randomized Pattern-Matching Algorithms , 1987, IBM J. Res. Dev..

[17]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[18]  Christel Baier,et al.  Validation of Stochastic Systems: A Guide to Current Research (Lecture Notes in Computer Science) , 2004 .

[19]  Theo C. Ruys,et al.  MMC: the Mono Model Checker , 2007, Bytecode@ETAPS.

[20]  Matthias Kuntz,et al.  Probabilistic Methods in State Space Analysis , 2004, Validation of Stochastic Systems.

[21]  Ellis Horowitz,et al.  Computer Algorithms / C++ , 2007 .

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[23]  Radek Pelánek,et al.  BEEM: Benchmarks for Explicit Model Checkers , 2007, SPIN.