yices 1 0 an efficient smt solver
play

Yices 1.0: An Efficient SMT Solver SMT-COMP06 Leonardo de Moura - PDF document

Yices 1.0: An Efficient SMT Solver SMT-COMP06 Leonardo de Moura joint work with Bruno Dutertre demoura@csl.sri.com Computer Science Laboratory SRI International Menlo Park, CA Yices: An Efficient Introduction Yices is a SMT Solver


  1. Yices 1.0: An Efficient SMT Solver SMT-COMP’06 Leonardo de Moura joint work with Bruno Dutertre demoura@csl.sri.com Computer Science Laboratory SRI International Menlo Park, CA Yices: An Efficient

  2. Introduction Yices is a SMT Solver developed at SRI International. It is used in SAL, PVS, and CALO. It is a complete reimplementation of SRI’s previous SMT solvers. It has a new architecture, and uses new algorithms Counterexamples and Unsatisfiable Cores. Incremental: push, pop, and retract. Weighted MaxSAT. Supports all theories in SMT-LIB. Yices: An Efficient

  3. Main Features Yices supports all theories in SMT-LIB. Yices input languange is based on the PVS and SAL languages. Main capabilities: uninterpreted functions, scalar types, linear real and integer arithmetic, extensional arrays, fi xed-size bit-vectors, recursive datatypes, tuples, records, lambda expressions, quantifi ers, dependent types. Yices: An Effi cient

  4. Architecture The new architecture integrates: a modern DPLL-based SAT solver, a core theory solver that handles equalities and uninterpreted functions, satellite theories (for arithmetic, arrays, bit-vectors etc.). Yices uses an extension of the standard Nelson-Oppen combination method. The core and satellite theories communicate via offset equalities ( x = y + k ). Yices: An Effi cient

  5. DPLL-based SAT solver The SAT solver module used in Yices is very flexible Supports the creation of clauses and boolean variab during the search. Process the case-splits produced by theories (e.g., bit-vector, linear integer arithmetic, array). It is tightly integrated with the core theory solver. Yices can also read problems in the DIMACS CNF formats. Yices: An Effi cient

  6. Core Theory Core theory handles (offset) equalities and uninterpreted functions. By using offset equalities, the core handles simple arithmetic constraints directly, which, in many cases avoids the overhead of communicating with a dedicated solver. Satellite theories are attached to the core. It is very easy to add new Satellite theories. The algorithm used in the core is similar to the one used in the Simplify theorem prover. Extensions for producing precise explanations and f handling offset equalities. Yices: An Effi cient

  7. Equality propagation Satellite theories are not required to propagate all implied equalities. Yices case splits on (offset) equalities between shared variables to achieve completeness. Each theory is responsible for creating the required case-splits. Simple fi lters are used to minimize the number of case-splits. Example: suppose the core contains four terms f ( x 1 , x 2 ) , f ( x 3 , x 4 ) , g ( x 5 ) , and g ( x 6 ) , and x 1 to x 6 are shared variables. Case splitting on x 1 = x 3 , x 2 = x 4 and x 5 = x 6 is suffi cient. Yices: An Effi cient

  8. Linear arithmetic Yices uses a novel Simplex-based algorithm. Effi cient Backtracking and Theory Propagation. New approach for solving strict inequalities ( t > 0 ). Preprocessing step. The algorithm is described in the CAV’06 paper. A detailed technical reported is available on the Yices website. Integer arithmetic: Gomory Cuts and Branch & Bound. On sparse problems, this solver is competitive with (and often outperforms) state-of-the-art tools specialized difference logic. For dense difference-logic problems, it uses a specialized algorithm based on Floyd-Warshall. Yices: An Effi cient

  9. Dynamic Ackermann Axiom Yices creates the clause x � = y ∨ f ( x ) = f ( y ) whene the congruence rule x = y ❀ f ( x ) = f ( y ) is used to deduce a conflict. Yices can perform the propagation f ( x ) � = f ( y ) ❀ x which is missed by traditional congruence-closure algorithms. This propagation rule has a dramatic performance benefi t on many problems. Avoids flooding the SAT solver with unnecessary instances. DPLL solver clause-deletion heuristics can safely remove any of the dynamically created instances since they are not required for completeness. Yices: An Effi cient

  10. Function (Array) Theory Yices (like PVS) does not make a distinction between arrays and functions. Function theory handles: function updates, lambda expressions, and extensionality. Lazy instantiation of theory axioms. Extensionality axiom requires the propagation of disequalities: f � = g ❀ for a fresh k , f ( k ) � = g ( k ) ∧ typepred ( k, domain Alternative: case-split on shared (function) variables. It is complete even for arrays with fi nite domains. Yices: An Effi cient

  11. Bit-vector theory It is implemented as a satellite theory. So, core theory handles equalities and uninterpreted functions. Quick & Dirty implementation. Bit-blasting is applied to all bit-vector operators but equality. Theory just implements the “bridge” between bit-vector terms and the boolean variables representing them the SAT solver. Yices: An Effi cient

  12. Quantifiers Yices uses three methods for handling universally quantifi ed expressions. The main approach is an extension of egraph matching (Simplify) that supports offset equalities and terms. Yices can use several triggers (multi-patterns) for each universally quantifi ed expression. The triggers are fi red using a heuristic that gives preference to the most conservative ones. Yices also uses Fourier Motzkin elimination to simplify quantifi ed expressions. Yices also uses an instantiation heuristic based on the approach described in “What’s Decidable About Arrays?”, A. R. Bradley, Z. Manna, and H. B. Sipma. Yices: An Effi cient

  13. Conclusion Yices is an effi cient and fl exible SMT solver. Yices supports all theories in SMT-LIB and much more Yices 1.0 is based on our experiments with Yices 0.1 and Simplics. Yices � = ICS It is being integrated with SAL, PVS, and CALO. http://yices.csl.sri.com Yices is freely available for end-users. Yices: An Effi cient

Recommend


More recommend