Top Banner
A Model-Constructing Satisfiability Calculus SAT 2014 Dejan Jovanović SRI International Leonardo de Moura Microsoft Research
90

A Model-Constructing Satisfiability Calculus

Jan 05, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Model-Constructing Satisfiability Calculus

A Model-Constructing Satisfiability Calculus SAT 2014

Dejan Jovanović

SRI International

Leonardo de Moura

Microsoft Research

Page 2: A Model-Constructing Satisfiability Calculus

The RISE of Model-Driven Techniques

Page 3: A Model-Constructing Satisfiability Calculus

Search x Saturation

Proof-finding Model-finding

Page 4: A Model-Constructing Satisfiability Calculus

Two procedures

Resolution DPLL

Proof-finder Model-finder

Saturation Search

Page 5: A Model-Constructing Satisfiability Calculus

CDCL: Conflict Driven Clause Learning

Resolution

DPLL

Proof

Model

Page 6: A Model-Constructing Satisfiability Calculus

Linear Arithmetic

Fourier-Motzkin Simplex

Proof-finder Model-finder

Saturation Search

Page 7: A Model-Constructing Satisfiability Calculus

Fourier-Motzkin

Very similar to Resolution

Exponential time and space

𝑑1 ≀ π‘Žπ‘₯, 𝑏π‘₯ ≀ 𝑑2

𝑏𝑑1 ≀ π‘Žπ‘π‘₯, π‘Žπ‘π‘₯ ≀ π‘Žπ‘‘2

𝑏𝑑1 ≀ π‘Žπ‘‘2

Page 8: A Model-Constructing Satisfiability Calculus

Polynomial Constraints

π‘₯2 βˆ’ 4π‘₯ + 𝑦2 βˆ’ 𝑦 + 8 < 1

π‘₯𝑦 βˆ’ 2π‘₯ βˆ’ 2𝑦 + 4 > 1

AKA Existential Theory of the Reals

R

Page 9: A Model-Constructing Satisfiability Calculus

CAD β€œBig Picture”

1. Project/Saturate set of polynomials

2. Lift/Search: Incrementally build assignment 𝑣: π‘₯π‘˜ β†’ π›Όπ‘˜

Isolate roots of polynomials 𝑓𝑖(𝜢, π‘₯)

Select a feasible cell 𝐢, and assign π‘₯π‘˜ some π›Όπ‘˜ ∈ 𝐢

If there is no feasible cell, then backtrack

Page 10: A Model-Constructing Satisfiability Calculus

NLSAT: Model-Based Search

Start the Search before Saturate/Project

We saturate on demand

Model guides the saturation

Mo

dels

Pro

ofs

Page 11: A Model-Constructing Satisfiability Calculus

Experimental Results (1) OUR ENGINE

Page 12: A Model-Constructing Satisfiability Calculus

Experimental Results (2)

OUR ENGINE

Page 13: A Model-Constructing Satisfiability Calculus

Other examples (for linear arithmetic)

Fourier-Motzkin

Generalizing DPLL to richer logics

[McMillan et al 2009]

Conflict Resolution

[Korovin et al 2009]

X

Page 14: A Model-Constructing Satisfiability Calculus

Other examples

Array Theory by

Axiom Instantiation

Lemmas on Demand

For Theory of Array

[Brummayer-Biere 2009]

βˆ€π‘Ž, 𝑖, 𝑣: π‘Ž 𝑖 ≔ 𝑣 𝑖 = 𝑣

βˆ€π‘Ž, 𝑖, 𝑗, 𝑣: 𝑖 = 𝑗 ∨ π‘Ž 𝑖 ≔ 𝑣 𝑗 = π‘Ž[𝑗]

X

Page 15: A Model-Constructing Satisfiability Calculus

Saturation: successful instances

Polynomial time procedures

Gaussian Elimination

Congruence Closure

Page 16: A Model-Constructing Satisfiability Calculus

MCSat

Model-Driven SMT

Lift ideas from CDCL to SMT

Generalize ideas found in model-driven approaches

Easier to implement

Model construction is explicit

Page 17: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

Page 18: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Propagations

Page 19: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Propagations

π‘₯ β‰₯ 1

Page 20: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Propagations

π‘₯ β‰₯ 1 𝑦 β‰₯ 1

Page 21: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Boolean Decisions

π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1

Page 22: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Semantic Decisions

π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ β†’ 2

Page 23: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Conflict

π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ β†’ 2

We can’t find a value for 𝑦 s.t. 4 + 𝑦2 ≀ 1

Page 24: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Conflict

π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ β†’ 2

We can’t find a value for 𝑦 s.t. 4 + 𝑦2 ≀ 1

Learning that Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯= 2) is not productive

Page 25: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1

Learning that Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯= 2) is not productive

Β¬(π‘₯ = 2)

Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯ = 2)

Page 26: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1

Learning that Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯= 2) is not productive

Β¬(π‘₯ = 2)

Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯ = 2)

π‘₯ β†’ 3

Page 27: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1

Learning that Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯= 2) is not productive

Β¬(π‘₯ = 2)

Β¬ π‘₯2 + 𝑦2 ≀ 1 ∨ Β¬(π‘₯ = 2)

π‘₯ β†’ 3

β€œSame” Conflict

We can’t find a value for 𝑦 s.t. 9 + 𝑦2 ≀ 1

Page 28: A Model-Constructing Satisfiability Calculus

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2

Conflict

π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ β†’ 2

𝑦

π‘₯

π‘₯2 + 𝑦2 ≀ 1 π‘₯ β†’ 2

βˆ’1 ≀ π‘₯, π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1

Page 29: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1

Page 30: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1

Conflict

Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯ ≀ 1)

Page 31: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1

Learned by resolution

Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯2 + 𝑦2 ≀ 1)

Page 32: A Model-Constructing Satisfiability Calculus

MCSat

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 Β¬(π‘₯2 + 𝑦2 ≀ 1)

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯2 + 𝑦2 ≀ 1)

Page 33: A Model-Constructing Satisfiability Calculus

MCSat: FM Example

βˆ’π‘₯ + 𝑧 + 1 ≀ 0, π‘₯ βˆ’ 𝑦 ≀ 0 𝑧 β†’ 0, 𝑦 β†’ 0

𝑧 + 1 ≀ π‘₯, π‘₯ ≀ 𝑦

≑

1 ≀ π‘₯, π‘₯ ≀ 0

βˆ’π‘₯ + 𝑧 + 1 ≀ 0 𝑧 β†’ 0 𝑦 β†’ 0 π‘₯ βˆ’ 𝑦 ≀ 0

We can’t find a value of π‘₯

Page 34: A Model-Constructing Satisfiability Calculus

MCSat: FM Example

βˆ’π‘₯ + 𝑧 + 1 ≀ 0, π‘₯ βˆ’ 𝑦 ≀ 0 𝑧 β†’ 0, 𝑦 β†’ 0

βˆƒπ‘₯:βˆ’π‘₯ + 𝑧 + 1 ≀ 0 ∧ π‘₯ βˆ’ 𝑦 ≀ 0

𝑧 + 1 βˆ’ 𝑦 ≀ 0

βˆ’π‘₯ + 𝑧 + 1 ≀ 0 𝑧 β†’ 0 𝑦 β†’ 0 π‘₯ βˆ’ 𝑦 ≀ 0

Β¬ βˆ’π‘₯ + 𝑧 + 1 ≀ 0 ∨ Β¬ π‘₯ βˆ’ 𝑦 ≀ 0 ∨ 𝑧 + 1 βˆ’ 𝑦 ≀ 0

Fourier-Motzkin

Page 35: A Model-Constructing Satisfiability Calculus

MCSat: FM Example

βˆ’π‘₯ + 𝑧 + 1 ≀ 0 𝑧 β†’ 0 𝑧 + 1 βˆ’ 𝑦 ≀ 0 π‘₯ βˆ’ 𝑦 ≀ 0

Β¬ βˆ’π‘₯ + 𝑧 + 1 ≀ 0 ∨ Β¬ π‘₯ βˆ’ 𝑦 ≀ 0 ∨ 𝑧 + 1 βˆ’ 𝑦 ≀ 0

Page 36: A Model-Constructing Satisfiability Calculus

MCSat: FM Example

βˆ’π‘₯ + 𝑧 + 1 ≀ 0 𝑧 β†’ 0 𝑧 + 1 βˆ’ 𝑦 ≀ 0 π‘₯ βˆ’ 𝑦 ≀ 0

Β¬ βˆ’π‘₯ + 𝑧 + 1 ≀ 0 ∨ Β¬ π‘₯ βˆ’ 𝑦 ≀ 0 ∨ 𝑧 + 1 βˆ’ 𝑦 ≀ 0

𝑦 β†’ 1

βˆ’π‘₯ + 𝑧 + 1 ≀ 0, π‘₯ βˆ’ 𝑦 ≀ 0 𝑧 β†’ 0, 𝑦 β†’ 1

𝑧 + 1 ≀ π‘₯, π‘₯ ≀ 𝑦

≑

1 ≀ π‘₯, π‘₯ ≀ 1

Page 37: A Model-Constructing Satisfiability Calculus

MCSat: FM Example

βˆ’π‘₯ + 𝑧 + 1 ≀ 0 𝑧 β†’ 0 𝑧 + 1 βˆ’ 𝑦 ≀ 0 π‘₯ βˆ’ 𝑦 ≀ 0

Β¬ βˆ’π‘₯ + 𝑧 + 1 ≀ 0 ∨ Β¬ π‘₯ βˆ’ 𝑦 ≀ 0 ∨ 𝑧 + 1 βˆ’ 𝑦 ≀ 0

𝑦 β†’ 1

βˆ’π‘₯ + 𝑧 + 1 ≀ 0, π‘₯ βˆ’ 𝑦 ≀ 0 𝑧 β†’ 0, 𝑦 β†’ 1

𝑧 + 1 ≀ π‘₯, π‘₯ ≀ 𝑦

≑

1 ≀ π‘₯, π‘₯ ≀ 1

π‘₯ β†’ 1

Page 38: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

Every theory that admits quantifier elimination has a finite basis (given a fixed assignment order)

𝐹[π‘₯, 𝑦1, … , π‘¦π‘š] 𝑦1 β†’ 𝛼1, … , π‘¦π‘š β†’ π›Όπ‘š

βˆƒπ‘₯: 𝐹[π‘₯, 𝑦1, … , π‘¦π‘š]

𝐢1[𝑦1, … , π‘¦π‘š] ∧ β‹―βˆ§ πΆπ‘˜[𝑦1, … , π‘¦π‘š]

¬𝐹 π‘₯, 𝑦1, … , π‘¦π‘š ∨ πΆπ‘˜[𝑦1, … , π‘¦π‘š]

Page 39: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

𝐹1[π‘₯1]

𝐹2[π‘₯1,π‘₯2]

𝐹𝑛[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1, π‘₯𝑛]

πΉπ‘›βˆ’1[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1]

…

Page 40: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

𝐹1[π‘₯1]

𝐹2[π‘₯1,π‘₯2]

𝐹𝑛[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1, π‘₯𝑛]

πΉπ‘›βˆ’1[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1]

…

Page 41: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

𝐹1[π‘₯1]

𝐹2[π‘₯1,π‘₯2]

𝐹𝑛[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1, π‘₯𝑛]

πΉπ‘›βˆ’1[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1]

…

Page 42: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

𝐹1[π‘₯1]

𝐹2[π‘₯1,π‘₯2]

𝐹𝑛[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1, π‘₯𝑛]

πΉπ‘›βˆ’1[π‘₯1,π‘₯2, … , π‘₯π‘›βˆ’1]

…

Page 43: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

Every β€œfinite” theory has a finite basis Example: Fixed size Bit-vectors

𝐹[π‘₯, 𝑦1, … , π‘¦π‘š] 𝑦1 β†’ 𝛼1, … , π‘¦π‘š β†’ π›Όπ‘š

¬𝐹 π‘₯, 𝑦1, … , π‘¦π‘š ∨ Β¬(𝑦1 = 𝛼1) ∨ β‹―βˆ¨ Β¬(π‘¦π‘š= π›Όπ‘š)

Page 44: A Model-Constructing Satisfiability Calculus

MCSat – Finite Basis

Theory of uninterpreted functions has a finite basis

Theory of arrays has a finite basis [Brummayer- Biere 2009]

In both cases the Finite Basis is essentially composed of equalities between existing terms.

Page 45: A Model-Constructing Satisfiability Calculus

MCSat: Uninterpreted Functions

π‘Ž = 𝑏 + 1, 𝑓 π‘Ž βˆ’ 1 < 𝑐, 𝑓 𝑏 > π‘Ž

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

Treat 𝑓(π‘˜) and 𝑓(𝑏) as variables Generalized variables

Page 46: A Model-Constructing Satisfiability Calculus

MCSat: Uninterpreted Functions

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

π‘˜ β†’ 0 𝑏 β†’ 0 𝑓(π‘˜) β†’ 0 𝑓(𝑏) β†’ 2

Conflict: 𝑓 π‘˜ and 𝑓 𝑏 must be equal

Β¬ π‘˜ = 𝑏 ∨ 𝑓 π‘˜ = 𝑓(𝑏)

Page 47: A Model-Constructing Satisfiability Calculus

MCSat: Uninterpreted Functions

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

π‘˜ β†’ 0 𝑏 β†’ 0 𝑓(π‘˜) β†’ 0

Β¬ π‘˜ = 𝑏 ∨ 𝑓 π‘˜ = 𝑓(𝑏)

π‘˜ = 𝑏

(Semantic) Propagation

Page 48: A Model-Constructing Satisfiability Calculus

MCSat: Uninterpreted Functions

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

π‘˜ β†’ 0 𝑏 β†’ 0 𝑓(π‘˜) β†’ 0

Β¬ π‘˜ = 𝑏 ∨ 𝑓 π‘˜ = 𝑓(𝑏)

π‘˜ = 𝑏 𝑓 π‘˜ = 𝑓(𝑏)

Page 49: A Model-Constructing Satisfiability Calculus

MCSat: Uninterpreted Functions

π‘Ž = 𝑏 + 1, 𝑓 π‘˜ < 𝑐, 𝑓 𝑏 > π‘Ž, π‘˜ = π‘Ž βˆ’ 1

π‘˜ β†’ 0 𝑏 β†’ 0 𝑓(π‘˜) β†’ 0

Β¬ π‘˜ = 𝑏 ∨ 𝑓 π‘˜ = 𝑓(𝑏)

π‘˜ = 𝑏 𝑓 π‘˜ = 𝑓(𝑏) 𝑓(𝑏) β†’ 0

Page 50: A Model-Constructing Satisfiability Calculus

MCSat: Termination

Propagations

Boolean Decisions

Semantic Decisions

Page 51: A Model-Constructing Satisfiability Calculus

MCSat

≻

Propagations

Boolean Decisions

Semantic Decisions

Page 52: A Model-Constructing Satisfiability Calculus

MCSat

≻

Propagations

Boolean Decisions

Semantic Decisions

Page 53: A Model-Constructing Satisfiability Calculus

MCSat

|πΉπ‘–π‘›π‘–π‘‘π‘’π΅π‘Žπ‘ π‘–π‘ |

…

Maximal Elements

…

Page 54: A Model-Constructing Satisfiability Calculus

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Conflict

Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯ ≀ 1)

Page 55: A Model-Constructing Satisfiability Calculus

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Conflict

Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯ ≀ 1)

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 Β¬(π‘₯2 + 𝑦2 ≀ 1)

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯2 + 𝑦2 ≀ 1)

Page 56: A Model-Constructing Satisfiability Calculus

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 π‘₯2 + 𝑦2 ≀ 1 π‘₯ ≀ 1

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Conflict

Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯ ≀ 1)

π‘₯ β‰₯ 2, Β¬π‘₯ β‰₯ 1 ∨ 𝑦 β‰₯ 1 , (π‘₯2 + 𝑦2 ≀ 1 ∨ π‘₯𝑦 > 1)

π‘₯ β‰₯ 2 π‘₯ β‰₯ 1 𝑦 β‰₯ 1 Β¬(π‘₯2 + 𝑦2 ≀ 1)

Β¬(π‘₯2 + 𝑦2 ≀ 1) ∨ π‘₯ ≀ 1 Β¬ π‘₯ β‰₯ 2 ∨ Β¬(π‘₯2 + 𝑦2 ≀ 1)

Page 57: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

Page 58: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

𝑝

Page 59: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

𝑝

Conflict (evaluates to false)

Page 60: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

𝑝

New clause

π‘₯ < 1 ∨ π‘₯ = 2

Page 61: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

𝑝

New clause

π‘₯ < 1 ∨ π‘₯ = 2

π‘₯ < 1

Page 62: A Model-Constructing Satisfiability Calculus

π‘₯ < 1 ∨ 𝑝, ¬𝑝 ∨ π‘₯ = 2

π‘₯ β†’ 1

MCSat

𝑝

New clause

π‘₯ < 1 ∨ π‘₯ = 2

π‘₯ < 1

Page 63: A Model-Constructing Satisfiability Calculus

MCSat: Architecture

Arithmetic

Boolean Lists

Arrays

Page 64: A Model-Constructing Satisfiability Calculus

MCSat prototype: 7k lines of code Deduction Rules

Boolean Resolution

Fourier-Motzkin

Equality Split

Ackermann expansion aka Congruence

Normalization

Page 65: A Model-Constructing Satisfiability Calculus

MCSat: preliminary results prototype: 7k lines of code

QF_LRA

Page 66: A Model-Constructing Satisfiability Calculus

MCSat: preliminary results prototype: 7k lines of code

QF_UFLRA and QF_UFLIA

Page 67: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

Given a CNF formula 𝐹 and a set of literals 𝑆

π‘β„Žπ‘’π‘π‘˜(𝐹, 𝑆)

Page 68: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

Given a CNF formula 𝐹 and a set of literals 𝑆

π‘β„Žπ‘’π‘π‘˜(𝐹, 𝑆)

Output:

SAT, assignment 𝑀 βŠ‡ 𝑆 satisfying 𝐹

UNSAT, 𝑙1, … , π‘™π‘˜ βŠ† 𝑆 s.t. 𝐹 β‡’ ¬𝑙1 ∨ β‹―βˆ¨ Β¬π‘™π‘˜

Page 69: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

Given a CNF formula 𝐹 and a set of literals 𝑆

π‘β„Žπ‘’π‘π‘˜(𝐹, 𝑆)

Output:

SAT, assignment 𝑀 βŠ‡ 𝑆 satisfying 𝐹

UNSAT, 𝑙1, … , π‘™π‘˜ βŠ† 𝑆 s.t. 𝐹 β‡’ ¬𝑙1 ∨ β‹―βˆ¨ Β¬π‘™π‘˜

Page 70: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

𝐹 ≑ 𝑝 ∨ π‘ž ∨ π‘Ÿ, ¬𝑝 ∨ π‘ž, 𝑝 ∨ π‘ž

π‘β„Žπ‘’π‘π‘˜(𝐹, {Β¬π‘ž, π‘Ÿ})

Page 71: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

𝐹 ≑ 𝑝 ∨ π‘ž ∨ π‘Ÿ, ¬𝑝 ∨ π‘ž, 𝑝 ∨ π‘ž

π‘β„Žπ‘’π‘π‘˜(𝐹, {Β¬π‘ž, π‘Ÿ})

UNSAT, {Β¬π‘ž}

Page 72: A Model-Constructing Satisfiability Calculus

Check Modulo Assignment

Many Applications:

UNSAT Core generation

MaxSAT

Interpolant generation

Introduced in MiniSAT

Implemented in many SMT solvers

Page 73: A Model-Constructing Satisfiability Calculus

Extending Check Modulo Assignment for MCSAT

𝐹 π‘₯ , 𝑦 𝑦 β†’ 𝑣

Page 74: A Model-Constructing Satisfiability Calculus

Extending Check Modulo Assignment for MCSAT

𝐹 π‘₯ , 𝑦 𝑦 β†’ 𝑣

SAT, π‘₯ β†’ 𝑀 , 𝐹 𝑀 , 𝑣 is true

Page 75: A Model-Constructing Satisfiability Calculus

Extending Check Modulo Assignment for MCSAT

𝐹 π‘₯ , 𝑦 𝑦 β†’ 𝑣

SAT, π‘₯ β†’ 𝑀 , 𝐹 𝑀 , 𝑣 is true

UNSAT, 𝑆[𝑦 ] s.t. 𝐹 π‘₯ , 𝑦 β‡’ 𝑆[𝑦 ], 𝑆[𝑣 ] is false

Page 76: A Model-Constructing Satisfiability Calculus

NLSAT/MCSAT

𝐹 π‘₯ , 𝑦

𝑦1 β†’ 𝑀1 π‘¦π‘˜ β†’ π‘€π‘˜ …

Page 77: A Model-Constructing Satisfiability Calculus

NLSAT/MCSAT

πΆβ„Žπ‘’π‘π‘˜(π‘₯2 + 𝑦2 < 1, 𝑦 β†’ βˆ’2 )

Page 78: A Model-Constructing Satisfiability Calculus

NLSAT/MCSAT

πΆβ„Žπ‘’π‘π‘˜(π‘₯2 + 𝑦2 < 1, 𝑦 β†’ βˆ’2 )

UNSAT, 𝑦 > βˆ’1

𝑦

π‘₯

Page 79: A Model-Constructing Satisfiability Calculus

No-good sampling

πΆβ„Žπ‘’π‘π‘˜ 𝐹 π‘₯ , 𝑦 , 𝑦 β†’ 𝛼1 = unsat 𝑆1 𝑦 , 𝐺1 = 𝑆1 𝑦 ,

𝛼2 ∈ 𝐺1, πΆβ„Žπ‘’π‘π‘˜ 𝐹 π‘₯ , 𝑦 , 𝑦 β†’ 𝛼2 = unsat 𝑆2 𝑦 , 𝐺2 = 𝐺1 ∧ 𝑆2 𝑦 ,

𝛼3 ∈ 𝐺2, πΆβ„Žπ‘’π‘π‘˜ 𝐹 π‘₯ , 𝑦 , 𝑦 β†’ 𝛼3 = unsat 𝑆3 𝑦 , 𝐺3 = 𝐺2 ∧ 𝑆3 𝑦 ,

…

𝛼𝑛 ∈ πΊπ‘›βˆ’1, πΆβ„Žπ‘’π‘π‘˜ 𝐹 π‘₯ , 𝑦 , 𝑦 β†’ 𝛼𝑛 = unsat 𝑆𝑛 𝑦 , 𝐺𝑛 = πΊπ‘›βˆ’1 ∧ 𝑆𝑛 𝑦 ,

…

Finite decomposition property:

The sequence is finite

𝐺𝑖 approximates

βˆƒπ‘₯ , 𝐹 π‘₯ , 𝑦

Page 80: A Model-Constructing Satisfiability Calculus

Computing Interpolants using Extended Check Modulo Assignment

Given: 𝐴 π‘₯ , 𝑦 ∧ 𝐡[𝑦 , 𝑧 ]

Ouput: 𝐼 𝑦 s.t.

𝐡[𝑦 , 𝑧 ] β‡’ 𝐼 𝑦 ,

𝐴 π‘₯ , 𝑦 ∧ 𝐼 𝑦 is unsat

Page 81: A Model-Constructing Satisfiability Calculus

Computing Interpolants using Extended Check Modulo Assignment

𝐼 𝑦 ∢= π‘‘π‘Ÿπ‘’π‘’

Loop

Solve 𝐴 π‘₯ , 𝑦 ∧ 𝐼 𝑦 If UNSAT return 𝐼 𝑦

Let solution be {π‘₯ β†’ 𝑀 , 𝑦 β†’ 𝑣 }

Check(𝐡[𝑦 , 𝑧 ], {𝑦 β†’ 𝑣 }) If SAT return SAT

𝐼 𝑦 := 𝐼 𝑦 ∧ 𝑆[𝑦 ]

Page 82: A Model-Constructing Satisfiability Calculus

Conclusion

Model-Based techniques are very promising

MCSat is a more faithful lift of CDCL than DPLL(T)

Prototypes:

NLSAT source code is available in Z3

http://z3.codeplex.com

MCSAT (Linear arithemetic + unintepreted functions)

https://github.com/dddejan/

New versions coming soon!

Page 83: A Model-Constructing Satisfiability Calculus

Extra Slides

Lazy SMT and DPLL(T)

Abstraction Refinement Procedure

Page 84: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4) p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

[Audemard et al - 2002], [Barrett et al - 2002], [de Moura et al - 2002]

Page 85: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

p1, p2, (p3 p4)

SAT Solver

Page 86: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

Page 87: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

Page 88: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

Theory Solver

Unsatisfiable

x 0, y = x + 1, y < 1

Page 89: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

Theory Solver

Unsatisfiable

x 0, y = x + 1, y < 1

New Lemma

p1p2p4

Page 90: A Model-Constructing Satisfiability Calculus

SAT + Theory Solvers: refinements

Incrementality

Efficient Backtracking

Efficient Lemma Generation

Theory propagation DPLL(T) [Ganzinger et all – 2004]