Transcript part 1
Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research Symbolic Reasoning Software analysis/verification tools need some form of symbolic reasoning Logic is βThe Calculus of Computer Scienceβ Zohar Manna Saturation x Search Model-finding Proofs Proof-finding Models SAT π1 β¨ ¬π2, π1 = π‘ππ’π, ¬π1 β¨ π2 β¨ π3, π2 = π‘ππ’π, π3 π3 = π‘ππ’π CNF is a set (conjunction) set of clauses Clause is a disjunction of literals Literal is an atom or the negation of an atom Two procedures Resolution Proof-finder Saturation DPLL Model-finder Search Resolution πΆ β¨ π, π· β¨ ¬π β πΆ β¨ π· π, ¬π β unsat Improvements Delete tautologies π β¨ ¬π β¨ πΆ Ordered Resolution Subsumption (delete redundant clauses) πΆ π π’ππ π’πππ πΆ β¨ π· β¦ Resolution: Example Resolution: Example Resolution: Example Resolution: Example Resolution: Example Resolution: Problem Exponential time and space Unit Resolution πΆ β¨ π, ¬π β πΆ πΆ subsumes πΆβ¨π Complete for Horn Clauses ¬π1 β¨ β¦ β¨ ¬ππ β¨ π DPLL Split rule π π, π π, ¬π DPLL = Unit Resolution + Split rule DPLL π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦, π₯ π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦ DPLL π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦, π₯ π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦ DPLL π₯ β¨ π¦, π¦, ¬π¦, π₯ ¬π₯ β¨ π¦, π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦ DPLL π₯ β¨ π¦, ¬π₯ β¨ π¦, π¦, ¬π¦, π₯, π’ππ ππ‘ π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦ DPLL π₯ β¨ π¦, ¬π₯ β¨ π¦, π¦, ¬π¦, π₯, π’ππ ππ‘ π₯ β¨ ¬π¦, π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦, ¬π₯ ¬π₯ β¨ ¬π¦ DPLL π₯ β¨ π¦, ¬π₯ β¨ π¦, π¦, ¬π¦, π₯, π’ππ ππ‘ π₯ β¨ ¬π¦, π₯ β¨ π¦, ¬π₯ β¨ π¦, π₯ β¨ ¬π¦, ¬π₯ β¨ ¬π¦, ¬π₯ ¬π₯ β¨ ¬π¦ CDCL: Conflict Driven Clause Learning DPLL Resolution Model Proof MCSat π₯ β₯ 2, ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) MCSat π₯ β₯ 2, ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π₯β₯2 Propagations MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π₯β₯1 Propagations MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦β₯1 Propagations MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 Decisions MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯ β 2 Model Assignments MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯ β 2 Model Assignments We canβt falsify any fact in the trail. MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯ β 2 Conflict We canβt find a value of π¦ s.t. 4 + π¦ 2 β€ 1 MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯ β 2 Conflict We canβt find a value of π¦ s.t. 4 + π¦ 2 β€ 1 Learning that ¬ π₯ 2 + π¦ 2 β€ 1 β¨ ¬(π₯= 2) is not productive π₯ β₯ 2, π₯β₯2 π¦ (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯ β 2 Conflict π₯2 + π¦2 β€ 1 π₯ π₯β2 β1 β€ π₯, π₯ β€ 1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯β€1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 π₯β€1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 Conflict ¬ π₯ β₯ 2 β¨ ¬(π₯ β€ 1) MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 Learned by resolution ¬ π₯ β₯ 2 β¨ ¬(π₯ 2 + π¦ 2 β€ 1) MCSat π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 ¬(π₯ 2 + π¦ 2 β€ 1) ¬ π₯ β₯ 2 β¨ ¬(π₯ 2 + π¦ 2 β€ 1) ¬(π₯ 2 + π¦ 2 β€ 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 , β¦ , π¦π ] ¬πΉ π₯1 , β¦ , π₯π , π¦1 , β¦ , π¦π β¨ πΆπ [π¦1 , β¦ , π¦π ] MCSat β Finite Basis πΉπ [π₯1, π₯2 , β¦ , π₯πβ1 , π₯π ] πΉπβ1 [π₯1, π₯2 , β¦ , π₯πβ1 ] β¦ πΉ2 [π₯1, π₯2 ] πΉ1 [π₯1 ] MCSat β Finite Basis πΉπ [π₯1, π₯2 , β¦ , π₯πβ1 , π₯π ] πΉπβ1 [π₯1, π₯2 , β¦ , π₯πβ1 ] β¦ πΉ2 [π₯1, π₯2 ] πΉ1 [π₯1 ] MCSat β Finite Basis πΉπ [π₯1, π₯2 , β¦ , π₯πβ1 , π₯π ] πΉπβ1 [π₯1, π₯2 , β¦ , π₯πβ1 ] β¦ πΉ2 [π₯1, π₯2 ] πΉ1 [π₯1 ] MCSat β Finite Basis πΉπ [π₯1, π₯2 , β¦ , π₯πβ1 , π₯π ] πΉπβ1 [π₯1, π₯2 , β¦ , π₯πβ1 ] β¦ πΉ2 [π₯1, π₯2 ] πΉ1 [π₯1 ] MCSat β Finite Basis Every βfiniteβ theory has a finite basis πΉ[π₯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: Termination Propagations Decisions Model Assignments MCSat β» Propagations Decisions Model Assignments MCSat β» Propagations Decisions Model Assignments MCSat Maximal Elements β¦ |πΉππππ‘ππ΅ππ ππ | π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 π₯2 + π¦2 β€ 1 Conflict ¬ π₯ β₯ 2 β¨ ¬(π₯ β€ 1) π₯β€1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 π¦ β₯ 1 π₯2 + π¦2 β€ 1 Conflict ¬ π₯ β₯ 2 β¨ ¬(π₯ β€ 1) π₯ β₯ 2, π₯β₯2 π₯β€1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 ¬(π₯ 2 + π¦ 2 β€ 1) ¬ π₯ β₯ 2 β¨ ¬(π₯ 2 + π¦ 2 β€ 1) ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 π₯ β₯ 2, π₯β₯2 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 π¦ β₯ 1 π₯2 + π¦2 β€ 1 Conflict ¬ π₯ β₯ 2 β¨ ¬(π₯ β€ 1) π₯ β₯ 2, π₯β₯2 π₯β€1 ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 ¬π₯ β₯ 1 β¨ π¦ β₯ 1 , π₯β₯1 (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) (π₯ 2 + π¦ 2 β€ 1 β¨ π₯π¦ > 1) π¦ β₯ 1 ¬(π₯ 2 + π¦ 2 β€ 1) ¬ π₯ β₯ 2 β¨ ¬(π₯ 2 + π¦ 2 β€ 1) ¬(π₯ 2 + π¦ 2 β€ 1) β¨ π₯ β€ 1 MCSat π₯ < 1 β¨ π, π₯β1 ¬π β¨ π₯ = 2 MCSat π₯ < 1 β¨ π, π₯β1 π ¬π β¨ π₯ = 2 MCSat π₯ < 1 β¨ π, π₯β1 ¬π β¨ π₯ = 2 π Conflict (evaluates to false) MCSat π₯ < 1 β¨ π, π₯β1 ¬π β¨ π₯ = 2 π New clause π₯ <1β¨π₯ =2 MCSat π₯ < 1 β¨ π, π₯β1 ¬π β¨ π₯ = 2 π New clause π₯ <1β¨π₯ =2 π₯<1 MCSat π₯ < 1 β¨ π, π₯β1 ¬π β¨ π₯ = 2 π New clause π₯ <1β¨π₯ =2 π₯<1 MCSat: Architecture Arithmetic Arrays Boolean Lists MCSat: development