Bloom Filters in Probabilistic Verification

Probabilistic techniques for verification of finite-state transition systems offer huge memory savings over deterministic techniques. The two leading probabilistic schemes are hash compaction and the bitstate method, which stores states in a Bloom filter. Bloom filters have been criticized for being slow, inaccurate, and memory-inefficient, but in this paper, we show how to obtain Bloom filters that are simultaneously fast, accurate, memory-efficient, scalable, and flexible. The idea is that we can introduce large dependences among the hash functions of a Bloom filter with almost no observable effect on accuracy, and because computation of independent hash functions was the dominant computational cost of accurate Bloom filters and model checkers based on them, our savings are tremendous. We present a mathematical analysis of Bloom filters in verification in unprecedented detail, which enables us to give a fresh comparison between hash compaction and Bloom filters. Finally, we validate our work and analyses with extensive testing using 3SPIN, a model checker we developed by extending SPIN.

[1]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[2]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[3]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

[4]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[5]  Leslie Lamport,et al.  Model Checking TLA+ Specifications , 1999, CHARME.

[6]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.

[7]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[8]  W.M. vanCleemput,et al.  Computer hardware description languages and their applications , 1979, 16th Design Automation Conference.

[9]  M. V. Wilkes,et al.  The Art of Computer Programming, Volume 3, Sorting and Searching , 1974 .

[10]  A. Prasad Sistla,et al.  Symmetry and model checking , 1996, Formal Methods Syst. Des..

[11]  Gaston H. Gonnet,et al.  Handbook Of Algorithms And Data Structures , 1984 .

[12]  George J. Milne,et al.  Correct Hardware Design and Verification Methods , 2003, Lecture Notes in Computer Science.

[13]  Pierre Wolper,et al.  A Partial Approach to Model Checking , 1994, Inf. Comput..

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

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

[16]  David L. Dill,et al.  A New Scheme for Memory-Efficient Probabilistic Verification , 1996, FORTE.

[17]  Michael Mitzenmacher,et al.  Compressed bloom filters , 2001, PODC '01.

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

[19]  Enrico Tronci,et al.  Exploiting Transition Locality in the Disk Based Mur phi Verifier , 2002, FMCAD.

[20]  David L. Dill,et al.  Improved probabilistic verification by hash compaction , 1995, CHARME.

[21]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

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