model-driven decision procedures for arithmetic synasc 2013
DESCRIPTION
Model-Driven Decision Procedures for Arithmetic SYNASC 2013. Leonardo de Moura Microsoft Research. Logic Engines as a Service. SAGE. SecGuru. Satisfiability. Solution/Model. s at, . unsat , P roof. Is execution path P feasible?. Is assertion X violated?. WI TNESS. SAGE. - PowerPoint PPT PresentationTRANSCRIPT
Model-Driven Decision Proceduresfor Arithmetic
SYNASC 2013
Leonardo de MouraMicrosoft Research
Logic Engines as a Service
ππππ ππ3SAGE
SecGuru
Satisfiability
sat,
unsat, Proof
Is execution path P feasible? Is assertion X violated?
SAGE
Is Formula F Satisfiable?
WITNESS
Solution/Model
The RISE of Model-Driven Techniques
Saturation x Search
Proof-finding Model-finding
Models
Proo
fsConflict
Resolution
SAT
CNF is a set (conjunction) set of clausesClause is a disjunction of literalsLiteral is an atom or the negation of an atom
Two procedures
Resolution DPLLProof-finder Model-finderSaturation Search
Resolution
ImprovementsDelete tautologies Ordered ResolutionSubsumption (delete redundant clauses)
β¦
unsat
Resolution: Example
Resolution: Example
Resolution: Example
Resolution: Example
Resolution: Example
Resolution: Problem
Exponential time and space
Unit Resolution
subsumes
DPLL
DPLL = Unit Resolution + Split rule
Split rule
π ,π π ,Β¬π
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
DPLLπ₯β¨ π¦ ,Β¬π₯β¨π¦ , π₯β¨Β¬ π¦ ,Β¬π₯β¨Β¬ π¦
CDCL: Conflict Driven Clause Learning
Resolution
DPLLConflict
Resolution
Proof
Model
Linear Arithmetic
Fourier-Motzkin SimplexProof-finder Model-finderSaturation Search
Fourier-Motzkin
Very similar to Resolution
Exponential time and space
π‘1β€ππ₯ ,ππ₯β€ π‘ 2
ππ‘1β€πππ₯ ,πππ₯β€ππ‘ 2
ππ‘1β€ππ‘2
Polynomial Constraints
AKAExistential Theory of the Reals
R
Applications
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
CAD βBig Pictureβπ₯2+ π¦2β1<0π₯ π¦β1>0 1. Saturate
π₯4βπ₯2+1
π₯π₯2β1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
2. Search
CAD βBig Pictureβππ+ππβπ<0π π βπ>0 1. Saturate
π₯4βπ₯2+1
π₯π₯2β1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
π βπ
+ + ++ 0 -
2. Search
CAD βBig Pictureβππ+ππβπ<ππ₯ π¦β1>0 1. Saturate
π₯4βπ₯2+1
π₯π₯2β1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
π βπ
+ + ++ 0 -
2. Search
CONFLICT
NLSAT: Model-Based SearchStatic x DynamicOptimistic approachKey ideas
Start the Search before Saturate/ProjectWe saturate on demandModel guides the saturation
Models
Proo
fs
Conflict
Resolution
NLSAT (1)Two kinds of decision
1. case-analysis (Boolean)
π₯2+ π¦2<1β¨π<πβ¨π₯ π¦ >1
2. model construction (CAD lifting)
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
π βπ
NLSAT (1)
Parametric calculus: Finite basis explanation function
Two kinds of decision1. case-analysis (Boolean)
2. model construction (CAD lifting)
Explanations may contain new literalsThey evaluate to false in the current state
NLSAT (2)Key ideas: Use partial solution to guide the search
π₯3+2π₯2+3 π¦ 2β5<0
π₯2+ π¦2<1
β4 π₯π¦β4 π₯+ π¦>1
Feasible Region
Starting searchPartial solution:
Can we extend it to ?
What is the core?
NLSAT (2)Key ideas: Use partial solution to guide the search
π₯3+2π₯2+3 π¦ 2β5<0
π₯2+ π¦2<1
β4 π₯π¦β4 π₯+ π¦>1
Feasible Region
Starting searchPartial solution:
Can we extend it to ?
What is the core?
NLSAT (3)Key ideas: Solution based Project/Saturate
Standard project operators are pessimistic.Coefficients can vanish!
NLSAT (4)
Current assignment
Conflict
Key ideas: Lemma LearningPrevent a Conflict from happening again.
Lemma
Current assignments does not satisfy new constraint.
NLSAT (5)Key ideas: Nonchronological Backtracking
π=ππ=βπ
= 1
π Conflict
The values chosen for and are irrelevant.
MachineryMultivariate & univariate Polynomials
Basic operations, Pseudo-division,GCD, Resultant, PSC, Factorization,Root isolation algorithms, Sturm sequences
Binary rationals Real Algebraic Numbers
Experimental Results (1)OUR NEW ENGINE
Experimental Results (2)
OUR NEW ENGINE
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 byAxiom Instantiation
Lemmas on DemandFor Theory of Array
[Brummayer-Biere 2009]X
Saturation: successful instances
Polynomial time procedures
Gaussian EliminationCongruence Closure
MCSat
Model-Driven SMTLift ideas from CDCL to SMT
Generalize ideas found in model-driven approachesEasier to implement
Model construction is explicit
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
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.
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.
Learning that = 2)is not productive
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1
Learning that = 2)is not productive
Β¬(π₯=2)
= 2)
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1
Learning that = 2)is not productive
Β¬(π₯=2)
= 2)
π₯β3
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1
Learning that = 2)is not productive
Β¬(π₯=2)
= 2)
π₯β3
βSameβ Conflict
We canβt find a value for s.t.
π₯β₯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
, π§β0 , π¦β0
, β‘
,
βπ₯+π§+1β€0π§β0 π¦β0π₯β π¦ β€0
We canβt find a value of
MCSat: FM Example
, π§β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
, π§β0 , π¦β1
, β‘
,
MCSat: FM Example
βπ₯+π§+1β€0π§β0 π§+1β π¦ β€0π₯β π¦ β€0
Β¬ (βπ₯+π§+1β€ 0 )β¨Β¬ (π₯β π¦ β€0 )β¨π§+1β π¦ β€0
π¦β1
, π§β0 , π¦β1
, β‘
,
π₯β1
MCSat β Finite BasisEvery theory that admits quantifier elimination has a finite basis (given a fixed assignment order)
πΉ [π₯ , π¦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 BasisEvery βfiniteβ theory has a finite basisExample: Fixed size Bit-vectors
πΉ [π₯ , π¦1 , β¦, π¦π]
Β¬πΉ [π₯ , π¦1 ,β¦, π¦π ]β¨Β¬(π¦1=πΌ1)β¨β¦β¨Β¬(π¦ΒΏΒΏπ=πΌπ)ΒΏ
MCSat β Finite BasisTheory 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 variablesGeneralized 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
MCSat β Finite BasisWe can also use literals from the finite basis in decisions.
Application: simulate branch&bound for bounded linear integer arithmetic
LP solution:
1 2 3 4 5 6π₯1
123456
0
π₯2
π₯1β₯1π₯1β€0
MCSat: Termination
Propagations
Boolean Decisions
Semantic Decisions
MCSat
β»Propagations
Boolean Decisions
Semantic Decisions
MCSat
β»
Propagations
Boolean Decisions
Semantic Decisions
MCSat
ΒΏπΉππππ‘ππ΅ππ ππ β¨ΒΏ
β¦Maximal Elements
β¦
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1 π₯β€1
Β¬(π₯2+π¦2β€1)β¨π₯β€1ConflictΒ¬ (π₯β₯2 )β¨Β¬(π₯β€1)
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1 π₯β€1
Β¬(π₯2+π¦2β€1)β¨π₯β€1ConflictΒ¬ (π₯β₯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)β¨π₯β€1ConflictΒ¬ (π₯β₯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
π₯<1β¨π , Β¬πβ¨π₯=2
π₯β1
MCSat
π
π₯<1β¨π , Β¬πβ¨π₯=2
π₯β1
MCSat
π
Conflict (evaluates to false)
π₯<1β¨π , Β¬πβ¨π₯=2
π₯β1
MCSat
π
New clauseπ₯<1β¨π₯=2
π₯<1β¨π , Β¬πβ¨π₯=2
π₯β1
MCSat
π
New clauseπ₯<1β¨π₯=2
π₯<1
π₯<1β¨π , Β¬πβ¨π₯=2
π₯β1
MCSat
π
New clauseπ₯<1β¨π₯=2
π₯<1
MCSat: Architecture
Arithmetic
Boolean Lists
Arrays
MCSat prototype: 7k lines of codeDeduction Rules
Boolean Resolution
Fourier-Motzkin
Equality Split
Ackermann expansionaka Congruence
Normalization
MCSat: preliminary resultsprototype: 7k lines of code
QF_LRA
MCSat: preliminary resultsprototype: 7k lines of code
QF_UFLRA and QF_UFLIA
ConclusionLogic as a Service
Model-Based techniques are very promising
http://z3.codeplex.com
http://rise4fun.com/z3
MCSat