asurveyofsatisfiabilitymodulotheory - unich.itsmt=sat+theories...

48
STATOR A Survey of Satisfiability Modulo Theory (for mathematicians) David Monniaux VERIMAG GNCS, Pescara, February 10, 2017 David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 1 / 48

Upload: others

Post on 21-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

A Survey of Satisfiability Modulo Theory(for mathematicians)

David Monniaux

VERIMAG

GNCS, Pescara, February 10, 2017

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 1 / 48

Page 2: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

SMT = SAT + theories

SAT = say whether a formula over Booleans is satisfiable (and give amodel if so)

SMT = say whether a formula over Booleans and other types issatisfiable (and give a model if so)

(x ≤ 0 ∨ x+ y ≤ 0) ∧ y ≥ 1 ∧ x ≥ 1 unsatisfiable for x, y ∈ R(x ≤ 0 ∨ x+ y ≤ 0) ∧ y ≥ 1 satisfiable for x, y ∈ ZHere theory = linear real arithmetic (LRA) or linear integerarithmetic (LIA)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 2 / 48

Page 3: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Contents

DPLL and CDCL

DPLL(T)

Natural domain SMTExponential behaviour of DPLL(T)Abstract CDCL (ACDCL)Model-construction satisfiability calculus (MCSAT)

Other topics

Conclusion

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 3 / 48

Page 4: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Propositional satisfiability (SAT)

Input: formula with ∧, ∨(possibly “if then else”, “exclusive-or” etc.)(

(a ∧ b ∧ c) ∨ (b ∧ c ∧ d))∧ (b ∨ c) .

Output: “unsat” or a model (satisfying assignment)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 4 / 48

Page 5: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Conjonction normal form (CNF)

View the SAT formula as a system of constraints= clauses (disjunctions of literals a or a)

convert from arbitrary formula to CNF

cannot be done efficiently keeping only original variables(exponential blowup, per distributivity)

(a ∨ b) ∧ (c ∨ d) −→ (a ∧ c) ∨ (a ∧ d) ∨ (b ∧ c) ∨ (b ∧ d)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 5 / 48

Page 6: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Tseitin encoding

Add extra variables((a ∧ b ∧ c) ∨ (b ∧ c ∧ d)

)∧ (b ∨ c) .

Assign propositional variables to sub-formulas:

e ≡ a ∧ b ∧ c f ≡ b ∧ c ∧ d g ≡ e ∨ fh ≡ b ∨ c ϕ ≡ g ∧ h ;

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 6 / 48

Page 7: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Tseitin encoding

e ≡ a ∧ b ∧ c f ≡ b ∧ c ∧ d g ≡ e ∨ fh ≡ b ∨ c ϕ ≡ g ∧ h ;

turned into clauses

e ∨ a e ∨ b e ∨ c a ∨ b ∨ c ∨ ef ∨ b f ∨ c f ∨ d b ∨ c ∨ d ∨ fe ∨ g f ∨ g g ∨ e ∨ fb ∨ h c ∨ h h ∨ b ∨ cϕ ∨ g ϕ ∨ h g ∨ h ∨ ϕ ϕ

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 7 / 48

Page 8: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

DPLLEach clause acts as propagator e.g.assuming a and b, clause a ∨ b ∨ c yields c

Boolean constraint propagation aka unit propagation:propagate as much as possibleonce the value of a variable is known, use it elsewhere

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 8 / 48

Page 9: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

DPLL: Branching

If unit propagation insufficient to▶ either find a satisfying assignment▶ either find an unsatisfiable clause (all literals forced to false)

Then:▶ pick a variable▶ do a search subtree for both polarities of the variable

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 9 / 48

Page 10: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Example

e ∨ a e ∨ b e ∨ c a ∨ b ∨ c ∨ ef ∨ b f ∨ c f ∨ d b ∨ c ∨ d ∨ fe ∨ g f ∨ g g ∨ e ∨ fb ∨ h c ∨ h h ∨ b ∨ cϕ ∨ g ϕ ∨ h g ∨ h ∨ ϕ ϕ

From unit clause ϕ

ϕ ∨ g → g ϕ ∨ h → h g ∨ h ∨ ϕ removed

Now g and h are t,

e ∨ g removed f ∨ g removed b ∨ h removedc ∨ h removed g ∨ e ∨ f → e ∨ f h ∨ b ∨ c → b ∨ c

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 10 / 48

Page 11: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

CDCL: clause learning

A DPLL branch gets closed by contradiction: a literal gets forced toboth t and f.

Both t and f inferred from hypotheses H by unit propagation.Trace back to a subset of hypotheses, sufficient for contradiction.

e.g. a ∧ b ∧ c ∧ d ∧ H =⇒ f

Learn clause = negation of bad hypotheses, implies by H:

a ∨ b ∨ c ∨ d

Add this clause (maybe garbage-collected later) to HUsed by unit propagation

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 11 / 48

Page 12: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Proof systems

DPLL Tree resolution

CDCL DAG resolution (shared proof subtrees)= linear resolution

Some problems have exponentially smaller proofs in DAG thantree resolution.

(Independent of search strategy.)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 12 / 48

Page 13: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL and CDCL

Implementation wise

Clause simplification etc. implemented astwo watched literals per clause

Pointers to clauses used for deduction

Highly optimized proof engines▶ Minisat▶ Glucose

Preprocessing

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 13 / 48

Page 14: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Contents

DPLL and CDCL

DPLL(T)

Natural domain SMTExponential behaviour of DPLL(T)Abstract CDCL (ACDCL)Model-construction satisfiability calculus (MCSAT)

Other topics

Conclusion

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 14 / 48

Page 15: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

DPLL(T)

(Improper terminology, should be CDCL(T))

(x ≤ 0 ∨ x+ y ≤ 0) ∧ y ≥ 1 ∧ x ≥ 1↓ dictionary of theory literals(a ∨ b) ∧ c ∧ d

Solve, get (a, b, c, d) = (t, f, t, t).But x ≤ 0 ∧ x ≥ 1 is a contradiction!Add theory lemma a ∨ d

Solve, get (a, b, c, d) = (f, t, t, t).But x+ y ≤ 0∧ ≥ 1 ∧ x ≥ 1 is a contradiction!Add theory lemma b ∨ c ∨ d.

The problem is unsatisfiable.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 15 / 48

Page 16: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

DPLL(T)

In practice, do not wait for the CDCL solver to provide a fullassignment.Check partial assignments for theory feasibility.

If during theory processing, a literal becomes known to be t or f,propagate it to CDCL.e.g. x ≥ 0, x ≥ 1 assigned, propagate x+ y ≥ 0

Boolean relaxation of the original problem.Lazy expansion of theory.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 16 / 48

Page 17: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Linear real arithmetic

Usually decided by exact precision simplex.Extract from the tableau the contradictory subset of assignments.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 17 / 48

Page 18: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

LRA Example

2 ≤ 2x+ y

−6 ≤ 2x− 3y−1000 ≤ 2x+ 3y ≤ 18

−2 ≤ −2x+ 5y20 ≤ x+ y .

(1)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 18 / 48

Page 19: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

LRA Example

a = 2x +y 2 ≤ ab = 2x −3y −6 ≤ bc = 2x 3y −1000 ≤ c ≤ 18d = −2x +5y −2 ≤ de = x +y 20 ≤ e .

(2)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 19 / 48

Page 20: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

LRA Example

Gauss-like pivoting until:e = 7/16c −1/16da = 3/4c −1/4db = 1/4c −3/4dx = 5/16c −3/16dy = 1/8c +1/8d .

(3)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 20 / 48

Page 21: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

LRA Example

e = 7/16c− 1/16dBut: c ≤ 18 and d ≥ −2, so −7/16c− 1/16d ≤ 8.But we have e ≥ 20, thus no solution.

Relevant original inequalities can be combined into an unsatisfiableone (thus the theory lemma)

7/16 (−2x −3y) ≥ −7/16 ×181/16 (−2x +5y) ≥ −1/16 ×21 x +y ≥ 20

0 0 ≥ 12

(4)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 21 / 48

Page 22: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Linear integer arithmetic

Linear real arithmetic +▶ branching: if LRA model x = 4.3, then x ≤ 4 ∨ x ≥ 5▶ (sometimes) Gomory cuts

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 22 / 48

Page 23: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Uninterpreted functions

f(x) = f(y) ∧ x = z+ 1 ∧ z = y− 1↓fx = fy ∧ x = z+ 1 ∧ z = y− 1

Get (x, y, z, fx, fy) = (1, 1, 0, 0, 1).But if x = y then fx = fy! Add x = y =⇒ fx = fy.

The problem over (x, y, z, fx, fy) becomes unsatisfiable.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 23 / 48

Page 24: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Arrays

update(f, x0, y0) the function mapping▶ x = x0 to f[x]▶ x0 to y0.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 24 / 48

Page 25: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Quantifiers

Show this formula is true:

(∀i 0 ≤ i < j =⇒ t[i ] = 42) =⇒(∀i 0 ≤ i ≤ j =⇒ update(t, j, 0)[i ] = 42) (5)

Equivalently, unsatisfiable:

0 ≤ i0 ≤ j ∧ update(t, j, 0)[i0 ] = 0 ∧ (∀i 0 ≤ i < j =⇒ t[i ] = 0)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 25 / 48

Page 26: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

DPLL(T)

Instantiation

Prove unsatisfiable:

0 ≤ i0 ≤ j ∧ update(t, j, 0)[i0 ] = 0 ∧ (∀i 0 ≤ i < j =⇒ t[i ] = 0)

By instantiation i = i0:

0 ≤ i0 ≤ j ∧ update(t, j, 0)[i0 ] = 0 ∧ (0 ≤ i0 < j =⇒ t[i0 ] = 0)

Unsatisfiable

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 26 / 48

Page 27: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT

Contents

DPLL and CDCL

DPLL(T)

Natural domain SMTExponential behaviour of DPLL(T)Abstract CDCL (ACDCL)Model-construction satisfiability calculus (MCSAT)

Other topics

Conclusion

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 27 / 48

Page 28: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT

DPLL(T) versus natural domain

DPLL(T) Boolean abstraction of the formulaAssign only to Boolean variablesThen refine abstraction by cubes unsatisfiable wrttheory

Natural domain Assign to Boolean and arithmetic variables

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 28 / 48

Page 29: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Exponential behaviour of DPLL(T)

Diamonds

D(n) the unsatisfiable formula:

for 0 ≤ i < n

xi − ti ≤ 2yi − ti ≤ 3(ti+1 − xi ≤ 3) ∨ (ti+1 − yi ≤ 2)

tn − t0 > 5n

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 29 / 48

Page 30: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Exponential behaviour of DPLL(T)

DPLL(T) on diamonds

Will enumerate each combination of disjuncts =All terms in disjunctive normal form

Fundamental limitation: can only use atoms from originalformula.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 30 / 48

Page 31: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Abstract CDCL (ACDCL)

Abstract CDCL

DPLL / CDCL assign truth values to Booleans

↓ generalization

ACDCL assigns truth values to Booleans and intervals to reals(or elements from an abstract domain)

e.g. if current assignment x ∈ [1,+∞) and y = [4, 10]constraint z = x− y⇝ x ∈ [−9,+∞)

If too coarse, split intervals.Akin to constraint programming.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 31 / 48

Page 32: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Abstract CDCL (ACDCL)

Learning in ACDCL

Constraints x ∧ z = x · y ∧ z ≤ −1Search context x ≤ −4, contradiction.

Contradiction ensured by x < 0 weaker than search context.

Learn x < 0. Predicate not in original formula.

(CDCL-style learning would only learn x > −4.)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 32 / 48

Page 33: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

MCSAT

In DPLL(T), assign only to Booleans and atoms from original formula.In MCSAT, assign to propositional atoms and numeric variablesx1, . . . , xn, . . .

When finding an impossibility when trying to assign to xn+1, derive ageneral impossibility on x1, . . . , xn (partial projection).

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 33 / 48

Page 34: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

Example: diamonds

for 0 ≤ i ≤ 2

xi − ti ≤ 2yi − ti ≤ 3ti+1 − xi ≤ 3 ∨ ti+1 − yi ≤ 2

t0 = 0t3 ≥ 16

Pick t0 7→ 0, t1 − x0 ≤ 3 7→ t, x0 7→ 0,t1 7→ 0, t2 − x1 ≤ 3 7→ t, x1 7→ 0,t2 7→ 0, t3 − x2 ≤ 3 7→ t, x2 7→ 0.

No way to assign to x3!Because x2 7→ 0 and t3 − x2 ≤ 3 and t3 ≥ 16.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 34 / 48

Page 35: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

Analyze the failure

x2 7→ 0 fails due to a more general reason (Fourier-Motzkin){t3 − x2 ≤ 3t3 ≥ 16

=⇒ x2 ≥ 13

Possible to learnt3 − x2 > 3 ∨ x2 ≥ 13

Retract x2 7→ 0.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 35 / 48

Page 36: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

Backtracking

We have learnt t3 − x2 > 3 ∨ x2 ≥ 13.t3 − x2 ≤ 3 still assigned.

{x2 ≥ 13x2 − t2 ≤ 2 =⇒ t2 ≥ 11

Thus learnt3 − x2 > 3 ∨ t2 ≥ 11

t3 − x2 ≤ 3 7→ t retracted.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 36 / 48

Page 37: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

Continuation

Same reasoning for t3 − x2 ≤ 3 7→ f yields by learning

t3 − x2 ≤ 3 ∨ t2 ≥ 11

Thus {t3 − x2 > 3 ∨ t2 ≥ 11t3 − x2 ≤ 3 ∨ t2 ≥ 11

=⇒ t2 ≥ 11

One learns t2 ≥ 11.Then t1 ≥ 6 similarly.

But then no satisfying assignment to t0!

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 37 / 48

Page 38: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Natural domain SMT Model-construction satisfiability calculus (MCSAT)

NLSAT

(Dejan Jovanović, Leonardo De Moura)MCSAT for non-linear arithmetic

Partial projection: Fourier-Motzkin replaced by partial cylindricalalgebraic decomposition.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 38 / 48

Page 39: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Other topics

Contents

DPLL and CDCL

DPLL(T)

Natural domain SMTExponential behaviour of DPLL(T)Abstract CDCL (ACDCL)Model-construction satisfiability calculus (MCSAT)

Other topics

Conclusion

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 39 / 48

Page 40: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Other topics

Optimization

Basic SMT: “no solution” vs “here is a solution”

Optimization: here is a solution maximizing f

▶ binary search▶ local optimization:

∧li =⇒ ϕ linear programming in

∧li

and even done for nonlinear arithmetic!

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 40 / 48

Page 41: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Other topics

Quantifier elimination

F with quantifiers ≡ G without quantifiers

Use SMT to prune out / simplify inside quantifier elimination(do not generate partial solutions already covered etc.)

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 41 / 48

Page 42: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Other topics

Formula simplification

F complicated ≡ G “simpler”

Use SMT to prune out / simplify

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 42 / 48

Page 43: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Other topics

Craig interpolation

From F(x, y) =⇒ G(y, z) get

F(x, y) =⇒ I(y) =⇒ G(y, z)

I can be obtained by quantifier eliminationbut may be much simpler!

In fact often needs I “simple”.

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 43 / 48

Page 44: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Conclusion

Contents

DPLL and CDCL

DPLL(T)

Natural domain SMTExponential behaviour of DPLL(T)Abstract CDCL (ACDCL)Model-construction satisfiability calculus (MCSAT)

Other topics

Conclusion

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 44 / 48

Page 45: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Conclusion

Basic idea

▶ relax the problem▶ solve relaxed problem▶ if spurious solution, refine the problem

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 45 / 48

Page 46: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Conclusion

Nonexhaustive list of SMT-solvers

See also http://smtlib.cs.uiowa.edu/http://smtlib.cs.uiowa.edu/solvers.shtml

Free▶ Z3 (Microsoft Research) https://github.com/Z3Prover▶ Yices (SRI International) http://yices.csl.sri.com/▶ CVC4 http://cvc4.cs.nyu.edu/web/

Non-free▶ MathSAT (Fundazione Bruno Kessler)http://mathsat.fbk.eu/

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 46 / 48

Page 47: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Conclusion

VERIMAG

Joint research unit between▶ Université Grenoble-Alpes▶ Grenoble institute of technology (Grenoble-INP)▶ CNRS

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 47 / 48

Page 48: ASurveyofSatisfiabilityModuloTheory - unich.itSMT=SAT+theories SAT=saywhetheraformulaoverBooleansissatisfiable(andgivea modelifso) SMT=saywhetheraformulaoverBooleansandothertypesis

STATOR

Conclusion

Gratuitous advertisements

▶ (Static analysis)

▶ Improvements to SMT.

▶ Relaxation of nonlinear constraints.

▶ Polyhedra library (like E. Zaffanella)http://verasco.imag.fr/wiki/VPLhttps://github.com/VERIMAG-Polyhedra/VPL

▶ Assistant professor position open at VERIMAG (some conditionsapply, check with me)

▶ Ask me about our master scholarship and PhD program

David Monniaux (VERIMAG) A Survey of Satisfiability Modulo Theory 2017-02-10 48 / 48