introduction to satisfiability modulo...

197
Introduction to Satisfiability Modulo Theories Dejan Jovanović SRI International SAT/SMT/AR Summer School, Lisbon, 2016

Upload: others

Post on 10-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Introduction to Satisfiability Modulo Theories

Dejan Jovanović

SRI International

SAT/SMT/AR Summer School, Lisbon, 2016

Page 2: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 3: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 4: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theorieswhat we’re trying to solve

ProblemCheck if a given (quantifier-free) formula is satisfiable modulo theunion of background theories.

Example (QF_UFLRA)

(z = 1 ∨ z = 0) ∧ (x− y+ z = 1) ∧ (f(x) > f(y))

1 Linear real arithmetic (LRA).2 Uninterpreted functions (UF).3 Satisfiable with z 7→ 0, x 7→ 1, y 7→ 0, f(1) 7→ 1, f(0) 7→ 0

Page 5: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theorieswhat we’re trying to solve

ProblemCheck if a given (quantifier-free) formula is satisfiable modulo theunion of background theories.

Example (QF_UFLRA)

(z = 1 ∨ z = 0) ∧ (x− y+ z = 1) ∧ (f(x) > f(y))

1 Linear real arithmetic (LRA).

2 Uninterpreted functions (UF).3 Satisfiable with z 7→ 0, x 7→ 1, y 7→ 0, f(1) 7→ 1, f(0) 7→ 0

Page 6: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theorieswhat we’re trying to solve

ProblemCheck if a given (quantifier-free) formula is satisfiable modulo theunion of background theories.

Example (QF_UFLRA)

(z = 1 ∨ z = 0) ∧ (x− y+ z = 1) ∧ (f(x) > f(y))

1 Linear real arithmetic (LRA).2 Uninterpreted functions (UF).

3 Satisfiable with z 7→ 0, x 7→ 1, y 7→ 0, f(1) 7→ 1, f(0) 7→ 0

Page 7: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theorieswhat we’re trying to solve

ProblemCheck if a given (quantifier-free) formula is satisfiable modulo theunion of background theories.

Example (QF_UFLRA)

(z = 1 ∨ z = 0) ∧ (x− y+ z = 1) ∧ (f(x) > f(y))

1 Linear real arithmetic (LRA).2 Uninterpreted functions (UF).3 Satisfiable with z 7→ 0, x 7→ 1, y 7→ 0, f(1) 7→ 1, f(0) 7→ 0

Page 8: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

ExampleSchedule n jobs, each composed ofm consecutive tasks, onmmachines.

Schedule in 8 time slots.

di,j Machine 1 Machine 2Job 1 2 1Job 2 3 1Job 3 2 3

(t1,1 ≥ 0) ∧ (t1,2 ≥ t1,1 + 2) ∧ (t1,2 + 1 ≤ 8)

(t2,1 ≥ 0) ∧ (t2,2 ≥ t2,1 + 3) ∧ (t2,2 + 1 ≤ 8)

(t3,1 ≥ 0) ∧ (t3,2 ≥ t3,1 + 2) ∧ (t3,2 + 3 ≤ 8)

((t1,1 ≥ t2,1 + 3) ∨ (t2,1 ≥ t1,1 + 2))

((t1,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t1,1 + 2))

((t2,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t2,1 + 3))

((t1,2 ≥ t2,2 + 1) ∨ (t2,2 ≥ t1,2 + 1))

((t1,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t1,2 + 1))

((t2,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t2,2 + 1))

Example from [DMB11]

Page 9: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

ExampleSchedule n jobs, each composed ofm consecutive tasks, onmmachines.

Schedule in 8 time slots.

di,j Machine 1 Machine 2Job 1 2 1Job 2 3 1Job 3 2 3

(t1,1 ≥ 0) ∧ (t1,2 ≥ t1,1 + 2) ∧ (t1,2 + 1 ≤ 8)

(t2,1 ≥ 0) ∧ (t2,2 ≥ t2,1 + 3) ∧ (t2,2 + 1 ≤ 8)

(t3,1 ≥ 0) ∧ (t3,2 ≥ t3,1 + 2) ∧ (t3,2 + 3 ≤ 8)

((t1,1 ≥ t2,1 + 3) ∨ (t2,1 ≥ t1,1 + 2))

((t1,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t1,1 + 2))

((t2,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t2,1 + 3))

((t1,2 ≥ t2,2 + 1) ∨ (t2,2 ≥ t1,2 + 1))

((t1,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t1,2 + 1))

((t2,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t2,2 + 1))

Example from [DMB11]

Page 10: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

ExampleSchedule n jobs, each composed ofm consecutive tasks, onmmachines.

Schedule in 8 time slots.

di,j Machine 1 Machine 2Job 1 2 1Job 2 3 1Job 3 2 3

(t1,1 ≥ 0) ∧ (t1,2 ≥ t1,1 + 2) ∧ (t1,2 + 1 ≤ 8)

(t2,1 ≥ 0) ∧ (t2,2 ≥ t2,1 + 3) ∧ (t2,2 + 1 ≤ 8)

(t3,1 ≥ 0) ∧ (t3,2 ≥ t3,1 + 2) ∧ (t3,2 + 3 ≤ 8)

((t1,1 ≥ t2,1 + 3) ∨ (t2,1 ≥ t1,1 + 2))

((t1,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t1,1 + 2))

((t2,1 ≥ t3,1 + 2) ∨ (t3,1 ≥ t2,1 + 3))

((t1,2 ≥ t2,2 + 1) ∨ (t2,2 ≥ t1,2 + 1))

((t1,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t1,2 + 1))

((t2,2 ≥ t3,2 + 3) ∨ (t3,2 ≥ t2,2 + 1))

Example from [DMB11]

Run SMT solver (QF_IDL)

t1,1 7→ 5, t1,2 7→ 7

t2,1 7→ 2, t2,2 7→ 6

t3,1 7→ 0, t3,2 7→ 3

Page 11: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

0

20

40

60

- 20

0

20

39 000

39 500

40 000

Tx1(t) = −3.2484 + 270.7t + 433.12t2 − 324.83999t3

Ty1(t) = 15.1592 + 108.28t + 121.2736t2 − 649.67999t3

Tz1(t) = 38980.8 + 5414t − 21656t2 + 32484t3

Tx2(t) = 1.0828 − 135.35t + 234.9676t22 + 3248.4t3

Ty2(t) = 18.40759 − 230.6364t − 121.2736t2 − 649.67999t3

Tz2(t) = 40280.15999 − 10828t + 24061.9816t2 − 32484t3

D = 5 H = 1000 0 ≤ t ≤1

20

|Tz1(t) − Tz2(t)| ≤ H (Tx1(t) − Tx2(t))2+ (Ty1(t) − Ty2(t))

2 ≤ D2

Example from [NM12]

Page 12: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

0

20

40

60

- 20

0

20

39 000

39 500

40 000

Tx1(t) = −3.2484 + 270.7t + 433.12t2 − 324.83999t3

Ty1(t) = 15.1592 + 108.28t + 121.2736t2 − 649.67999t3

Tz1(t) = 38980.8 + 5414t − 21656t2 + 32484t3

Tx2(t) = 1.0828 − 135.35t + 234.9676t22 + 3248.4t3

Ty2(t) = 18.40759 − 230.6364t − 121.2736t2 − 649.67999t3

Tz2(t) = 40280.15999 − 10828t + 24061.9816t2 − 32484t3

D = 5 H = 1000 0 ≤ t ≤1

20

|Tz1(t) − Tz2(t)| ≤ H (Tx1(t) − Tx2(t))2+ (Ty1(t) − Ty2(t))

2 ≤ D2

Example from [NM12]

Run SMT solver (QF_NRA)

t 7→ 319

16384≈ 0.019470215

Page 13: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

Examplevoid swap(int* a, int* b) {*a = *a + *b;*b = *a - *b;*a = *a - *b;

}

Check if the swap is correct:Heap: array BV32 7→ BV32Update heap line by lineCheck if correct

Incorrect: aliasing

h1 = store(h0, a, h0[a] +32 h0[b])h2 = store(h1, b, h1[a]−32 h1[b])h3 = store(h2, a, h2[a]−32 h2[b])¬(h3[a] = h0[b] ∧ h3[b] = h0[a])

Page 14: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

Examplevoid swap(int* a, int* b) {*a = *a + *b;*b = *a - *b;*a = *a - *b;

}

Check if the swap is correct:Heap: array BV32 7→ BV32Update heap line by lineCheck if correct

Incorrect: aliasing

h1 = store(h0, a, h0[a] +32 h0[b])h2 = store(h1, b, h1[a]−32 h1[b])h3 = store(h2, a, h2[a]−32 h2[b])¬(h3[a] = h0[b] ∧ h3[b] = h0[a])

Page 15: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmany applications

Examplevoid swap(int* a, int* b) {*a = *a + *b;*b = *a - *b;*a = *a - *b;

}

Check if the swap is correct:Heap: array BV32 7→ BV32Update heap line by lineCheck if correctIncorrect: aliasing

h1 = store(h0, a, h0[a] +32 h0[b])h2 = store(h1, b, h1[a]−32 h1[b])h3 = store(h2, a, h2[a]−32 h2[b])¬(h3[a] = h0[b] ∧ h3[b] = h0[a])

Run SMT solver (QF_ABV)

a 7→ 0, b 7→ 0

h0[0] 7→ 1, h1[0] 7→ 2

h2[0] 7→ 0, h3[0] 7→ 0

Page 16: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmodeling and solving

ModelingDepending on the problem domain, select a fitting theory.Consider expressivity vs solving complexity.

SolvingGet an SMT solver that supports the theory.Hope for the best.

Page 17: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriescommon theories of interest

Uninterpreted Functions (QF_UF)Simplest first-order theory, with equality, applications ofuninterpreted functions, and variables of uninterpreted sorts.

Reflexivity: x = xSymmetry: x = y ⇒ y = xTransitivity: x = y ∧ y = z ⇒ x = zCongruence: x = y ⇒ f(x) = f(y)

Example

f(f(f(x))) = x f(f(f(f(f(x))))) = x f(x) ̸= x

Page 18: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriescommon theories of interest

Theory of Arrays [McC93]Operates over sorts array, index, element and function symbols

_[_] : array× index 7→ elementstore : array× index× element 7→ array .

Read-Over-Write-1: store(a, i, e)[i] = eRead-Over-Write-2: i ̸= j ⇒ store(a, i, e)[j] = a[j]Extensionality: a ̸= b ⇒ ∃i : a[i] ̸= b[i]

Example

store(store(a, i, a[j]), j, a[i]) = store(store(a, j, a[i]), i, a[j])

Page 19: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriescommon theories of interest

ArithmeticArithmetic constraints (inequalities, equalities) over arithmetic (realor integer) variables.

Difference logic (QF_RDL, QF_IDL):

x− y ≤ 1 , x− y > 10 .

Linear arithmetic (QF_LRA, QF_LIA):

2x− 3y+ 4z ≤ 5 .

Non-linear arithmetic (QF_NRA, QF_NIA):

x2 + 3xy+ y2 > 0 .

Page 20: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriescommon theories of interest

Bitvectors (QF_BV)Operates over fixed-size bit-vectors, with bit-vector operations:

concatenation a ◦ b, extraction a[i : j]bit-wise operators∼a, a|b, a&b, …shifts a ≪ k, b ≫ k (logical, arithmetic)arithmetic a+ b, a− b, a ∗ b, a/b, …predicates=,<,≤, … (signed and unsigned)

Semantics similar to programming languages.

Example (a is 32-bits)

(∼a & (a+ 1)) >u a

Page 21: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriessome other interesting theories

Some other theoriesFloating point [BDG+14, ZWR14]Inductive data-types [BST07]Strings and regular expressions [LRT+14, KGG+09]Quantifiers [DMB07, RTG+13]Differential Equations [GKC13]...

Page 22: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Satisfiability Modulo Theoriesmore information

Books and chapters [BSST09, BM07, KS08]

OnlineSMT-LIB at http://smtlib.cs.uiowa.eduSMT-COMP at http://smtcomp.sourceforge.net

Page 23: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 24: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

SMT Problemhow to solve it?

Check T-satisfiability of a T-formula F

1 Convert to DNF

F ⇔D∨

i=1

(Li1 ∧ Li2 ∧ · · · ∧ Lini) .

2 If any of disjuncts is T-satisfiable, return SAT, else UNSAT.

Theory solver/Decision procedure for TProcedure to decide satisfiability of a conjunction of T-literals.

Page 25: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

SMT Problemhow to solve it?

Check T-satisfiability of a T-formula F1 Convert to DNF

F ⇔D∨

i=1

(Li1 ∧ Li2 ∧ · · · ∧ Lini) .

2 If any of disjuncts is T-satisfiable, return SAT, else UNSAT.

Theory solver/Decision procedure for TProcedure to decide satisfiability of a conjunction of T-literals.

Page 26: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

SMT Problemhow to solve it?

Check T-satisfiability of a T-formula F1 Convert to DNF

F ⇔D∨

i=1

(Li1 ∧ Li2 ∧ · · · ∧ Lini) .

2 If any of disjuncts is T-satisfiable, return SAT, else UNSAT.

Theory solver/Decision procedure for TProcedure to decide satisfiability of a conjunction of T-literals.

Page 27: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

SMT Problemhow to solve it?

Check T-satisfiability of a T-formula F1 Convert to DNF

F ⇔D∨

i=1

(Li1 ∧ Li2 ∧ · · · ∧ Lini) .

2 If any of disjuncts is T-satisfiable, return SAT, else UNSAT.

Theory solver/Decision procedure for TProcedure to decide satisfiability of a conjunction of T-literals.

Page 28: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

SMT Problemsat solver instead of dnf?

Use a SAT solverInstead of DNF: Apply a SAT solver.Check the literals selected by the SAT solver.If not T-satisfiable, add a blocking clause.

Page 29: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y

(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solver

ViewTheory

Page 30: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬ B1

( B2 ∨ B3 )

( B4 ∨ B5 )

( B6 ∨ B7 )

¬ B8

( B8 ∨ ¬ B2 ∨ ¬ B4 )

Check with SAT solver

ViewBoolean

Page 31: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬ B1

( B2 ∨ B3 )

( B4 ∨ B5 )

( B6 ∨ B7 )

¬ B8

( B8 ∨ ¬ B2 ∨ ¬ B4 )

Check with SAT solver

ViewBoolean

Page 32: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬ B1

( B2 ∨ B3 )

( B4 ∨ B5 )

( B6 ∨ B7 )

¬ B8

( B8 ∨ ¬ B2 ∨ ¬ B4 )

Check with SAT solverJ ¬ B1 , ¬ B8 , ¬ B3 , B2 , ¬ B5 , B4 , ¬ B7 , B6 K

ViewBoolean

Page 33: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y

(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solverJ ¬a = b, ¬x = y, ¬x = b, x = a, ¬y = b, y = a, ¬z = b, z = a K

ViewTheory

Page 34: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y

(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solverJ ¬a = b, ¬x = y, ¬x = b, x = a, ¬y = b, y = a, ¬z = b, z = a K

ViewTheory

Check with T-solverx = a ∧ y = a ⇒ x = y

Page 35: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solverJ ¬a = b, ¬x = y, ¬x = b, x = a, ¬y = b, y = a, ¬z = b, z = a K

ViewTheory

BlockAdd clause

Page 36: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬ B1

( B2 ∨ B3 )

( B4 ∨ B5 )

( B6 ∨ B7 )

¬ B8

( B8 ∨ ¬ B2 ∨ ¬ B4 )

Check with SAT solver

ViewBoolean

Page 37: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬ B1

( B2 ∨ B3 )

( B4 ∨ B5 )

( B6 ∨ B7 )

¬ B8

( B8 ∨ ¬ B2 ∨ ¬ B4 )

Check with SAT solverJ ¬ B1 , ¬ B8 , ¬ B3 , B2 , ¬ B4 , B5 , ¬ B7 , B6 K

ViewBoolean

Page 38: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solverJ ¬a = b, ¬x = y, ¬x = b, x = a, ¬y = a, y = b, ¬z = b, z = a K

ViewTheory

Page 39: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTexample

¬a = b(x = a ∨ x = b)(y = a ∨ y = b)(z = a ∨ z = b)

¬x = y(x = y ∨ ¬x = a ∨ ¬y = a)

Check with SAT solverJ ¬a = b, ¬x = y, ¬x = b, x = a, ¬y = a, y = b, ¬z = b, z = a K

ViewTheory

Check with T-solverSatisfiable

a, x, z 7→ c1b, y 7→ c2

Page 40: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTdiscussion

PropertiesSAT and T-solver only communicate via existing literals.Number of possible conflicts finite⇒ termination.Reuse the improvements in SAT solving.SAT solver is “blind” and can get lost :(.

Integrate closely with the SAT solver: DPLL(T) [DMR02, NOT05]Incremental: Check T-satisfiability along the SAT solver.Backtrack: Backtrack with SAT solver and keep context.

Propagation: If existing literals are implied tell SAT solverConflict: Small conflict explanations.

Page 41: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Very Lazy SMTdiscussion

PropertiesSAT and T-solver only communicate via existing literals.Number of possible conflicts finite⇒ termination.Reuse the improvements in SAT solving.SAT solver is “blind” and can get lost :(.

Integrate closely with the SAT solver: DPLL(T) [DMR02, NOT05]Incremental: Check T-satisfiability along the SAT solver.Backtrack: Backtrack with SAT solver and keep context.

Propagation: If existing literals are implied tell SAT solverConflict: Small conflict explanations.

Page 42: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworktypical architecture

SAT Solver

CDCL

Arithmetic

Bit-Vectors

UninterpretedFunctions

Core

Theory Literals Explanations

Page 43: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworktypical architecture

SAT Solver

CDCL

Arithmetic

Bit-Vectors

UninterpretedFunctions

Core

Theory Literals Explanations

SAT SolverStandard “off-the shelf” SAT solverBuild Booleanmodel and notify theories

Page 44: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworktypical architecture

SAT Solver

CDCL

Arithmetic

Bit-Vectors

UninterpretedFunctions

Core

Theory Literals ExplanationsTheory Decision ProceduresCheck conjunctions of literalsIncrementalBacktrackableProducing explanations

Page 45: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworktypical architecture

SAT Solver

CDCL

Arithmetic

Bit-Vectors

UninterpretedFunctions

Core

Theory Literals Explanations

Combination FrameworkEnsure modular reasoning is correct

Page 46: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 47: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 48: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 49: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 50: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

And so on...Exponential enumeration of paths.

Page 51: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

a0<a1 a1<a2 a2<a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 52: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T) Frameworkgreat but not perfect

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

a0<a1 a1<a2 a2<a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Feature/FlawCan only use existing literals!

Page 53: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 54: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionsthe theory

Literals are of the form x = y, x ̸= y, x = f(x, f(y, z)).Can be decided in O(n log(n)) based on congruence closure.Efficient theory propagation for equalities.Can generate:

small explanations [DNS05],minimal explanations [NO07],smallest explanations NP-hard [FFHP].

Typically the core of the SMT solver and used in other theories.

Page 55: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 56: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 57: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 58: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 59: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 60: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 61: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 62: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 63: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 64: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:

1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 65: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)

2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 66: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)

2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 67: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)

2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 68: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)

2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 69: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)2 f(f(x, y), y) = z

3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 70: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Uninterpreted Functionscongruence closure

ExampleJ f(x, y) = x, h(y) = g(y), f(f(x, y), y) = z, g(x) ̸= g(z) K

Conflict:1 g(x) ̸= g(z)2 f(f(x, y), y) = z3 f(x, y) = x

f(f(x,y),y)

f(x,y)

x y z

h(x) g(x) g(z)

Page 71: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicthe theory

Literals are of the form x− y ◃▹ k, where◃▹∈ {≤, <,=, ̸=, >,≥},x and y are arithmetic variables (integer or real),k is a constant (integer or real).

We can rewrite x− y = k to (x− y ≤ k) ∧ (x− y ≥ k).In integers, we can rewrite x− y < k to x− y ≤ k− 1.In reals, we can rewrite x− y < k to x− y ≤ k− δ.Can assume: all literals of the form x− y ≤ k.

Page 72: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicthe theory

Any solution to a set of literals can be shifted:if v is a satisfying assignment, so is v′(x) = v(x) + k.

We can use this to also process simple bounds x ≤ k:introduce fresh variable z (for zero),rewrite each x ≤ k to x− z ≤ k,given a solution v, shift it so that v(z) = 0.

If we allow (dis)equalities as literals, then:in reals, satisfiability is polynomial;in integers, satisfiability is NP-hard.

Page 73: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

0

Page 74: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

Page 75: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

Page 76: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

3

Page 77: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

-6 3

Page 78: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

-6 3

Page 79: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

-6 3

Page 80: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Difference Logicfrom literals to graph

Example J x ≤ 1, x− y ≤ 2, y− z ≤ 3, z− x ≤ −6 KConstruct a graph from literals.Check if there is a negative path.

Theoremliterals unsatisfiable⇔∃ negative path.

Conflict:(x− y ≤ 2), (y− z ≤ 3), (z− x ≤ −6).

x y

z

01

2

-6 3

Page 81: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticthe theory

Language:Atoms are of the form a1x1 + · · · anxn ≤ b.We can rewrite t = b to (t ≤ b) ∧ (t ≥ b).In integers, we can rewrite t < b to t ≤ b− 1.In reals, we can rewrite t < b to t ≤ b− δ.

Variant of simplex designed for DPLL(T) [DDM06]:IncrementalCheap backtrackingCan do theory propagationCan generate minimal explanationsWorst case exponential (fast in practice)

Page 82: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Rewrite each∑

aixi ≤ b to s ≤ bwith s =∑

aixi.

We get tableau of equations + simple bounds on variables.Tableau is fixed.Bounds can be asserted and retracted.

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Page 83: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.Keep an assignment v of all variables:

v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 84: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.

Keep an assignment v of all variables:v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 85: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.

Keep an assignment v of all variables:v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 86: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.

Keep an assignment v of all variables:v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 87: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.Keep an assignment v of all variables:

v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 88: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Variables can be basic and non-basic in the tableau.Keep an assignment v of all variables:

v satisfies the tableau,v satisfies bounds on the non-basic variables.

Initially v(x) = 0 and−∞ ≤ x ≤ +∞.

Page 89: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Case 1:v satisfies bound on the basic variables too.Satisfiable, v is the model!

Page 90: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Case 2:v doesn’t satisfy bound on the basic variables si, andall xj’s that si depends on are at their bounds (can’t fix).Unsatisfiable, the row is the explanation.

Page 91: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmetictableau

Tableaus1 = a1,1 · x1 + · · ·+ a1,i · xj + · · ·+ a1,n · xn...si = ai,1 · x1 + · · ·+ ai,i · xj + · · ·+ ai,n · xn...

sm = am,1 · x1 + · · ·+ am,i · xj + · · ·+ am,n · xn

Bounds−∞ ≤ x1 ≤ u1

l2 ≤ x2 ≤ +∞...

li ≤ si ≤ uilj ≤ xj ≤ uj

Case 3:v doesn’t satisfy bound on the basic variables si, andexists xj’s that si depends on, with slack available.Pivot, update, and continue.

Page 92: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

J 2y− x− 2 ≤ 0, −2y− x+ 4 ≤ 0 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ +∞−∞ ≤ s2 ≤ +∞

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 93: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ +∞−∞ ≤ s2 ≤ +∞

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 94: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ +∞−∞ ≤ s2 ≤ +∞

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 95: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ +∞

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 96: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ +∞

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 97: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

Page 98: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

s2 is inconsistent

There is slack in y.Pivot s2 and y.Update s2 value.Update basics.

Page 99: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

s2 is inconsistentThere is slack in y.

Pivot s2 and y.Update s2 value.Update basics.

Page 100: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 K

Tableaus1 = 2y− xs2 = −2y− x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

s2 is inconsistentThere is slack in y.Pivot s2 and y.

Update s2 value.Update basics.

Page 101: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

s2 is inconsistentThere is slack in y.Pivot s2 and y.

Update s2 value.Update basics.

Page 102: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ 0

s2 is inconsistentThere is slack in y.Pivot s2 and y.Update s2 value.

Update basics.

Page 103: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ −4

s2 is inconsistentThere is slack in y.Pivot s2 and y.Update s2 value.

Update basics.

Page 104: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 0

s1 7→ 0

s2 7→ −4

s2 is inconsistentThere is slack in y.Pivot s2 and y.Update s2 value.Update basics.

Page 105: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s2 is inconsistentThere is slack in y.Pivot s2 and y.Update s2 value.Update basics.

Page 106: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s2 is inconsistentThere is slack in y.Pivot s2 and y.Update s2 value.Update basics.

s1 is inconsistent

There is slack in x.Pivot s1 and x.Update s1 value.Update basics.

Page 107: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s1 is inconsistentThere is slack in x.

Pivot s1 and x.Update s1 value.Update basics.

Page 108: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

s1 = −s2 − 2x

y = −1

2s2 −

1

2x

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.

Update s1 value.Update basics.

Page 109: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.

Update s1 value.Update basics.

Page 110: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 4

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.Update s1 value.

Update basics.

Page 111: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 2

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.Update s1 value.

Update basics.

Page 112: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 0

y 7→ 2

s1 7→ 2

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.Update s1 value.Update basics.

Page 113: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 1

y 7→ 3

2s1 7→ 2

s2 7→ −4

s1 is inconsistentThere is slack in x.Pivot s1 and x.Update s1 value.Update basics.

Page 114: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticexample

1 1 2 3 4 5 6

1

1

2

3

4

J s1 ≤ 2, s2 ≤ −4 KTableau

x = −1

2s1 −

1

2s2

y =1

4s1 −

1

4s2

Bounds−∞ ≤ x ≤ +∞−∞ ≤ y ≤ +∞−∞ ≤ s1 ≤ 2

−∞ ≤ s2 ≤ − 4

Assignment

x 7→ 1

y 7→ 3

2s1 7→ 2

s2 7→ −4

Page 115: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticintegers

Classic NP-complete problem [Pap81].Admits quantifier elimination [Coo72].Common approach:

Simplex + Branch-And-Bound [DDM06, Gri12, Kin14]Use Simplex as if variables were real.If UNSAT in reals, then UNSAT in integers too.If SAT and solution is integral, then SAT (lucky).If non-integral solution v(x), then refine:

Branch-and-Bound lemmas: (x ≤ ⌊v(x)⌋) ∨ (x ≥ ⌈v(x)⌉).Cutting plane lemmas: new implied inequality refuting v.

Additionally solve integer equalities.

Sad, but not guaranteed to terminate.

Alternatives [JdM13, BSW15] not yet mature.

Page 116: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticintegers

Classic NP-complete problem [Pap81].Admits quantifier elimination [Coo72].Common approach:

Simplex + Branch-And-Bound [DDM06, Gri12, Kin14]Use Simplex as if variables were real.If UNSAT in reals, then UNSAT in integers too.If SAT and solution is integral, then SAT (lucky).If non-integral solution v(x), then refine:

Branch-and-Bound lemmas: (x ≤ ⌊v(x)⌋) ∨ (x ≥ ⌈v(x)⌉).Cutting plane lemmas: new implied inequality refuting v.

Additionally solve integer equalities.Sad, but not guaranteed to terminate.

Alternatives [JdM13, BSW15] not yet mature.

Page 117: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Arithmeticintegers

Classic NP-complete problem [Pap81].Admits quantifier elimination [Coo72].Common approach:

Simplex + Branch-And-Bound [DDM06, Gri12, Kin14]Use Simplex as if variables were real.If UNSAT in reals, then UNSAT in integers too.If SAT and solution is integral, then SAT (lucky).If non-integral solution v(x), then refine:

Branch-and-Bound lemmas: (x ≤ ⌊v(x)⌋) ∨ (x ≥ ⌈v(x)⌉).Cutting plane lemmas: new implied inequality refuting v.

Additionally solve integer equalities.Sad, but not guaranteed to terminate.

Alternatives [JdM13, BSW15] not yet mature.

Page 118: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Arraysthe theory

∀a, i, e : store(a, i, e)[i] = e∀a, i, j, e : i ̸= j ⇒ store(a, i, e)[j] = a[j]

∀a, b : a ̸= b ⇒ ∃i : a[i] ̸= b[i]

Common approach:UF + lemmas on demand [BB09, DMB09].Use UF as if store and _[_]were uninterpreted.If UNSAT in UF, then UNSAT in arrays too.If SAT and solution respects array axioms, then SAT (lucky).If not, then refine by instantiating violated axioms.

Page 119: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Bit-Vectorsthe theory

Common approach:1 Heavy preprocessing2 Encode into SAT (bit-blasting)3 Run a SAT solver

Alternatives [HBJ+14, ZWR16] not yet mature.

Page 120: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Bit-Vectorsbit-blasting

xi

yi

ci

XOR

XOR si

AND

AND

OR ci+1

Translation to CNFEach node a new variablesXOR introduces 4 clausesAND introduces 3 clausesOR introduces 3 clauses17 new clauses5 new variables

Page 121: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Bit-Vectorsbit-blasting

xi

yi

ci

XOR

XOR si

AND

AND

OR ci+1

Translation to CNFEach node a new variablesXOR introduces 4 clausesAND introduces 3 clausesOR introduces 3 clauses17 new clauses5 new variables

Bit-Blasting Addition/Multiplicationx[32] + y[32] 544 new clauses, 160 new

variablesx[32] × y[32] 10016 new clauses, 3008 new

variables

Page 122: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 123: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T)architecture

SAT Solver

CDCL

Arithmetic

Bit-Vectors

UninterpretedFunctions

Core

Theory Literals Explanations

Page 124: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T)pros and cons

GoodSimple interfaceOnly conjunctions of constraints

What can be improved?Simple interface can be restrictiveArbitrary conjunctions of constraints

Page 125: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T)pros and cons

GoodSimple interfaceOnly conjunctions of constraints

What can be improved?Simple interface can be restrictiveArbitrary conjunctions of constraints

Page 126: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPLL(T)simple interface issues

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

a0<a1 a1<a2 a2<a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 127: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

DPPL(T)simple interface issues

How to fix this?Extensions of DPLL(T) can add new literals [BNOT06].Magic needed to discover these literals [BDdM08, HAMM14].More pragmatic approach would be desirable.

Rethink the Architecture!Why is SAT solver special?Why the restriction on the interface?Let’s dig deeper into how SAT solvers work.

Page 128: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Boolean Satisfiabilityhistory

xn ∨ · · · ∨ x1 ∨ ym ∨ · · · ∨ y1

Resolution procedure by Davis, Putnam [DP60]Search procedure by Davis, Logemann, Loveland [DLL62]

Resolution (DP)Find a proofSaturationExponential

Search (DLL)Find amodelSearch and backtrackingExponential

Page 129: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Boolean Satisfiabilitymodern

Marques-Silva, Sakallah[SS97] GRASP: A new search algorithm for satisfiabiliy

Moskewicz, Madigan, Zhao, Zhang, Malik[MMZ+01] CHAFF: Engineering an efficient SAT solver

Conflict-Directed Clause LearningUse the search to guide resolutionUse resolution to guide the search

S

earch

Resolve

CDCL

Page 130: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Boolean Satisfiabilitycdcl mechanics

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , x, . . . , y, . . . , z, . . .K .

Unit ReasoningReason about unit constraints

(x ∨ y ∨ z ∨ w) .

Explain ConflictsExplain conflicts using clausal reasons

(x ∨ y ∨ z) .

Page 131: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmetic

Linear Arithmetica1x1 + · · ·+ anxn ≥ b a1x1 + · · ·+ anxn = b

DPLL(T): SimplexAmodel builder for a conjunction of linear constraints.

Search for a modelEscape conflicts through pivotingBuilt for the DPLL(T) framework

[DDM06] A fast linear-arithmetic solver for DPLL(T)

Page 132: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmetic

Linear Arithmetica1x1 + · · ·+ anxn ≥ b a1x1 + · · ·+ anxn = b

Fourier-Motzkin Resolution2x+ 3y− z ≥ −1

6x+ 9y− 3z ≥ −3

−3x− 2y+ 4z ≥ 2

−6x− 4y+ 8z ≥ 4

5y+ 5z ≥ 1

Feels like Boolean resolution (elimination).Behaves like Boolean resolution (exponential).

Page 133: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmetic

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , C1, C2, . . . , x 7→ 1/2, . . . , y 7→ 1/2, . . . , z 7→ −1, . . .K .

Unit ReasoningReason about unit constraints

C1 ≡ (x+ y+ z+ w ≥ 0) C2 ≡ (x+ y+ z− w > 0) .

Explain ConflictsExplain conflicts using valid clausal reasons

(C1 ∨ C2 ∨ x+ y+ z > 0) .

Page 134: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JK

Explanation C1 ∧ C2 ⇒ x ̸= 0.5

Page 135: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2K

Explanation C1 ∧ C2 ⇒ x ̸= 0.5

Page 136: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5K

Explanation C1 ∧ C2 ⇒ x ̸= 0.5

Page 137: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5K

Explanation C1 ∧ C2 ⇒ x ̸= 0.5

Unit Constraint Reasoning

2y− x− 2 < 0 ⇒ (y < 1.25)

−2y− x+ 4 < 0 ⇒ (y > 1.75)

Page 138: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5KExplanation C1 ∧ C2 ⇒ x ̸= 0.5

Page 139: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5KExplanation C1 ∧ C2 ⇒

Page 140: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5KExplanation C1 ∧ C2 ⇒

Fourier-Motzkin

2y− x− 2 < 0 −2y− x+ 4 < 0

−2x+ 2 < 0

Page 141: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5KExplanation C1 ∧ C2 ⇒ x > 1

Fourier-Motzkin

2y− x− 2 < 0 −2y− x+ 4 < 0

−2x+ 2 < 0

Page 142: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x 7→ 0.5KExplanation C1 ∨ C2 ∨ (x > 1)

Page 143: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2KExplanation C1 ∨ C2 ∨ (x > 1)

Page 144: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x > 1KExplanation C1 ∨ C2 ∨ (x > 1)

Page 145: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x > 1, x 7→ 2KExplanation C1 ∨ C2 ∨ (x > 1)

Page 146: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x > 1, x 7→ 2, y 7→ 1.5KExplanation C1 ∨ C2 ∨ (x > 1)

Page 147: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x > 1, x 7→ 2, y 7→ 1.5KExplanation C1 ∨ C2 ∨ (x > 1)

Page 148: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticexample

-1 1 2 3 4 5 6

-1

1

2

3

4

C1︷ ︸︸ ︷2y− x− 2 < 0 ∧

C2︷ ︸︸ ︷−2y− x+ 4 < 0

JC1, C2, x > 1, x 7→ 2, y 7→ 1.5KExplanation C1 ∨ C2 ∨ (x > 1)

Page 149: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticcomparison to dpll(t)

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 150: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticcomparison to dpll(t)

a 0<b

0

a 1<b 1b

0 <a1

b1<a

2

a1<c

1

c 0<a

1

c 1<a 2

a0<c0

a 2<b 2 b

2 <a3

a2 <c2

c 2<a

3

a0>a3

a0<a1 a1<a2 a2<a3

Example (Diamonds)

a0 > an ∧n−1∧k=0

((ak < bk ∧ bk < ak+1) ∨ (ak < ck ∧ ck < ak+1))

Page 151: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticcomparison to dpll(t)

mcsat cvc4 z3 mathsat5 yicesset solved time (s) solved time (s) solved time (s) solved time (s) solved time (s)clocksynchro (36) 36 123.11 36 1166.55 36 1828.74 36 1732.59 36 1093.80DTPScheduling (91) 91 31.33 91 72.92 91 100.55 89 1980.96 91 926.22miplib (42) 8 97.16 27 3359.40 23 3307.92 19 5447.46 23 466.44sal (107) 107 12.68 107 13.46 107 6.37 107 7.99 107 2.45sc (144) 144 1655.06 144 1389.72 144 954.42 144 880.27 144 401.64spiderbenchmarks (42) 42 2.38 42 2.47 42 1.66 42 1.22 42 0.44TM (25) 25 1125.21 25 82.12 25 51.64 25 1142.98 25 55.32ttastartup (72) 70 4443.72 72 1305.93 72 1647.94 72 2607.49 72 1218.68uart (73) 73 5244.70 73 1439.89 73 1379.90 73 1481.86 73 679.54

596 12735.35 617 8832.46 613 9279.14 607 15282.82 613 4844.53

Page 152: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Linear Real Arithmeticcomparison to dpll(t)

DPLL(T) Simplex (CVC4)Total Physical Source Lines of Code (SLOC) = 22,597Development Effort Estimate, Person-Years (Person-Months) = 5.28 (63.38)(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))

Schedule Estimate, Years (Months) = 1.01 (12.10)(Basic COCOMO model, Months = 2.5 * (person-months**0.38))

Estimated Average Number of Developers (Effort/Schedule) = 5.24Total Estimated Cost to Develop = $ 713,502(average salary = $56,286/year, overhead = 2.40).

MCSAT Fourier-Motzkin (CVC4)Total Physical Source Lines of Code (SLOC) = 1,966Development Effort Estimate, Person-Years (Person-Months) = 0.41 (4.88)(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))

Schedule Estimate, Years (Months) = 0.38 (4.57)(Basic COCOMO model, Months = 2.5 * (person-months**0.38))

Estimated Average Number of Developers (Effort/Schedule) = 1.07Total Estimated Cost to Develop = $ 54,942(average salary = $56,286/year, overhead = 2.40).

Generated using David A. Wheeler’s SLOCCount.

Page 153: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Arithmetic

f(⃗y, x) = am · xdm + am−1 · xdm−1 + · · ·+ a1 · xd1 + a0

f is in Z[⃗y, x], ai are in Z[⃗y]

Examples

f(x, y) = (x2 − 1)y2 + (x+ 1)y− 1 ∈ Z[x, y]g(x) = 16x3 − 8x2 + x+ 16 ∈ Z[x]

Polynomial Constraints

f(x, y) > 0 ∧ g(x) < 0

Page 154: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Arithmetichistory

Tarski [Tar48]Quantifier elimination

Decidable, non-elementary Collins [Col75]Cylindrical Algebraic Decomposition

Doubly-exponential

Page 155: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticcomplexity

PSPACE

∃R

NP

Canny [Can88], Grigor’ev [Gri88]

Page 156: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticcylindrical algebraic decomposition

p1 > 0 ∨ (p2 = 0 ∧ p3 < 0) p1, p2, p3 ∈ Z[x1, . . . , xn]

Projection (Saturation)Project polynomials using a projection P

{p1, p2, p3} 7→ {p1, p2, p3, p4, . . . , pn} .

Lifting (Model construction)For each variable xk

1 Isolate roots of pi(α, xk).2 Choose a cell C and assign xk 7→ αk ∈ C, continue.3 If no more cells, backtrack.

Page 157: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmetic

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , C1, C2, . . . , x 7→ √

2/2, . . .K .

Unit ReasoningReason about unit constraints

C1 ≡ (x2 + y2 < 1) C2 ≡ (xy > 1) .

Explain ConflictsExplain conflicts using valid clausal reasons

(C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1) .

Page 158: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmetic

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , C1, C2, . . . , x 7→ √

2/2, . . .K .

Unit ReasoningReason about unit constraints

C1 ≡ (x2 + y2 < 1) C2 ≡ (xy > 1) .

Explain ConflictsExplain conflicts using valid clausal reasons

(C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1) .

Page 159: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

x3 − 2x2 + 1 > 0

− 3x3 + 8x2 − 4x > 0

Page 160: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0

− 3x3 + 8x2 − 4x > 0

Page 161: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0

− 3x3 + 8x2 − 4x > 0

Page 162: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0

− 3x3 + 8x2 − 4x > 0

Page 163: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0 − 3x3 + 8x2 − 4x > 0

Page 164: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0 − 3x3 + 8x2 − 4x > 0

Page 165: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticunit constraints

-1 1 2 3

- 2

-1

1

2

3

4

5

x3 − 2x2 + 1 > 0 − 3x3 + 8x2 − 4x > 0

Page 166: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmetic

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , C1, C2, . . . , x 7→ √

2/2, . . .K .

Unit ReasoningReason about unit constraints

C1 ≡ (x2 + y2 < 1) C2 ≡ (xy > 1) .

Explain ConflictsExplain conflicts using valid clausal reasons

(C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1) .

Page 167: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmetic

Model ConstructionBuild partial model by assigning variables to valuesJ. . . , C1, C2, . . . , x 7→ √

2/2, . . .K .

Unit ReasoningReason about unit constraints

C1 ≡ (x2 + y2 < 1) C2 ≡ (xy > 1) .

Explain ConflictsExplain conflicts using valid clausal reasons

(C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1) .

Page 168: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JK

Explanation C1 ∧ C2 ⇒ x ̸=√2/2

Page 169: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2K

Explanation C1 ∧ C2 ⇒ x ̸=√2/2

Page 170: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒ x ̸=√2/2

Page 171: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒ x ̸=√2/2

Unit Constraint Reasoning

x2 + y2 < 1 ⇒ −√3/2 < y <

√3/2

−2y− x+ 4 < 0 ⇒ y >√2

Page 172: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒ x ̸=√2/2

Page 173: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒

Page 174: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒

CAD Projection

P = {x,−4 + 4x2, 1− x2 + x4}

Page 175: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒

CAD Projection

P = {x,−4 + 4x2, 1− x2 + x4}

Page 176: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∧ C2 ⇒ x ≤ 0 ∨ x ≥ 1

Page 177: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x 7→ √2/2K

Explanation C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1

Page 178: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2KExplanation C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1

Page 179: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x ≥ 1KExplanation C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1

Page 180: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticexample

- 2 -1 0 1 2

C1︷ ︸︸ ︷x2 + y2 < 1 ∧

C2︷ ︸︸ ︷xy > 1

JC1, C2, x ≥ 1, x 7→ 3/2KExplanation C1 ∨ C2 ∨ x ≤ 0 ∨ x ≥ 1

Page 181: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Non-Linear Real Arithmeticsmt-comp 2015

0.001

0.01

0.1

1

10

100

1000

10000

100000

1e+06

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

cum

ula

tive t

ime (

s)

problems solved

Yices2Z3

SMT-RATraSATCVC3

CVC4aCVC4b

Page 182: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Model-Based Procedures

Linear Real ArithmeticGeneralizing DPLL to Richer Logics [MKS09]Conflict Resolution [KTV09]Natural Domain SMT [Cot10]

Linear Integer ArithmeticCutting to the Chase: Solving Linear Integer Arithmetic [JdM13]

Non-Linear Real ArithmeticSolving Non-Linear Arithmetic [JDM12, Jov12]

General FrameworkModel-Constructing Satisfiability Calculus [DMJ13, JBdM13]

Page 183: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

MCSATsimple architecture

BCP FM

UF

Trail

Each plugins reasons about their domain:1 Track when a constraint becomes unit [MMZ+01].2 Unit constraints imply feasible sets of individual variables.3 Propagate any constraints/variables whose value is implied.4 Explain any unit conflicts with clausal explanations.5 When asked, decide unassigned variable to feasible value.

Page 184: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

MCSATimplementations

NRA + NIA + UF in Yices2 Link

QF_NRA in Z3 Link

QF_UFLRA in CVC4 Link

Page 185: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Outline

1 Introduction

2 DPLL(T) Framework

3 Decision Procedures

4 MCSAT Framework

5 Finish

Page 186: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Research Challengestodo

Extensible and simple SMT solver ala MiniSAT.Integer arithmetic: a complete and practical procedure.Bit-vectors: other than bit-blasting [HBJ+14, ZWR16].Proofs: can we have themwithout toomuch trouble.Quantifiers: push-button, with model generation.MCSAT: arrays, bit-vectors.

Page 187: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Homeworkfor the practical

Download and install the following solversCVC4 Link

MathSAT5 Link

Yices2 Link

Z3 Link

THE END

Page 188: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

Homeworkfor the practical

Download and install the following solversCVC4 Link

MathSAT5 Link

Yices2 Link

Z3 Link

THE END

Page 189: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References I

[BB09] Robert Brummayer and Armin Biere.Lemmas on demand for the extensional theory of arrays.Journal on Satisfiability, Boolean Modeling and Computation, 6:165–201, 2009.

[BDdM08] Nikolaj Bjørner, Bruno Dutertre, and Leonardo de Moura.Accelerating lemma learning using joins-dppl (join).Proceedings of short papers at LPAR, 8, 2008.

[BDG+14] Martin Brain, Vijay D’Silva, Alberto Griggio, Leopold Haller, and Daniel Kroening.Deciding floating-point logic with abstract conflict driven clause learning.Formal Methods in System Design, 45(2):213–245, 2014.

[BM07] Aaron R Bradley and Zohar Manna.The calculus of computation: decision procedures with applications to verification.Springer Science & Business Media, 2007.

[BNOT06] Clark Barrett, Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli.Splitting on demand in sat modulo theories.In Logic for Programming, Artificial Intelligence, and Reasoning, pages 512–526,2006.

[BSST09] Clark W Barrett, Roberto Sebastiani, Sanjit A Seshia, and Cesare Tinelli.Satisfiability modulo theories.Handbook of satisfiability, 185:825–885, 2009.

Page 190: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References II

[BST07] Clark Barrett, Igor Shikanian, and Cesare Tinelli.An abstract decision procedure for satisfiability in the theory of recursive datatypes.Electronic Notes in Theoretical Computer Science, 174(8):23–37, 2007.

[BSW15] Martin Bromberger, Thomas Sturm, and Christoph Weidenbach.Linear integer arithmetic revisited.In International Conference on Automated Deduction, pages 623–637. Springer,2015.

[Can88] John Canny.Some algebraic and geometric computations in pspace.In Proceedings of the twentieth annual ACM symposium on Theory of computing,pages 460–467, 1988.

[Col75] George E Collins.Quantifier elimination for real closed fields by cylindrical algebraicdecomposition.In Automata Theory and Formal Languages, pages 134–183, 1975.

[Coo72] David C Cooper.Theorem proving in arithmetic without multiplication.Machine Intelligence, 7(91-99):300, 1972.

Page 191: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References III

[Cot10] Scott Cotton.Natural domain SMT: A preliminary assessment.Formal Modeling and Analysis of Timed Systems, pages 77–91, 2010.

[DDM06] Bruno Dutertre and Leonardo De Moura.A fast linear-arithmetic solver for DPLL(T).In International Conference on Computer Aided Verification, pages 81–94.Springer, 2006.

[DLL62] Martin Davis, George Logemann, and Donald Loveland.A machine program for theorem-proving.Communications of the ACM, 5(7):394–397, 1962.

[DMB07] Leonardo De Moura and Nikolaj Bjørner.Efficient e-matching for smt solvers.In International Conference on Automated Deduction, pages 183–198. Springer,2007.

[DMB09] Leonardo De Moura and Nikolaj Bjørner.Generalized, efficient array decision procedures.In Formal Methods in Computer-Aided Design, pages 45–52. IEEE, 2009.

[DMB11] Leonardo De Moura and Nikolaj Bjørner.Satisfiability modulo theories: introduction and applications.Communications of the ACM, 54(9):69–77, 2011.

Page 192: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References IV[DMJ13] Leonardo De Moura and Dejan Jovanović.

A model-constructing satisfiability calculus.In Verification, Model Checking, and Abstract Interpretation, pages 1–12, 2013.

[DMR02] Leonardo De Moura and Harald Rueß.Lemmas on demand for satisfiability solvers.2002.

[DNS05] David Detlefs, Greg Nelson, and James B Saxe.Simplify: a theorem prover for program checking.Journal of the ACM (JACM), 52(3):365–473, 2005.

[DP60] Martin Davis and Hilary Putnam.A computing procedure for quantification theory.Journal of the ACM (JACM), 7(3):201–215, 1960.

[FFHP] Andreas Fellner, Pascal Fontaine, Georg Hofferek, and BrunoWoltzenlogel Paleo.Np-completeness of small conflict set generation for congruence closure.

[GKC13] Sicun Gao, Soonho Kong, and Edmund M Clarke.Satisfiability modulo ODEs.In Formal Methods in Computer-Aided Design (FMCAD), 2013, pages 105–112. IEEE,2013.

[Gri88] D Yu Grigor’ev.Complexity of deciding tarski algebra.Journal of symbolic Computation, 5(1):65–108, 1988.

Page 193: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References V

[Gri12] Alberto Griggio.A practical approach to satisfiability modulo linear integer arithmetic.Journal on Satisfiability, Boolean Modeling and Computation, 8:1–27, 2012.

[HAMM14] Julien Henry, Mihail Asavoae, David Monniaux, and Claire Maïza.How to compute worst-case execution time by optimization modulo theory anda clever encoding of program semantics.In Proceedings of the 2014 SIGPLAN/SIGBED conference on Languages, compilersand tools for embedded systems, pages 43–52. ACM, 2014.

[HBJ+14] Liana Hadarean, Kshitij Bansal, Dejan Jovanović, Clark Barrett, and CesareTinelli.A tale of two solvers: Eager and lazy approaches to bit-vectors.In International Conference on Computer Aided Verification, pages 680–695.Springer, 2014.

[JBdM13] Dejan Jovanović, Clark Barrett, and Leonardo de Moura.The design and implementation of themodel constructing satisfiability calculus.Formal Methods in Computer-Aided Design, 2013.

[JDM12] Dejan Jovanović and Leonardo De Moura.Solving non-linear arithmetic.In International Joint Conference on Automated Reasoning, pages 339–354.Springer, 2012.

Page 194: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References VI

[JdM13] Dejan Jovanović and Leonardo de Moura.Cutting to the chase.Journal of automated reasoning, 51(1):79–108, 2013.

[Jov12] Dejan Jovanović.SMT Beyond DPLL(T): A New Approach to Theory Solvers and Theory Combination.PhD thesis, Courant Institute of Mathematical Sciences New York, 2012.

[KGG+09] Adam Kiezun, Vijay Ganesh, Philip J Guo, Pieter Hooimeijer, and Michael D Ernst.HAMPI: a solver for string constraints.In Proceedings of the eighteenth international symposium on Software testing andanalysis, pages 105–116. ACM, 2009.

[Kin14] Tim King.Effective Algorithms for the Satisfiability of Quantifier-Free Formulas Over LinearReal and Integer Arithmetic.PhD thesis, Courant Institute of Mathematical Sciences New York, 2014.

[KS08] Daniel Kroening and Ofer Strichman.Decision procedures: an algorithmic point of view.Springer Science & Business Media, 2008.

[KTV09] Konstantin Korovin, Nestan Tsiskaridze, and Andrei Voronkov.Conflict resolution.In Principles and Practice of Constraint Programming, pages 509–523. 2009.

Page 195: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References VII[LRT+14] Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters.

A DPLL(T) theory solver for a theory of strings and regular expressions.In International Conference on Computer Aided Verification, pages 646–662.Springer, 2014.

[McC93] John McCarthy.Towards a mathematical science of computation.In Program Verification, pages 35–56. Springer, 1993.

[MKS09] Kenneth L McMillan, Andreas Kuehlmann, and Mooly Sagiv.Generalizing DPLL to richer logics.In Computer Aided Verification, pages 462–476, 2009.

[MMZ+01] MatthewWMoskewicz, Conor F Madigan, Ying Zhao, Lintao Zhang, and SharadMalik.Chaff: Engineering an efficient sat solver.In Proceedings of the 38th annual Design Automation Conference, pages 530–535.ACM, 2001.

[NM12] Anthony Narkawicz and César A Munoz.Formal verification of conflict detection algorithms for arbitrary trajectories.Reliable Computing, 17(2):209–237, 2012.

[NO07] Robert Nieuwenhuis and Albert Oliveras.Fast congruence closure and extensions.Information and Computation, 205(4):557–580, 2007.

Page 196: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References VIII

[NOT05] Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli.Abstract dpll and abstract dpll modulo theories.In International Conference on Logic for Programming Artificial Intelligence andReasoning, pages 36–50. Springer, 2005.

[Pap81] Christos H Papadimitriou.On the complexity of integer programming.Journal of the ACM (JACM), 28(4):765–768, 1981.

[RTG+13] Andrew Reynolds, Cesare Tinelli, Amit Goel, Sava Krstić, Morgan Deters, andClark Barrett.Quantifier instantiation techniques for finite model finding in smt.In International Conference on Automated Deduction, pages 377–391. Springer,2013.

[SS97] João P Marques Silva and Karem A Sakallah.Grasp—a new search algorithm for satisfiability.In Proceedings of the 1996 IEEE/ACM international conference on Computer-aideddesign, pages 220–227. IEEE Computer Society, 1997.

[Tar48] Alfred Tarski.A decision method for elementary algebra and geometry.1948.

Page 197: Introduction to Satisfiability Modulo Theoriesssa-school-2016.it.uu.se/wp-content/uploads/2016/06/jovanovic.pdf · SatisfiabilityModuloTheories whatwe’retryingtosolve Problem Checkifagiven(quantifier-free)formulaissatisfiablemodulothe

References IX

[ZWR14] Aleksandar Zeljić, Christoph MWintersteiger, and Philipp Rümmer.Approximations for model construction.In International Joint Conference on Automated Reasoning, pages 344–359.Springer, 2014.

[ZWR16] Aleksandar Zeljić, Christoph MWintersteiger, and Philipp Rümmer.Deciding bit-vector formulas with mcsat.In International Conference on Theory and Applications of Satisfiability Testing,pages 249–266. Springer, 2016.