Decision methods for arithmeticThird summer school on formal methods
Leonardo de Moura Microsoft Research
Software analysis/verification tools need some form of symbolic reasoning
Symbolic Reasoning
Logic is βThe Calculus of Computer ScienceβZohar Manna
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
Complete for Horn Clauses
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
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
Decisions
π₯β₯1 π¦ β₯1π₯2+ π¦2β€1
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2
Model Assignments
π₯β₯1 π¦ β₯1π₯2+ π¦2β€1π₯β2
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2
Model Assignments
π₯β₯1 π¦ β₯1π₯2+ π¦2β€1π₯β2
We canβt falsify any fact in the trail.
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2
Conflict
π₯β₯1 π¦ β₯1π₯2+ π¦2β€1π₯β2
We canβt find a value of s.t.
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2
Conflict
π₯β₯1 π¦ β₯1π₯2+ π¦2β€1π₯β2
We canβt find a value of s.t.
Learning that = 2)is not productive
π₯β₯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)β¨π₯β€1ConflictΒ¬ (π₯β₯2 )β¨Β¬(π₯β€1)
MCSat
π₯β₯2 , (Β¬π₯β₯1β¨ π¦ β₯1 ) ,(π₯2+ π¦2β€1β¨π₯π¦>1)
π₯β₯2 π₯β₯1 π¦ β₯1π₯2+ π¦2β€1
Β¬(π₯2+π¦2β€1)β¨π₯β€1Learned 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 β Finite BasisEvery theory that admits quantifier elimination has a finite basis (given a fixed assignment order)
πΉ [π₯1 ,β¦,π₯π , π¦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 BasisEvery βfiniteβ theory has a finite basis
πΉ [π₯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: Termination
Propagations
Decisions
Model Assignments
MCSat
β»Propagations
Decisions
Model Assignments
MCSat
β»
Propagations
Decisions
Model Assignments
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: development