57
Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Embed Size (px)

Citation preview

Page 1: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Decision methods for arithmeticThird summer school on formal methods

Leonardo de Moura Microsoft Research

Page 2: Decision methods for arithmetic Third 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

Page 3: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Saturation x Search

Proof-finding Model-finding

Models

Proo

fsConflict

Resolution

Page 4: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

SAT

CNF is a set (conjunction) set of clausesClause is a disjunction of literalsLiteral is an atom or the negation of an atom

Page 5: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Two procedures

Resolution DPLLProof-finder Model-finderSaturation Search

Page 6: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution

ImprovementsDelete tautologies Ordered ResolutionSubsumption (delete redundant clauses)

unsat

Page 7: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Example

Page 8: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Example

Page 9: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Example

Page 10: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Example

Page 11: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Example

Page 12: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Resolution: Problem

Exponential time and space

Page 13: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

Unit Resolution

Complete for Horn Clauses

subsumes

Page 14: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL

DPLL = Unit Resolution + Split rule

Split rule

𝑆 ,𝑝 𝑆 ,¬𝑝

Page 15: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 16: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 17: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 18: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 19: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 20: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

DPLL𝑥∨ 𝑦 ,¬𝑥∨𝑦 , 𝑥∨¬ 𝑦 ,¬𝑥∨¬ 𝑦

Page 21: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

CDCL: Conflict Driven Clause Learning

Resolution

DPLLConflict

Resolution

Proof

Model

Page 22: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

Page 23: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2

Propagations

Page 24: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2

Propagations

𝑥≥1

Page 25: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2

Propagations

𝑥≥1 𝑦 ≥1

Page 26: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2

Decisions

𝑥≥1 𝑦 ≥1𝑥2+ 𝑦2≤1

Page 27: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2

Model Assignments

𝑥≥1 𝑦 ≥1𝑥2+ 𝑦2≤1𝑥→2

Page 28: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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.

Page 29: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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.

Page 30: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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

Page 31: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥≥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

Page 32: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2 𝑥≥1 𝑦 ≥1𝑥2+ 𝑦2≤1 𝑥≤1

¬(𝑥2+𝑦2≤1)∨𝑥≤1

Page 33: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2 𝑥≥1 𝑦 ≥1𝑥2+ 𝑦2≤1 𝑥≤1

¬(𝑥2+𝑦2≤1)∨𝑥≤1

Conflict¬ (𝑥≥2 )∨¬(𝑥≤1)

Page 34: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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)

Page 35: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2 𝑥≥1 𝑦 ≥1¬(𝑥2+𝑦2≤1)

¬(𝑥2+𝑦2≤1)∨𝑥≤1¬ (𝑥≥2 )∨¬(𝑥2+𝑦2≤1)

Page 36: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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 ,…, 𝑦𝑚]

Page 37: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat – Finite Basis

𝐹 1[𝑥1]

𝐹 2[𝑥1 ,𝑥2]

𝐹 𝑛[𝑥1 ,𝑥2,…, 𝑥𝑛−1 ,𝑥𝑛]

𝐹 𝑛−1[𝑥1 ,𝑥2,…, 𝑥𝑛−1]…

Page 38: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat – Finite Basis

𝐹 1[𝑥1]

𝐹 2[𝑥1 ,𝑥2]

𝐹 𝑛[𝑥1 ,𝑥2,…, 𝑥𝑛−1 ,𝑥𝑛]

𝐹 𝑛−1[𝑥1 ,𝑥2,…, 𝑥𝑛−1]…

Page 39: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat – Finite Basis

𝐹 1[𝑥1]

𝐹 2[𝑥1 ,𝑥2]

𝐹 𝑛[𝑥1 ,𝑥2,…, 𝑥𝑛−1 ,𝑥𝑛]

𝐹 𝑛−1[𝑥1 ,𝑥2,…, 𝑥𝑛−1]…

Page 40: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat – Finite Basis

𝐹 1[𝑥1]

𝐹 2[𝑥1 ,𝑥2]

𝐹 𝑛[𝑥1 ,𝑥2,…, 𝑥𝑛−1 ,𝑥𝑛]

𝐹 𝑛−1[𝑥1 ,𝑥2,…, 𝑥𝑛−1]…

Page 41: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat – Finite BasisEvery “finite” theory has a finite basis

𝐹 [𝑥1 ,…,𝑥𝑛 , 𝑦1 ,…, 𝑦𝑚]

Page 42: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

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.

Page 43: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat: Termination

Propagations

Decisions

Model Assignments

Page 44: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

Propagations

Decisions

Model Assignments

Page 45: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

Propagations

Decisions

Model Assignments

Page 46: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat

¿𝐹𝑖𝑛𝑖𝑡𝑒𝐵𝑎𝑠𝑖𝑠∨¿

…Maximal Elements

Page 47: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥≥2 , (¬𝑥≥1∨ 𝑦 ≥1 ) ,(𝑥2+𝑦2≤1∨𝑥𝑦>1)

𝑥≥2 𝑥≥1 𝑦 ≥1𝑥2+ 𝑦2≤1 𝑥≤1

¬(𝑥2+𝑦2≤1)∨𝑥≤1Conflict¬ (𝑥≥2 )∨¬(𝑥≤1)

Page 48: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥≥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)

Page 49: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥≥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)

Page 50: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

Page 51: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

𝑝

Page 52: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

𝑝

Conflict (evaluates to false)

Page 53: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

𝑝

New clause

𝑥<1∨𝑥=2

Page 54: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

𝑝

New clause

𝑥<1∨𝑥=2

𝑥<1

Page 55: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

𝑥<1∨𝑝 ,¬𝑝∨𝑥=2

𝑥→1

MCSat

𝑝

New clause

𝑥<1∨𝑥=2

𝑥<1

Page 56: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat: Architecture

Arithmetic

Boolean Lists

Arrays

Page 57: Decision methods for arithmetic Third summer school on formal methods Leonardo de Moura Microsoft Research

MCSat: development