Selective enumeration

Sets, functions and relations are powerful structures for modeling software systems. Relational specifications, built from these constructs, are the most common form of formal specification for software systems. However, in sharp contrast to other formal notations, there is an almost complete lack of automated tools for analyzing relational specifications. A method for solving relational formulae must be at the core of any tool for analyzing relational specifications. In this this thesis, I am developing a method for efficiently solving relational formulae, which I call selective enumeration. Selective enumeration uses a generate-and-test approach, but it prevents the generation of the vast majority of cases, which can be considered duplicates. I have implemented four selective enumeration techniques: isomorph elimination, bounded generation, short circuiting and derived variable construction. In this thesis I will provide a firm theoretical and empirical framework for understanding these techniques. Thesis Committee Daniel Jackson (co-chair) Jeanette Wing (co-chair) Gary Miller Rance Cleaveland (North Carolina State University)

[1]  Somesh Jha,et al.  Faster checking of software specifications by eliminating isomorphs , 1996, POPL '96.

[2]  Gary L. Miller,et al.  Graph isomorphism, general remarks , 1977, STOC '77.

[3]  John K. Slaney,et al.  FINDER: Finite Domain Enumerator - System Description , 1994, CADE.

[4]  Anthony Barrett,et al.  Partial-Order Planning: Evaluating Possible Efficiency Gains , 1994, Artificial Intelligence.

[5]  Ronald Fagin,et al.  The number of finite relational structures , 1977, Discret. Math..

[6]  David A. Plaisted,et al.  Problem Solving by Searching for Models with a Theorem Prover , 1994, Artif. Intell..

[7]  Somesh Jha,et al.  Checking relational specifications with binary decision diagrams , 1996, SIGSOFT '96.

[8]  Alan K. Mackworth The Logic of Constraint Satisfaction , 1991, Artif. Intell..

[9]  G. Brinkmann Fast generation of cubic graphs , 1996 .

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

[11]  Hantao Zhang,et al.  SEM: a System for Enumerating Models , 1995, IJCAI.

[12]  Leslie Ann Goldberg Efficient Algorithms for Listing Unlabeled Graphs , 1992, J. Algorithms.

[13]  Daniel Jackson,et al.  A Nitpick Analysis of Mobile IPv6 , 1999, Formal Aspects of Computing.

[14]  Somesh Jha,et al.  Isomorph-free model enumeration: a new method for checking relational specifications , 1998, TOPL.

[15]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[16]  Francesca Rossi,et al.  Principles and Practice of Constraint Programming — CP '95 , 1995, Lecture Notes in Computer Science.

[17]  Robert M. Haralick,et al.  Increasing Tree Search Efficiency for Constraint Satisfaction Problems , 1979, Artif. Intell..

[18]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[19]  Paul Walton Purdom,et al.  Backtrack Searching in the Presence of Symmetry , 1988, Nord. J. Comput..

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

[21]  Ronald C. Read A survey of graph generation techniques , 1981 .

[22]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[23]  Christoph M. Hoffmann,et al.  Group-Theoretic Algorithms and Graph Isomorphism , 1982, Lecture Notes in Computer Science.

[24]  Richard Fikes,et al.  STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving , 1971, IJCAI.

[25]  David L. Waltz,et al.  Understanding Line drawings of Scenes with Shadows , 1975 .

[26]  Hansong Zhang,et al.  Implementing the Davis-Putnam Algorithm by Tries , 1994 .

[27]  John E. Hopcroft,et al.  Polynomial-time algorithms for permutation groups , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[28]  Charles J. Colbourn,et al.  Orderly algorithms for generating restricted classes of graphs , 1979, J. Graph Theory.

[29]  Hantao Zhang,et al.  Constraint Propagation in Model Generation , 1995, CP.

[30]  László Babai,et al.  Canonical labelling of graphs in linear average time , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[31]  Rufus Walker,et al.  An enumerative technique for a class of combinatorial problems , 1960 .

[32]  Norman M. Sadeh,et al.  Variable and Value Ordering Heuristics for the Job Shop Scheduling Constraint Satisfaction Problem , 1996, Artif. Intell..

[33]  Hantao Zhang,et al.  Combining Local Search and Backtracking Techniques for Constraint Satisfaction , 1996, AAAI/IAAI, Vol. 1.

[34]  Daniel Jackson,et al.  Finding bugs with a constraint solver , 2000, ISSTA '00.

[35]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[36]  Reinhard Laue,et al.  Algorithms for group actions applied to graph generation , 1995, Groups and Computation.

[37]  Avrim Blum,et al.  Fast Planning Through Planning Graph Analysis , 1995, IJCAI.

[38]  Brendan D. McKay,et al.  Isomorph-Free Exhaustive Generation , 1998, J. Algorithms.

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

[40]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[41]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[42]  Daniel Jackson,et al.  Efficient Search as a Means of Executing Specifications , 1996, TACAS.

[43]  Mark Jerrum,et al.  A compact representation for permutation groups , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[44]  Brendan D. McKay,et al.  There are 526,915,620 nonisomorphic one‐factorizations of K12 , 1994 .

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

[46]  Norman M. Sadeh,et al.  Backtracking Techniques for the Job Shop Scheduling Constraint Satisfaction Problem , 1995, Artif. Intell..

[47]  Sjouke Mauw,et al.  Message Sequence Chart (MSC) , 1996 .

[48]  Daniel Jackson,et al.  An intermediate design language and its analysis , 1998, SIGSOFT '98/FSE-6.

[49]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[50]  Somesh Jha,et al.  Symmetry and Induction in Model Checking , 1995, Computer Science Today.

[51]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[52]  Alan K. Mackworth Consistency in Networks of Relations , 1977, Artif. Intell..

[53]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[54]  Mark S. Fox,et al.  Constraint-Directed Search: A Case Study of Job-Shop Scheduling , 1987 .

[55]  Hector J. Levesque,et al.  A New Method for Solving Hard Satisfiability Problems , 1992, AAAI.

[56]  N. Sadeh,et al.  Variable and Value Ordering Heuristics for Hard Constraint Satisfaction Problems: An Application to Job Shop Scheduling , 1991 .

[57]  James Ivers,et al.  Formalizing a Specification for Analysis: The HLA Ownership Properties , 1999 .

[58]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[59]  Daniel FrostDepartment Backtracking Algorithms for Constraint Satisfaction Problems { a Tutorial Survey , 1998 .

[60]  B. Jónsson,et al.  Computer-aided investigations of relation algebras , 1992 .

[61]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.

[62]  Eugene C. Freuder Eliminating Interchangeable Values in Constraint Satisfaction Problems , 1991, AAAI.

[63]  Daniel Jackson,et al.  Nitpick: a checker for software specifications (reference manual) , 1996 .

[64]  Paul Ammann,et al.  Using model checking to generate tests from specifications , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[65]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[66]  Clement W. H. Lam,et al.  Backtrack Search with Isomorph Rejection and Consistency Check , 1989, J. Symb. Comput..

[67]  Peter P. Chen The entity-relationship model: toward a unified view of data , 1975, VLDB '75.