41
Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14 2013

Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Embed Size (px)

Citation preview

Page 1: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Satisfiability Modulo Theoriesand

Network Verification

Nikolaj Bjørner Microsoft Research

Formal Methods and Networks Summer School Ithaca, June 10-14 2013

Page 2: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Lectures

Wednesday 2:00pm-2:45pm: An Introduction to SMT with Z3

Thursday 11:00am-11:45amAlgorithmic underpinnings of SAT/SMT

Friday 9:00am-9:45amTheories, Solvers and Applications

Page 3: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Plan

I. Satisfiability Modulo Theories in a nutshell

II. SMT solving in a nutshell

III. SMT by example

Page 4: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Takeaways:

• Modern SMT solvers are a often good fit for program analysis tools.– Handle domains found in programs directly.

• The selected examples are intended to show instances where sub-tasks are reduced to SMT/Z3.

Page 5: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

If you use Z3,

This could be you

Page 6: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

– Backed by Proof Plumbers

Leonardo de Moura, Nikolaj Bjørner, Christoph Wintersteiger

Handbook of Satisfiabilit

y

Not all is hopeless

Page 7: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Background Reading: SAT

Page 8: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Background Reading: SMT

September 2011

Page 9: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

SAT IN A NUTSHELL

Page 10: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

SAT in a nutshell

(Tie Shirt) (Tie Shirt) (Tie Shirt)

Page 11: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

SMT IN A NUTSHELL

Page 12: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Is formula satisfiable modulo theory T ?

SMT solvers have specialized algorithms for

T

Satisfiability Modulo Theories (SMT)

Page 13: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

ArithmeticArray TheoryUninterpreted Functions

𝑥+2=𝑦⇒ 𝑓 (𝑠𝑒𝑙𝑒𝑐𝑡 (𝑠𝑡𝑜𝑟𝑒 (𝑎 ,𝑥 ,3 ) , 𝑦−2 ) )= 𝑓 (𝑦−𝑥+1)

Satisfiability Modulo Theories (SMT)

Page 14: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

SMT SOLVING IN A NUTSHELLJob Shop Scheduling

Page 15: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Job Shop Scheduling

Machines

Jobs

P = NP? Laundry 𝜁 (𝑠 )=0⇒ 𝑠=12+𝑖𝑟

Tasks

Page 16: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Constraints:Precedence: between two tasks of the same job

Resource: Machines execute at most one job at a time

4

132

[ 𝑠𝑡𝑎𝑟 𝑡2,2 ..𝑒𝑛𝑑2,2 ]∩ [ 𝑠𝑡𝑎𝑟 𝑡4,2 ..𝑒𝑛𝑑4,2 ]=∅

Job Shop Scheduling

Page 17: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Constraints:Encoding:

Precedence: - start time of job 2 on mach 3 - duration of job 2 on mach 3Resource:

413

2

[ 𝑠𝑡𝑎𝑟 𝑡2,2 ..𝑒𝑛𝑑2,2 ]∩ [ 𝑠𝑡𝑎𝑟 𝑡4,2 ..𝑒𝑛𝑑4,2 ]=∅

Not convex

Job Shop Scheduling

Page 18: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Job Shop Scheduling

Page 19: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Job Shop Scheduling

case split

case split

Efficient solvers:- Floyd-Warshal algorithm- Ford-Fulkerson algorithm

𝑧−𝑧=5 – 2 –3 – 2=−2<0

Page 20: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

THEORIES

Page 21: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Theories

Uninterpreted functions

Page 22: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Uninterpreted functionsArithmetic (linear)

Theories

Page 23: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Uninterpreted functionsArithmetic (linear)Bit-vectors

Theories

Page 24: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Uninterpreted functionsArithmetic (linear)Bit-vectorsAlgebraic data-types

Theories

Page 25: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Uninterpreted functionsArithmetic (linear)Bit-vectorsAlgebraic data-typesArrays

Theories

Page 26: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Uninterpreted functionsArithmetic (linear)Bit-vectorsAlgebraic data-typesArraysPolynomial Arithmetic

Theories

Page 27: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

QUANTIFIERS

Page 28: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Equality-Matching

¿ matches with substitution modulo [de Moura, B. CADE 2007]

Page 29: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Quantifier Elimination

[B. IJCAR 2010]

Presburger Arithmetic, Algebraic Data-types,Quadratic polynomials

SMT integration to prune branches

Page 30: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

MBQI: Model based Quantifier Instantiation

[de Moura, Ge. CAV 2008][Bonachnia, Lynch, de Moura CADE 2009][de Moura, B. IJCAR 2010]

Page 31: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Horn Clauses

[Hoder, B. SAT 2012]

mc() mc() mc() mc() mc()

Solver finds solution for mc

mc(x) = x-10 if x > 100mc(x) = mc(mc(x+11)) if x 100

assert (mc(x) 91)

Page 32: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

MODELS, PROOFS, CORES & SIMPLIFICATION

Page 33: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Logical Formula

Sat/Model

Models

Page 34: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

ProofsLogical Formula

Unsat/Proof

Page 35: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Simplification

Simplify

Logical Formula

Page 36: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Cores

Logical Formula

Unsat. Core

Page 37: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

TACTICS, SOLVERS

Page 38: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Tactics

Composition of tactics:•(then t s) •(par-then t s) applies t to the input goal and s to every subgoal produced by t in parallel. •(or-else t s)•(par-or t s) applies t and s in parallel until one of them succeed. •(repeat t) •(repeat t n) •(try-for t ms) •(using-params t params) Apply the given tactic using the given parameters.

Page 39: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Solvers• Tactics take goals and reduce to sub-goals• Solvers take tactics and serve as logical contexts.

• push• add• check• model, core, proof• pop

Page 40: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

APIS

C

C++ python OCaml

.NETJava

Page 41: Satisfiability Modulo Theories and Network Verification Nikolaj Bjørner Microsoft Research Formal Methods and Networks Summer School Ithaca, June 10-14

Summary

Z3 supports several theories– Using a default combination– Providing custom tactics for special combinations

Z3 is more than sat/unsat– Models, proofs, unsat cores, – simplification, quantifier elimination are tactics

Prototype with python/smt-lib2– Implement using smt-lib2/programmatic API