Kodkod: A Relational Model Finder

The key design challenges in the construction of a SAT-based relational model finder are described, and novel techniques are proposed to address them. An efficient model finder must have a mechanism for specifying partial solutions, an effective symmetry detection and breaking scheme, and an economical translation from relational to boolean logic. These desiderata are addressed with three new techniques: a symmetry detection algorithm that works in the presence of partial solutions, a sparse-matrix representation of relations, and a compact representation of boolean formulas inspired by boolean expression diagrams and reduced boolean circuits. The presented techniques have been implemented and evaluated, with promising results.

[1]  Derek Rayside,et al.  Automating commutativity analysis at the design level , 2004, ISSTA '04.

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

[3]  László Babai,et al.  Computational complexity and the classification of finite simple groups , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[4]  Sharad Malik,et al.  Zchaff2004: An Efficient SAT Solver , 2004, SAT (Selected Papers.

[5]  Richard A. O'Keefe,et al.  The Craft of Prolog , 1990 .

[6]  Henrik Reif Andersen,et al.  Boolean Expression Diagrams , 2002, Inf. Comput..

[7]  Emina Torlak,et al.  The Design of a Relational Engine , 2006 .

[8]  Ilya Shlyakhter,et al.  Generating effective symmetry-breaking predicates for search problems , 2001, Discrete Applied Mathematics.

[9]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[10]  Sarfraz Khurshid,et al.  Exploring the design of an intentional naming scheme with an automatic constraint analyzer , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[11]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002, Discret. Appl. Math..

[12]  Manu Sridharan,et al.  Exploiting subformula sharing in automatic analysis of quantified formulas , 2003 .

[13]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

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

[15]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

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

[17]  ChangErnest,et al.  An improved algorithm for decentralized extrema-finding in circular configurations of processes , 1979 .

[18]  Vincent S. Yeung Declarative configuration applied to course scheduling , 2006 .

[19]  K. Claessen,et al.  New Techniques that Improve MACE-style Finite Model Finding , 2007 .

[20]  Sanjai Narain,et al.  Network Configuration Management via Model Finding , 2005, LISA.

[21]  Koen Claessen,et al.  New techniques that improve mace-style model nding , 2003 .

[22]  Alan Bundy,et al.  Automated Deduction — CADE-12 , 1994, Lecture Notes in Computer Science.

[23]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[24]  W. McCune A Davis-Putnam program and its application to finite-order model search: Quasigroup existence problems , 1994 .

[25]  Sarfraz Khurshid,et al.  TestEra: Specification-Based Testing of Java Programs Using SAT , 2004, Automated Software Engineering.

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

[27]  Ashish Sabharwal SymChaff: A Structure-Aware Satisfiability Solver , 2005, AAAI.

[28]  Geoff Sutcliffe,et al.  The TPTP Problem Library , 1994, Journal of Automated Reasoning.

[29]  M. A. Armstrong Groups and symmetry , 1988 .

[30]  Daniel Jackson Automating first-order relational logic , 2000, SIGSOFT '00/FSE-8.

[31]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[32]  Daniel Jackson,et al.  Declarative symbolic pure-logic model checking , 2005 .

[33]  Parosh Aziz Abdulla,et al.  Symbolic Reachability Analysis Based on SAT-Solvers , 2000, TACAS.

[34]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

[35]  Mana Taghdiri,et al.  Inferring specifications to detect errors in code , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[36]  Emina Torlak,et al.  Faster constraint solving with subtypes , 2004, ISSTA '04.

[37]  Niklas Sörensson,et al.  Translating Pseudo-Boolean Constraints into SAT , 2006, J. Satisf. Boolean Model. Comput..

[38]  Felix Sheng-Ho Chang,et al.  Modular verification of code with SAT , 2006, ISSTA '06.

[39]  Daniel Jackson,et al.  Checking Properties of Heap-Manipulating Procedures with a Constraint Solver , 2003, TACAS.

[40]  Masayuki Fujita,et al.  Automatic Generation of Some Results in Finite Algebra , 1993, IJCAI.

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