Isomorph-free model enumeration
- 1 March 1998
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 20 (2), 302-343
- https://doi.org/10.1145/276393.276396
Abstract
Software specifications often involve data structures with huge numbers of value, and consequently they cannot be checked using standard state exploration or model-checking techniques. Data structures can be expressed with binary relations, and operations over such structures can be expressed as formulae involving relational variables. Checking properties such as preservation of an invariant thus reduces to determining the validity of a formula or, equivalently, finding a model (of the formula's negation). A new method for finding relational models is presented. It exploits the permutation invariance of models—if two interpretations are isomorphic, then neither is a model, or both are—by partitioning the space into equivalence classes of symmetrical interpretations. Representatives of these classes are constructed incrementally by using the symmetry of the partial interpretation to limit the enumeration of new relation values. The notion of symmetry depends on the type structure of the formula; by picking the weakest typing, larger equivalence classes (and thus fewer representatives) are obtained. A more refined notion of symmetry that exploits the meaning of the relational operators is also described. The method typically leads to exponential reductions; in combination with other, simpler, reductions it makes automatic analysis of relational specifications possible for the first time.Keywords
This publication has 15 references indexed in Scilit:
- Abstract interpretation of reactive systemsACM Transactions on Programming Languages and Systems, 1997
- The Way of ZPublished by Cambridge University Press (CUP) ,1996
- Symmetry and model checkingFormal Methods in System Design, 1996
- Exploiting symmetry in temporal logic model checkingFormal Methods in System Design, 1996
- Better verification through symmetryFormal Methods in System Design, 1996
- Elements of style: analyzing a software design feature with a counterexample detectorIEEE Transactions on Software Engineering, 1996
- Formal Specification of Telephone FeaturesPublished by Springer Nature ,1994
- Symbolic Boolean manipulation with ordered binary-decision diagramsACM Computing Surveys, 1992
- Computer Aided Transformation of Z into PrologPublished by Springer Nature ,1990
- The entity-relationship model—toward a unified view of dataACM Transactions on Database Systems, 1976