Symmetry Reduced Model Checking for B

Symmetry reduction is a technique that can help alleviate the problem of state space explosion in model checking. The idea is to verify only a subset of states from each class (orbit) of symmetric states. This paper presents a framework for symmetry reduced model checking of B machines, which verifies a unique representative from each orbit. Symmetries are induced by the deferred set; a key component of the B language. This contrasts with strategies that require the introduction of a special data type into a language, to indicate symmetry. An extended version of the graph isomorphism program, nauty, is used to detect symmetries, and the symmetry reduction package has been integrated into the PROB model checker. Relevant algorithms are presented, and experimental results illustrate the effectiveness of the method, where exponential speedups are sometimes possible.

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

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

[3]  B. McKay nauty User ’ s Guide ( Version 2 . 4 ) , 1990 .

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

[5]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[6]  James M. Crawford,et al.  Symmetry-Breaking Predicates for Search Problems , 1996, KR.

[7]  Igor L. Markov,et al.  Exploiting structure in symmetry detection for CNF , 2004, Proceedings. 41st Design Automation Conference, 2004..

[8]  Dragan Bosnacki,et al.  Symmetric Spin , 2002, International Journal on Software Tools for Technology Transfer.

[9]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[10]  William L. Kocay,et al.  On Writing Isomorphism Programs , 1996 .

[11]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[12]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[13]  Mario Vento,et al.  A Performance Comparison of Five Algorithms for Graph Isomorphism , 2001 .

[14]  Donald L. Kreher,et al.  Combinatorial algorithms: generation, enumeration, and search , 1998, SIGA.

[15]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[16]  W. D. Wallis,et al.  Computational and constructive design theory , 1996 .

[17]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[18]  Michael J. Butler,et al.  Automatic Refinement Checking for B , 2005, ICFEM.

[19]  Yu Guo,et al.  First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering, TASE 2007, June 5-8, 2007, Shanghai, China , 2007, TASE.

[20]  Alastair F. Donaldson,et al.  Exact and Approximate Strategies for Symmetry Reduction in Model Checking , 2006, FM.

[21]  Bruno Legeard,et al.  Automated Boundary Testing from Z and B , 2002, FME.

[22]  Michael J. Butler,et al.  Symmetry Reduction for B by Permutation Flooding , 2007, B.

[23]  David Flannery,et al.  In Code: A Mathematical Journey , 2002 .

[24]  Takunari Miyazaki,et al.  The complexity of McKay's canonical labeling algorithm , 1995, Groups and Computation.