Yices 1.0: An Efficient SMT Solver

Similar documents
Yices 1.0: An Efficient SMT Solver

Challenging Problems for Yices

CAV Verification Mentoring Workshop 2017 SMT Solving

Yices 2.2. Bruno Dutertre. Computer Science Laboratory, SRI International, 333 Ravenswood Avenue, Menlo Park, CA 94025, USA

The Design and Implementation of the Model Constructing Satisfiability Calculus

Leonardo de Moura and Nikolaj Bjorner Microsoft Research

Symbolic and Concolic Execution of Programs

SAT/SMT summer school 2015 Introduction to SMT

Satisfiability Modulo Theories. DPLL solves Satisfiability fine on some problems but not others

Deductive Methods, Bounded Model Checking

The Barcelogic SMT Solver

An Experimental Evaluation of Ground Decision Procedures

OpenSMT2: An SMT Solver for Multi-Core and Cloud Computing

An Experimental Evaluation of Ground Decision Procedures

Lemmas on Demand for Lambdas

QuteSat. A Robust Circuit-Based SAT Solver for Complex Circuit Structure. Chung-Yang (Ric) Huang National Taiwan University

DPLL(Γ+T): a new style of reasoning for program checking

Formally Certified Satisfiability Solving

Lecture Notes on Real-world SMT

Integrating a SAT Solver with Isabelle/HOL

HySAT. what you can use it for how it works example from application domain final remarks. Christian Herde /12

DPLL(T ):Fast Decision Procedures

An Alldifferent Constraint Solver in SMT

Formalization of Incremental Simplex Algorithm by Stepwise Refinement

[Draft. Please do not distribute] Online Proof-Producing Decision Procedure for Mixed-Integer Linear Arithmetic

Bounded Model Checking with Parametric Data Structures

JPF SE: A Symbolic Execution Extension to Java PathFinder

Generating Small Countermodels. Andrew Reynolds Intel August 30, 2012

SMT-LIB for HOL. Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory. ITP Workshop MSR Cambridge 25 August 2009

Finite Model Generation for Isabelle/HOL Using a SAT Solver

Lemmas on Demand for the Extensional Theory of Arrays

Motivation. CS389L: Automated Logical Reasoning. Lecture 17: SMT Solvers and the DPPL(T ) Framework. SMT solvers. The Basic Idea.

Encoding First Order Proofs in SMT

SAT Solver and its Application to Combinatorial Problems

Decision Procedures in the Theory of Bit-Vectors

SAT Solvers. Ranjit Jhala, UC San Diego. April 9, 2013

Decision Procedures in First Order Logic

SMT Solvers for Verification and Synthesis. Andrew Reynolds VTSA Summer School August 1 and 3, 2017

Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers

Learning Techniques for Pseudo-Boolean Solving and Optimization

Practical SAT Solving

PVS, SAL, and the ToolBus

SAT Solver. CS 680 Formal Methods Jeremy Johnson

The Prototype Verification System PVS

Solving Quantified Verification Conditions using Satisfiability Modulo Theories

TWO main approaches used to increase software quality

Efficient Circuit to CNF Conversion

Term Algebras with Length Function and Bounded Quantifier Elimination

Decision Procedures for Recursive Data Structures with Integer Constraints

Decision Procedures for Equality Logic. Daniel Kroening and Ofer Strichman 1

Rethinking Automated Theorem Provers?

Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories. ACSys Seminar

Improving First-order Model Searching by Propositional Reasoning and Lemma Learning

Improving Coq Propositional Reasoning Using a Lazy CNF Conversion

Ranking Templates for Linear Loops

Built-in Treatment of an Axiomatic Floating-Point Theory for SMT Solvers

Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of.

Satisfiability Modulo Theories: ABsolver

Overview of SRI s. Lee Pike. June 3, 2005 Overview of SRI s. Symbolic Analysis Laboratory (SAL) Lee Pike

Tree Interpolation in Vampire

Lecture 2: Symbolic Model Checking With SAT

COUNTEREXAMPLE-GUIDED MODEL SYNTHESIS

Solving Linear Constraints over Real. German Vitaliy Jr. Researcher Glushkov Institute of Cybernetic NAS Ukraine

Evaluation of SAT like Proof Techniques for Formal Verification of Word Level Circuits

Lingeling Essentials POS 2014

Full CNF Encoding: The Counting Constraints Case

LEARNING TO INSTANTIATE QUANTIFIERS

Solving Resource-Constrained Scheduling Problems with Exact Methods

Minimum Satisfying Assignments for SMT. Işıl Dillig, Tom Dillig Ken McMillan Alex Aiken College of William & Mary Microsoft Research Stanford U.

Lost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015

On using floating-point computations to help an exact linear arithmetic decision procedure

8. Symbolic Trajectory Evaluation, Term Rewriting. Motivation for Symbolic Trajectory Evaluation

Opportunities for Industrial Applications of Formal Methods

Satisfiability (SAT) Applications. Extensions/Related Problems. An Aside: Example Proof by Machine. Annual Competitions 12/3/2008

argo-lib: A Generic Platform for Decision Procedures

Solving Quantified Verification Conditions using Satisfiability Modulo Theories

Evaluating the SMT-LIB repository as a benchmark source for software verification

COUNTEREXAMPLE-GUIDED MODEL SYNTHESIS

Integer Programming as Projection

VS 3 : SMT Solvers for Program Verification

Integration of SMT Solvers with ITPs There and Back Again

Combinational Equivalence Checking

URBiVA: Uniform Reduction to Bit-Vector Arithmetic

On Computing Minimum Size Prime Implicants

A Tour of CVC4. Tim King

Walking through the Forest: a Fast EUF Proof-Checking Algorithm

The SMT-LIB 2 Standard: Overview and Proposed New Theories

Better Lemmas with Lambda Extraction

An MCSAT treatment of Bit-Vectors (preliminary report)

Zchaff: A fast SAT solver. Zchaff: A fast SAT solver

Solving Constraint Satisfaction Problems by a SAT Solver

Minion: Fast, Scalable Constraint Solving. Ian Gent, Chris Jefferson, Ian Miguel

versat: A Verified Modern SAT Solver

CODE ANALYSIS CARPENTRY

Scan Scheduling Specification and Analysis

Deciding Separation Logic Formulae by SAT and Incremental Negative Cycle Elimination

A Decision Procedure for Bit-Vectors and Arrays

SAT, SMT and QBF Solving in a Multi-Core Environment

OPTIMIZATION IN SMT WITH LA(Q) COST FUNCTIONS. Roberto Sebastiani and Silvia Tomasi

MATHSAT: Tight Integration of SAT and Mathematical Decision Procedures

Transcription:

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

Introduction Yices is an 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/MaxSMT. Supports all theories in SMT-COMP. Yices: An Efficient SMT Solver p.2

Supported Features Uninterpreted functions Linear real and integer arithmetic Extensional arrays Fixed-size bit-vectors Quantifiers Scalar types Recursive datatypes, tuples, records Lambda expressions Dependent types Yices: An Efficient SMT Solver p.3

Benchmarking It is impossible to build an efficient SAT solver (and SMT solver) for arbitrary formulas. Ignore hand-made and random benchmarks. The breakthrough is SAT solving happened after industrial benchmarks started to be used. Randy Bryant What is the hardest part in the implementation of a theorem prover? Ans: Testing/Benchmarking Greg Nelson Yices: An Efficient SMT Solver p.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.). It should be easy to extract the model. 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 Efficient SMT Solver p.5

DPLL-based SAT solver Yices can be used as a regular SAT solver (it can read DIMACS files). Uses ideas from top performing SAT solvers: MiniSAT, Siege, zchaff. Supports the creation of clauses and boolean variables during the search. It is tightly integrated with the core theory solver. Supports user defined constraints. Examples: Linear pseudo-boolean constraint (used in MaxSMT). Bridge between bit-vector terms and boolean variables used in bit-blasting. Yices: An Efficient SMT Solver p.6

DPLL-based SAT solver (cont.) Explanations for assigned literals: Clause (like any SAT solver). Generic explanation. Antecedents can be computed only when they are needed. Very convenient for implementing new theories. Avoids flooding the SAT solver with useless clauses. Processes the case-splits produced by satellite theories: Bit-vector Linear integer arithmetic Array Yices: An Efficient SMT Solver p.7

Core Theory Solver Core theory solver handles (offset) equalities and uninterpreted functions. Offset equalities less communication overhead. Offset equalities less shared variables. The algorithm used in the core is similar to the one used in the Simplify theorem prover. Extensions for producing precise explanations and for handling offset equalities. Exhaustive theory propagation (equalities & disequalities). x 1 =... = x n y m =... = y 1 x 1 y 1 Satellite theories are attached to the core. It is very easy to add new satellite theories. Yices: An Efficient SMT Solver p.8

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 filters 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 sufficient. Yices: An Efficient SMT Solver p.9

Linear arithmetic Novel Simplex-based algorithm (see CAV 06 paper). Efficient backtracking and theory propagation. New approach for solving strict inequalities (t > 0). Presimplification step. Integer arithmetic: Gomory Cuts, Branch & Bound, and GCD Test. Arbitrary precision arithmetic. On sparse problems, this solver is competitive with tools specialized for difference logic. For dense difference-logic problems, Yices uses a specialized algorithm based on incremental Floyd-Warshall. Yices: An Efficient SMT Solver p.10

Dynamic Ackermann Axiom Yices creates the clause x y f(x) = f(y) whenever 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 y, which is missed by traditional congruence-closure algorithms. This propagation rule has a dramatic performance benefit 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 Efficient SMT Solver p.11

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. f, i, v. select(store(f, i, v), i) = v f, i, j, v. i = j select(store(f, i, v), j) = select(f, j) f, g. f = g k. select(f, k) select(g, k) Yices: An Efficient SMT Solver p.12

Function (Array) Theory (cont.) Lazy reduction to uninterpreted functions. f g means f and g are in the same equivalence class. store(f, i, v) select(store(f, i, v), i) = v g store(f, i, v), select(g, j) i = j select(store(f, i, v), j) = select(f, j) g f, store(f, i, v), select(g, j) i = j select(store(f, i, v), j) = select(f, j) f g for a fresh k select(f, k) select(g, k) typepred(k) A similar approach is used to implement tuples, records and recursive datatypes. Yices: An Efficient SMT Solver p.13

Bit-vector Theory It is implemented as a satellite theory. So, core theory handles equalities and uninterpreted functions. Straightforward implementation: Simplification rules. Bit-blasting for all bit-vector operators but equality. Bridge between bit-vector terms and the boolean variables. Yices: An Efficient SMT Solver p.14

Quantifiers Main approach: egraph matching (Simplify) Extension for offset equalities and terms. Several triggers (multi-patterns) for each universally quantified expression. The triggers are fired using a heuristic that gives preference to the most conservative ones. Fourier Motzkin elimination to simplify quantified expressions. Instantiation heuristic based on: What s Decidable About Arrays?, A. R. Bradley, Z. Manna, and H. B. Sipma, VMCAI 06. Yices: An Efficient SMT Solver p.15

Conclusion Yices is an efficient and flexible SMT solver. Yices supports all theories in SMT-COMP and much more. It is being used in SAL, PVS, and CALO. Fixed all bugs in Yices 0.1. Tested on all (42167) SMT-LIB benchmarks with 10 different random seeds. Yices is not ICS. Yices is freely available for end-users. http://yices.csl.sri.com Yices tutorial: AFM workshop (Tomorrow - August 21) Yices: An Efficient SMT Solver p.16