SD3049 Formal Methods. Formal Methods Module Leader Dr Aaron Kans ([email protected])
Decision methods for arithmetic Third summer school on formal methods
description
Transcript of Decision methods for arithmetic Third summer school on formal methods
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