Nikolaj Bjørner, Leonardo de Moura Microsoft Research Bruno Dutertre SRI International.

Slides:



Advertisements
Similar presentations
Demand-driven inference of loop invariants in a theorem prover
Advertisements

Leonardo de Moura Microsoft Research. Z3 is a new solver developed at Microsoft Research. Development/Research driven by internal customers. Free for.
Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June
Software Model Checking with SMT Ken McMillan Microsoft Research TexPoint fonts used in EMF: A A A A A.
The Project Problem formulation (one page) Literature review –“Related work" section of final paper, –Go to writing center, –Present paper(s) to class.
Satisfiability Modulo Theories (An introduction)
STROUD Worked examples and exercises are in the text PROGRAMME F6 POLYNOMIAL EQUATIONS.
Interpolants from Z3 proofs Ken McMillan Microsoft Research TexPoint fonts used in EMF: A A A A A.
Leonardo de Moura and Nikolaj Bjørner Microsoft Research.
Nikolaj Bjørner Microsoft Research Lecture 4. DayTopicsLab 1Overview of SMT and applications. SAT solving, Z3 Encoding combinatorial problems with Z3.
Standard 9 Solve a system of two linear equations.
Leonardo de Moura Microsoft Research. Satisfiability Modulo Theories: A Calculus of Computation Verification/Analysis tools need some form of Symbolic.
Leonardo de Moura Microsoft Research. What is SMT? Experiments: Windows kernel verification. Extending SMT solvers. Garbage collector (Singularity) verification.
Johannes Kepler University Linz, Austria 2008 Leonardo de Moura and Nikolaj Bjørner Microsoft Research.
Nikolaj Bjørner Microsoft Research Lecture 3. DayTopicsLab 1Overview of SMT and applications. SAT solving, Z3 Encoding combinatorial problems with Z3.
1 Satisfiability Modulo Theories Sinan Hanay. 2 Boolean Satisfiability (SAT) Is there an assignment to the p 1, p 2, …, p n variables such that  evaluates.
Yeting Ge Leonardo de Moura New York University Microsoft Research.
1 A theory-based decision heuristic for DPLL(T) Dan Goldwasser Ofer Strichman Shai Fine Haifa university TechnionIBM-HRL.
Nikolaj Bjørner Leonardo de Moura Nikolai Tillmann Microsoft Research August 11’th 2008.
1 A propositional world Ofer Strichman School of Computer Science, Carnegie Mellon University.
Austin, Texas 2011 Theorem Proving Tools for Program Analysis SMT Solvers: Yices & Z3 Austin, Texas 2011 Nikolaj Bjørner 2, Bruno Dutertre 1, Leonardo.
Ofer Strichman, Technion Deciding Combined Theories.
Leonardo de Moura Microsoft Research. Many approaches Graph-based for difference logic: a – b  3 Fourier-Motzkin elimination: Standard Simplex General.
Leonardo de Moura Microsoft Research. Quantifiers in Satisfiability Modulo Theories Logic is “The Calculus of Computer Science” (Z. Manna). High computational.
From SAT to SMT A Tutorial Nikolaj Bjørner Microsoft Research Dagstuhl April 23, 2015.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
Leonardo de Moura and Nikolaj Bjørner Microsoft Research.
Advances in Automated Theorem Proving Leonardo de Moura, Nikolaj Bjørner Ken McMillan, Margus Veanes presented by Thomas Ball
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Introduction to Satisfiability Modulo Theories
Leonardo de Moura Microsoft Research. Satisfiability Modulo Theories: An Appetizer Verification/Analysis tools need some form of Symbolic Reasoning.
7.4 Partial Fraction Decomposition. A rational expression P / Q is called proper if the degree of the polynomial in the numerator is less than the degree.
Leonardo de Moura Microsoft Research. Is formula F satisfiable modulo theory T ? SMT solvers have specialized algorithms for T.
Ethan Jackson, Nikolaj Bjørner and Wolfram Schulte Research in Software Engineering (RiSE), Microsoft Research 1. A FORMULA for Abstractions and Automated.
1 MVD 2010 University of Iowa New York University Comparing Proof Systems for Linear Real Arithmetic Using LFSC Andrew Reynolds September 17, 2010.
Factor: Factor: 1. s 2 r 2 – 4s 4 1. s 2 r 2 – 4s b b 3 c + 18b 2 c b b 3 c + 18b 2 c 2 3. xy + 3x – 2y xy + 3x – 2y -
Leonardo de Moura Microsoft Research. SATTheoriesSMT Arithmetic Bit-vectors Arrays …
Factoring by Grouping. Factoring Technique #3 Factoring By Grouping for polynomials with 4 or more terms.
Factoring Checklist Works every time!. 1. Check to see if there is a GCF. If so, factor it out. 3xy² + 12xy.
Leonardo de Moura Microsoft Research. Quantifiers in Satisfiability Modulo Theories Logic is “The Calculus of Computer Science” (Z. Manna). High computational.
Leonardo de Moura Microsoft Research. Verification/Analysis tools need some form of Symbolic Reasoning.
Solving Non-linear Arithmetic Dejan Jovanovic and Leonadro de Moura Presented by Boris Trayvas.
Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research.
Leonardo de Moura and Nikolaj Bjørner Microsoft Research.
Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015Information Security, CS 5261.
Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.
Leonardo de Moura Microsoft Research. Applications and Challenges in Satisfiability Modulo Theories Verification/Analysis tools need some form of Symbolic.
Algebra 1 Mini-Lessons 3x2y(6y + 12xy − 9x) 3(6x2y2 + 12x3y3 − 9x3y)
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding Combined Theories.
Logic Engines as a Service Leonardo de Moura and Nikolaj Bjørner Microsoft Research.
Selected Decision Procedures and Techniques for SMT More on combination – theories sharing sets – convex theory Un-interpreted function symbols (quantifier-free.
Nikolaj Bjørner Microsoft Research DTU Winter course January 4 th 2012 Organized by Hanne Riis Nielson, Flemming Nielson.
Bellwork 1)Write in standard form. 2) 3)A student is solving an equation by completing the square. Write the step in the solution that appears just before.
Satisfiability Modulo Theories and DPLL(T) Andrew Reynolds March 18, 2015.
Satisfiability Modulo Theories
Factoring Polynomials
SS 2017 Software Verification Software Model Checking 2 - Parallelism
Lazy Proofs for DPLL(T)-Based SMT Solvers
8/2/2018 4:21 AM Lifting SAT to richer theories: bit-vectors, finite bases, and theory combination Christoph M. Wintersteiger © 2013 Microsoft Corporation.
A theory-based decision heuristic for DPLL(T)
Satisfiability Modulo Theories
Solving Equations by Factoring
Use back - substitution to solve the triangular system. {image}
Sec. 1.4 Quadratic Equations.
Standard Form Quadratic Equation
Do-Now Solve for x: 3x – 10 = 7x + 2 Factor: x2 + 7x – 18
Solving Quadratic Equations
Factoring Using Distributive Property and Grouping
Chapter 5 Review Algebra II.
The SMT-LIB Initiative
Presentation transcript:

Nikolaj Bjørner, Leonardo de Moura Microsoft Research Bruno Dutertre SRI International

Accelerating lemma learning using joins SATTheoriesSMT Arithmetic Bit-vectors Arrays …

Accelerating lemma learning using joins ArithmeticArithmetic

ArithmeticArithmetic Array Theory

Accelerating lemma learning using joins ArithmeticArithmetic Array Theory Uninterpreted Functions

Accelerating lemma learning using joins VCC Hyper-V Terminator T-2 NModel HAVOC F7 SAGE Vigilante

Accelerating lemma learning using joins Z3 is a new solver developed at Microsoft Research. Development/Research driven by internal customers. Free for academic research. Interfaces: Z3 TextC/C++.NETOCaml

Guessing (case-splitting) Deducing (BCP + Theory propagation) Conflict resolution  Backtracking + Lemma Accelerating lemma learning using joins  a=b  f(a)=f(b), a 10, a > 6  b = 2 Most SMT solvers use only the literals from the given formula!

Accelerating lemma learning using joins a[0] = 0 if (c 1 ) { a[1] = 0; } else { a[1] = 1; } … if (c n ) { a[n] = 0; } else { a[n] = 1; } assert(a[0] == 0);

Accelerating lemma learning using joins a 1 = write(a 0, 0, 0) (  c 1  a 2 = write(a 1,1,0)) (c 1  a 2 = write(a 1,1,1)) … (  c n  a n+1 = write(a n,n,0)) (c n  a n+1 = write(a n,n,1)) read(a n+1,0)  0 It takes O(2 n ) time if lemmas do not use new literals!

Accelerating lemma learning using joins

Very slow in practice! It can solve “diamonds” in polynomial time.

New literals can be created Case-splitting (guessing) Lemma Learning Any SP(E) inference can be simulated by DPLL(E+  ) Accelerating lemma learning using joins

SS p pp l New literal l

Accelerating lemma learning using joins SS S, l

Accelerating lemma learning using joins Define language L (of new literals). Examples: (Bounds) x > 5 (Equality) x = y (Difference) x – y < 3 Theory propagation for L Join operator for L

Accelerating lemma learning using joins  p  q,  q  x>5, p  x>y, y > 4

Accelerating lemma learning using joins p { x > 5 }  p  q,  q  x>5, p  x>y, y > 4

Accelerating lemma learning using joins p { x > 5 } pp { x > 4 }  p  q,  q  x>5, p  x>y, y > 4

Accelerating lemma learning using joins { x > 5 } { x > 4 } = {x > 4}  p  q,  q  x>5, p  x>y, y > 4 p { x > 5 } pp { x > 4 }

Accelerating lemma learning using joins { x = y, y = z, x = z } { x = z, z = w, x = w } = {x = z}

Accelerating lemma learning using joins { x - y < 3 } { x - y < 2, y - z < 1, x - z < 3} = {x - y < 3}

Accelerating lemma learning using joins Other examples: Linear arithmetic: polyhedral. Array partial equalities: a = i b (forall x: x = i  a[x] = b[x]) k-look ahead.

Accelerating lemma learning using joins SMT solvers are fast, but they may choke in simple formulas. DPLL(join) = SMT + “Abstract Interpretation”. Future work: new literals during conflict resolution. Thank You!