Analyzing Alloy Constraints using an SMT Solver: A Case Study

This paper describes how Yices, a SAT Modulo theories solver, can be used to analyze the address-book problem expressed in Alloy, a first-order relational logic with transitive closure. Current analysis of Alloy models – as performed by the Alloy Analyzer – is based on SAT solving and thus, is done only with respect to finitized types. Our analysis generalizes this approach by taking advantage of the background theories available in Yices, and avoiding type finitization when possible. Consequently, it is potentially capable of proving that an assertion is a tautology – a capability completely missing from the Alloy Analyzer. This paper also reports on our experimental results that compare the performance of our analysis to that of the Alloy Analyzer for various versions of the address book problem.

[1]  Sharad Malik,et al.  Declarative Infrastructure Configuration Synthesis and Debugging , 2008, Journal of Network and Systems Management.

[2]  Damián Barsotti,et al.  Verification of Clock Synchronization Algorithms: Experiments on a Combination of Deductive Tools , 2006, Electron. Notes Theor. Comput. Sci..

[3]  Wolfram Schulte,et al.  Separation Logic Verification of C Programs with an SMT Solver , 2009, Electron. Notes Theor. Comput. Sci..

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

[5]  K. Rustan M. Leino,et al.  Reasoning about comprehensions with first-order SMT solvers , 2009, SAC '09.

[6]  Silvio Ghilardi,et al.  Towards SMT Model Checking of Array-Based Systems , 2008, IJCAR.

[7]  Sarfraz Khurshid,et al.  Generating structurally complex tests from declarative constraints , 2004 .

[8]  S. Ghilardi Model-Checking Modulo Theories at Work : the integration of Yices in MCMT , 2009 .

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

[10]  Mana Taghdiri Inferring Specifications to Detect Errors in Code , 2004, ASE.

[11]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[12]  Sharad Malik,et al.  Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[13]  John Matthews,et al.  Using Yices as an automated solver in Isabelle / HOL , 2008 .

[14]  Alessandro Armando,et al.  Bounded Model Checking of Software Using SMT Solvers Instead of SAT Solvers , 2006, SPIN.

[15]  Mandana Vaziri-Farahani,et al.  Finding bugs in software with a constraint solver , 2004 .

[16]  Daniel Jackson,et al.  Formal Modeling and Analysis of a Flash Filesystem in Alloy , 2008, ABZ.