satisfiability modulo theories and network verification nikolaj bjørner microsoft research formal...

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

Upload: katlyn-kimbell

Post on 01-Apr-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

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