A Model-Constructing Satisfiability Calculus
Transcript of A Model-Constructing Satisfiability Calculus
A Model-Constructing Satisfiability Calculus SAT 2014
Dejan Jovanoviฤ
SRI International
Leonardo de Moura
Microsoft Research
Fourier-Motzkin
Very similar to Resolution
Exponential time and space
๐ก1 โค ๐๐ฅ, ๐๐ฅ โค ๐ก2
๐๐ก1 โค ๐๐๐ฅ, ๐๐๐ฅ โค ๐๐ก2
๐๐ก1 โค ๐๐ก2
Polynomial Constraints
๐ฅ2 โ 4๐ฅ + ๐ฆ2 โ ๐ฆ + 8 < 1
๐ฅ๐ฆ โ 2๐ฅ โ 2๐ฆ + 4 > 1
AKA Existential Theory of the Reals
R
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
NLSAT: Model-Based Search
Start the Search before Saturate/Project
We saturate on demand
Model guides the saturation
Mo
dels
Pro
ofs
Other examples (for linear arithmetic)
Fourier-Motzkin
Generalizing DPLL to richer logics
[McMillan et al 2009]
Conflict Resolution
[Korovin et al 2009]
X
Other examples
Array Theory by
Axiom Instantiation
Lemmas on Demand
For Theory of Array
[Brummayer-Biere 2009]
โ๐, ๐, ๐ฃ: ๐ ๐ โ ๐ฃ ๐ = ๐ฃ
โ๐, ๐, ๐, ๐ฃ: ๐ = ๐ โจ ๐ ๐ โ ๐ฃ ๐ = ๐[๐]
X
MCSat
Model-Driven SMT
Lift ideas from CDCL to SMT
Generalize ideas found in model-driven approaches
Easier to implement
Model construction is explicit
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2
Propagations
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2
Propagations
๐ฅ โฅ 1
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2
Propagations
๐ฅ โฅ 1 ๐ฆ โฅ 1
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2
Boolean Decisions
๐ฅ โฅ 1 ๐ฆ โฅ 1 ๐ฅ2 + ๐ฆ2 โค 1
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2
Semantic Decisions
๐ฅ โฅ 1 ๐ฆ โฅ 1 ๐ฅ2 + ๐ฆ2 โค 1 ๐ฅ โ 2
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
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
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)
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
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
๐ฅ โฅ 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
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2 ๐ฅ โฅ 1 ๐ฆ โฅ 1 ๐ฅ2 + ๐ฆ2 โค 1 ๐ฅ โค 1
ยฌ(๐ฅ2 + ๐ฆ2 โค 1) โจ ๐ฅ โค 1
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2 ๐ฅ โฅ 1 ๐ฆ โฅ 1 ๐ฅ2 + ๐ฆ2 โค 1 ๐ฅ โค 1
ยฌ(๐ฅ2 + ๐ฆ2 โค 1) โจ ๐ฅ โค 1
Conflict
ยฌ ๐ฅ โฅ 2 โจ ยฌ(๐ฅ โค 1)
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)
MCSat
๐ฅ โฅ 2, ยฌ๐ฅ โฅ 1 โจ ๐ฆ โฅ 1 , (๐ฅ2 + ๐ฆ2 โค 1 โจ ๐ฅ๐ฆ > 1)
๐ฅ โฅ 2 ๐ฅ โฅ 1 ๐ฆ โฅ 1 ยฌ(๐ฅ2 + ๐ฆ2 โค 1)
ยฌ(๐ฅ2 + ๐ฆ2 โค 1) โจ ๐ฅ โค 1 ยฌ ๐ฅ โฅ 2 โจ ยฌ(๐ฅ2 + ๐ฆ2 โค 1)
MCSat: FM Example
โ๐ฅ + ๐ง + 1 โค 0, ๐ฅ โ ๐ฆ โค 0 ๐ง โ 0, ๐ฆ โ 0
๐ง + 1 โค ๐ฅ, ๐ฅ โค ๐ฆ
โก
1 โค ๐ฅ, ๐ฅ โค 0
โ๐ฅ + ๐ง + 1 โค 0 ๐ง โ 0 ๐ฆ โ 0 ๐ฅ โ ๐ฆ โค 0
We canโt find a value of ๐ฅ
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
MCSat: FM Example
โ๐ฅ + ๐ง + 1 โค 0 ๐ง โ 0 ๐ง + 1 โ ๐ฆ โค 0 ๐ฅ โ ๐ฆ โค 0
ยฌ โ๐ฅ + ๐ง + 1 โค 0 โจ ยฌ ๐ฅ โ ๐ฆ โค 0 โจ ๐ง + 1 โ ๐ฆ โค 0
MCSat: FM Example
โ๐ฅ + ๐ง + 1 โค 0 ๐ง โ 0 ๐ง + 1 โ ๐ฆ โค 0 ๐ฅ โ ๐ฆ โค 0
ยฌ โ๐ฅ + ๐ง + 1 โค 0 โจ ยฌ ๐ฅ โ ๐ฆ โค 0 โจ ๐ง + 1 โ ๐ฆ โค 0
๐ฆ โ 1
โ๐ฅ + ๐ง + 1 โค 0, ๐ฅ โ ๐ฆ โค 0 ๐ง โ 0, ๐ฆ โ 1
๐ง + 1 โค ๐ฅ, ๐ฅ โค ๐ฆ
โก
1 โค ๐ฅ, ๐ฅ โค 1
MCSat: FM Example
โ๐ฅ + ๐ง + 1 โค 0 ๐ง โ 0 ๐ง + 1 โ ๐ฆ โค 0 ๐ฅ โ ๐ฆ โค 0
ยฌ โ๐ฅ + ๐ง + 1 โค 0 โจ ยฌ ๐ฅ โ ๐ฆ โค 0 โจ ๐ง + 1 โ ๐ฆ โค 0
๐ฆ โ 1
โ๐ฅ + ๐ง + 1 โค 0, ๐ฅ โ ๐ฆ โค 0 ๐ง โ 0, ๐ฆ โ 1
๐ง + 1 โค ๐ฅ, ๐ฅ โค ๐ฆ
โก
1 โค ๐ฅ, ๐ฅ โค 1
๐ฅ โ 1
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, โฆ , ๐ฆ๐]
MCSat โ Finite Basis
๐น1[๐ฅ1]
๐น2[๐ฅ1,๐ฅ2]
๐น๐[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1, ๐ฅ๐]
๐น๐โ1[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1]
โฆ
MCSat โ Finite Basis
๐น1[๐ฅ1]
๐น2[๐ฅ1,๐ฅ2]
๐น๐[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1, ๐ฅ๐]
๐น๐โ1[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1]
โฆ
MCSat โ Finite Basis
๐น1[๐ฅ1]
๐น2[๐ฅ1,๐ฅ2]
๐น๐[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1, ๐ฅ๐]
๐น๐โ1[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1]
โฆ
MCSat โ Finite Basis
๐น1[๐ฅ1]
๐น2[๐ฅ1,๐ฅ2]
๐น๐[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1, ๐ฅ๐]
๐น๐โ1[๐ฅ1,๐ฅ2, โฆ , ๐ฅ๐โ1]
โฆ
MCSat โ Finite Basis
Every โfiniteโ theory has a finite basis Example: Fixed size Bit-vectors
๐น[๐ฅ, ๐ฆ1, โฆ , ๐ฆ๐] ๐ฆ1 โ ๐ผ1, โฆ , ๐ฆ๐ โ ๐ผ๐
ยฌ๐น ๐ฅ, ๐ฆ1, โฆ , ๐ฆ๐ โจ ยฌ(๐ฆ1 = ๐ผ1) โจ โฏโจ ยฌ(๐ฆ๐= ๐ผ๐)
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.
MCSat: Uninterpreted Functions
๐ = ๐ + 1, ๐ ๐ โ 1 < ๐, ๐ ๐ > ๐
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
Treat ๐(๐) and ๐(๐) as variables Generalized variables
MCSat: Uninterpreted Functions
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
๐ โ 0 ๐ โ 0 ๐(๐) โ 0 ๐(๐) โ 2
Conflict: ๐ ๐ and ๐ ๐ must be equal
ยฌ ๐ = ๐ โจ ๐ ๐ = ๐(๐)
MCSat: Uninterpreted Functions
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
๐ โ 0 ๐ โ 0 ๐(๐) โ 0
ยฌ ๐ = ๐ โจ ๐ ๐ = ๐(๐)
๐ = ๐
(Semantic) Propagation
MCSat: Uninterpreted Functions
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
๐ โ 0 ๐ โ 0 ๐(๐) โ 0
ยฌ ๐ = ๐ โจ ๐ ๐ = ๐(๐)
๐ = ๐ ๐ ๐ = ๐(๐)
MCSat: Uninterpreted Functions
๐ = ๐ + 1, ๐ ๐ < ๐, ๐ ๐ > ๐, ๐ = ๐ โ 1
๐ โ 0 ๐ โ 0 ๐(๐) โ 0
ยฌ ๐ = ๐ โจ ๐ ๐ = ๐(๐)
๐ = ๐ ๐ ๐ = ๐(๐) ๐(๐) โ 0
๐ฅ โฅ 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 ๐ฅ โค 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)
๐ฅ โฅ 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)
๐ฅ < 1 โจ ๐, ยฌ๐ โจ ๐ฅ = 2
๐ฅ โ 1
MCSat
๐
New clause
๐ฅ < 1 โจ ๐ฅ = 2
๐ฅ < 1
๐ฅ < 1 โจ ๐, ยฌ๐ โจ ๐ฅ = 2
๐ฅ โ 1
MCSat
๐
New clause
๐ฅ < 1 โจ ๐ฅ = 2
๐ฅ < 1
MCSat prototype: 7k lines of code Deduction Rules
Boolean Resolution
Fourier-Motzkin
Equality Split
Ackermann expansion aka Congruence
Normalization
Check Modulo Assignment
Given a CNF formula ๐น and a set of literals ๐
๐โ๐๐๐(๐น, ๐)
Check Modulo Assignment
Given a CNF formula ๐น and a set of literals ๐
๐โ๐๐๐(๐น, ๐)
Output:
SAT, assignment ๐ โ ๐ satisfying ๐น
UNSAT, ๐1, โฆ , ๐๐ โ ๐ s.t. ๐น โ ยฌ๐1 โจ โฏโจ ยฌ๐๐
Check Modulo Assignment
Given a CNF formula ๐น and a set of literals ๐
๐โ๐๐๐(๐น, ๐)
Output:
SAT, assignment ๐ โ ๐ satisfying ๐น
UNSAT, ๐1, โฆ , ๐๐ โ ๐ s.t. ๐น โ ยฌ๐1 โจ โฏโจ ยฌ๐๐
Check Modulo Assignment
๐น โก ๐ โจ ๐ โจ ๐, ยฌ๐ โจ ๐, ๐ โจ ๐
๐โ๐๐๐(๐น, {ยฌ๐, ๐})
Check Modulo Assignment
๐น โก ๐ โจ ๐ โจ ๐, ยฌ๐ โจ ๐, ๐ โจ ๐
๐โ๐๐๐(๐น, {ยฌ๐, ๐})
UNSAT, {ยฌ๐}
Check Modulo Assignment
Many Applications:
UNSAT Core generation
MaxSAT
Interpolant generation
Introduced in MiniSAT
Implemented in many SMT solvers
Extending Check Modulo Assignment for MCSAT
๐น ๐ฅ , ๐ฆ ๐ฆ โ ๐ฃ
SAT, ๐ฅ โ ๐ค , ๐น ๐ค , ๐ฃ is true
Extending Check Modulo Assignment for MCSAT
๐น ๐ฅ , ๐ฆ ๐ฆ โ ๐ฃ
SAT, ๐ฅ โ ๐ค , ๐น ๐ค , ๐ฃ is true
UNSAT, ๐[๐ฆ ] s.t. ๐น ๐ฅ , ๐ฆ โ ๐[๐ฆ ], ๐[๐ฃ ] is false
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
โ๐ฅ , ๐น ๐ฅ , ๐ฆ
Computing Interpolants using Extended Check Modulo Assignment
Given: ๐ด ๐ฅ , ๐ฆ โง ๐ต[๐ฆ , ๐ง ]
Ouput: ๐ผ ๐ฆ s.t.
๐ต[๐ฆ , ๐ง ] โ ๐ผ ๐ฆ ,
๐ด ๐ฅ , ๐ฆ โง ๐ผ ๐ฆ is unsat
Computing Interpolants using Extended Check Modulo Assignment
๐ผ ๐ฆ โถ= ๐ก๐๐ข๐
Loop
Solve ๐ด ๐ฅ , ๐ฆ โง ๐ผ ๐ฆ If UNSAT return ๐ผ ๐ฆ
Let solution be {๐ฅ โ ๐ค , ๐ฆ โ ๐ฃ }
Check(๐ต[๐ฆ , ๐ง ], {๐ฆ โ ๐ฃ }) If SAT return SAT
๐ผ ๐ฆ := ๐ผ ๐ฆ โง ๐[๐ฆ ]
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!
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]
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
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
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
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
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