Automatic techniques for detecting and exploiting symmetry in model checking

The application of model checking is limited due to the state-space explosion problem – as the number of components represented by a model increase, the worst case size of the associated state-space grows exponentially. Current techniques can handle limited kinds of symmetry, e.g. full symmetry between identical components in a concurrent system. They avoid the problem of automatic symmetry detection by requiring the user to specify the presence of symmetry in a model (explicitly, or by annotating the associated specification using additional language keywords), or by restricting the input language of a model checker so that only symmetric systems can be specified. Additionally, computing unique representatives for each symmetric equivalence class is easy for these limited kinds of symmetry. We present a theoretical framework for symmetry reduction which can be applied to explicit state model checking. The framework includes techniques for automatic symmetry detection using computational group theory, which can be applied with no additional user input. These techniques detect structural symmetries induced by the topology of a concurrent system, so our framework includes exact and approximate techniques to efficiently exploit arbitrary symmetry groups which may arise in this way. These techniques are also based on computational group theoretic methods. We prove that our framework is logically sound, and demonstrate its general applicability to explicit state model checking. By providing a new symmetry reduction package for the SPIN model checker, we show that our framework can be feasibly implemented as part of a system which is widely used in both industry and academia. Through a study of SPIN users, we assess the usability of our automatic symmetry detection techniques in practice.

[1]  Ganesh Gopalakrishnan,et al.  Explicit-enumeration based verification made memory-efficient , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[2]  Doron A. Peled,et al.  Combining partial order reductions with on-the-fly model-checking , 1994, Formal Methods Syst. Des..

[3]  Girish Bhat,et al.  Efficient on-the-fly model checking for CTL , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[4]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[5]  J. Humphreys A Course in Group Theory , 1996 .

[6]  Somesh Jha,et al.  Exploiting Symmetry In Temporal Logic Model Checking , 1993, CAV.

[7]  Chung-Wah Norris Ip,et al.  State reduction methods for automatic formal verification , 1996 .

[8]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

[9]  Gregory Butler,et al.  Fundamental Algorithms for Permutation Groups , 1991, Lecture Notes in Computer Science.

[10]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[11]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[12]  Gerard Tel,et al.  Introduction to Distributed Algorithms: Contents , 2000 .

[13]  Peter Linz,et al.  An Introduction to Formal Languages and Automata , 1997 .

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

[15]  Serge Haddad,et al.  Exploiting Symmetry in Linear Time Temporal Logic Model Checking: One Step Beyond , 1998, TACAS.

[16]  Radu Iosif,et al.  Symmetry Reduction Criteria for Software Model Checking , 2002, SPIN.

[17]  Á. Seress Permutation Group Algorithms , 2003 .

[18]  P. H. Starke,et al.  Reachability analysis of Petri nets using symmetries , 1991 .

[19]  Frank Harary The Automorphism Group of a Hypercube , 2000, J. Univers. Comput. Sci..

[20]  Tommi A. Junttila New orbit algorithms for data symmetries , 2004, Proceedings. Fourth International Conference on Application of Concurrency to System Design, 2004. ACSD 2004..

[21]  Muffy Calder,et al.  Spin-to-Grape: A Tool for Analysing Symmetry in Promela Models , 2005, Electron. Notes Theor. Comput. Sci..

[22]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[23]  Alastair F. Donaldson,et al.  Extending Symmetry Reduction Techniques to a Realistic Model of Computation , 2007, Electron. Notes Theor. Comput. Sci..

[24]  Theo C. Ruys Low-Fat Recipes for SPIN , 2000, SPIN.

[25]  Thomas Wahl,et al.  On Combining Symmetry Reduction and Symbolic Representation for Efficient Model Checking , 2003, CHARME.

[26]  Simon J. Gay,et al.  Etch: An Enhanced Type Checking Tool for Promela , 2005, SPIN.

[27]  G. Rota The Number of Partitions of a Set , 1964 .

[28]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[29]  Doron A. Peled,et al.  Software Reliability Methods , 2001, Texts in Computer Science.

[30]  Marsha Chechik,et al.  Identification and Counter Abstraction for Full Virtual Symmetry , 2005, CHARME.

[31]  Mihalis Yannakakis,et al.  On nested depth first search , 1996, The Spin Verification System.

[32]  Serge Haddad,et al.  A Model Checking Method for Partially Symmetric Systems , 2000, FORTE.

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

[34]  E. Allen Emerson,et al.  From Asymmetry to Full Symmetry: New Techniques for Symmetry Reduction in Model Checking , 1999, CHARME.

[35]  Bernhard Steffen,et al.  Model-Checking: A Tutorial Introduction , 1999, SAS.

[36]  Peter Huber,et al.  Towards reachability trees for high-level Petri nets , 1985, European Workshop on Applications and Theory in Petri Nets.

[37]  Alastair F. Donaldson,et al.  Automatic Symmetry Detection for Model Checking Using Computational Group Theory , 2005, FM.

[38]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[39]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

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

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

[42]  Johan Lewi,et al.  A Linear Local Model Checking Algorithm for CTL , 1993, CONCUR.

[43]  John Ulrich,et al.  Automated Analysis of Cryptographic Protocols Using Mur ' , 1997 .

[44]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.