690 likes | 968 Vues
Symbolic Reasoning. Quantifiers in Satisfiability Modulo Theories. . PSpace-complete(QBF). Undecidable(First-order logic). NP-complete(Propositional logic). NEXPTime-complete(EPR). P-time(Equality). Logic is
E N D
1. Quantifiers in Satisfiability Modulo Theories Frontiers of Computational Reasoning 2009 MSR Cambridge Leonardo de Moura
Microsoft Research
2. Symbolic Reasoning Quantifiers in Satisfiability Modulo Theories Logic is The Calculus of Computer Science (Z. Manna).
High computational complexity
3. Satisfiability Modulo Theories (SMT) Quantifiers in Satisfiability Modulo Theories
4. Satisfiability Modulo Theories (SMT) Quantifiers in Satisfiability Modulo Theories
5. Satisfiability Modulo Theories (SMT) Quantifiers in Satisfiability Modulo Theories
6. Satisfiability Modulo Theories (SMT) Quantifiers in Satisfiability Modulo Theories
7. Satisfiability Modulo Theories (SMT) Quantifiers in Satisfiability Modulo Theories
8. Theories A Theory is a set of sentences
Alternative definition:
A Theory is a class of structures
Th(M) is the set of sentences that are true in the structure M Quantifiers in Satisfiability Modulo Theories
9. SMT: Some Applications @ Microsoft Quantifiers in Satisfiability Modulo Theories
10. SMT@Microsoft: Solver Quantifiers in Satisfiability Modulo Theories
11. SMT x First-order provers Quantifiers in Satisfiability Modulo Theories
12. SMT x SAT Quantifiers in Satisfiability Modulo Theories
13. Ground formulas For most SMT solvers: F is a set of ground formulas Quantifiers in Satisfiability Modulo Theories
14. DPLL M | F
Quantifiers in Satisfiability Modulo Theories
15. DPLL Guessing Quantifiers in Satisfiability Modulo Theories
16. DPLL Deducing Quantifiers in Satisfiability Modulo Theories
17. DPLL Backtracking Quantifiers in Satisfiability Modulo Theories
18. Solvers = DPLL + Decision Procedures Efficient decision procedures for conjunctions of ground atoms. Quantifiers in Satisfiability Modulo Theories
19. Verifying Compilers Quantifiers in Satisfiability Modulo Theories
20. Verification conditions: Structure
21. Main Challenge Quantifiers, quantifiers, quantifiers,
Modeling the runtime
? h,o,f: IsHeap(h) ? o ? null ? read(h, o, alloc) = t ? read(h,o, f) = null ? read(h, read(h,o,f),alloc) = t Quantifiers in Satisfiability Modulo Theories
22. Main Challenge Quantifiers, quantifiers, quantifiers,
Modeling the runtime
Frame axioms
? o, f: o ? null ? read(h0, o, alloc) = t ? read(h1,o,f) = read(h0,o,f) ? (o,f) ? M
Quantifiers in Satisfiability Modulo Theories
23. Main Challenge Quantifiers, quantifiers, quantifiers,
Modeling the runtime
Frame axioms
User provided assertions
? i,j: i ? j ? read(a,i) ? read(b,j)
Quantifiers in Satisfiability Modulo Theories
24. Main Challenge Quantifiers, quantifiers, quantifiers,
Modeling the runtime
Frame axioms
User provided assertions
Theories
x: p(x,x)
x,y,z: p(x,y), p(y,z) ? p(x,z)
x,y: p(x,y), p(y,x) ? x = y
Quantifiers in Satisfiability Modulo Theories
25. Main Challenge Quantifiers, quantifiers, quantifiers,
Modeling the runtime
Frame axioms
User provided assertions
Theories
Solver must be fast in satisfiable instances.
Quantifiers in Satisfiability Modulo Theories
26. Some statistics Grand challenge: Microsoft Hypervisor
70k lines of dense C code
VCs have several Mb
Thousands of non ground clauses
Developers are willing to wait at most 5 min per VC
Quantifiers in Satisfiability Modulo Theories
27. Many Approaches Quantifiers in Satisfiability Modulo Theories
28. E-matching & Quantifier instantiation Quantifiers in Satisfiability Modulo Theories
29. E-matching & Quantifier instantiation Quantifiers in Satisfiability Modulo Theories
30. E-matching: why do we use it? Quantifiers in Satisfiability Modulo Theories
31. Efficient E-matching Quantifiers in Satisfiability Modulo Theories
32. E-matching code trees Quantifiers in Satisfiability Modulo Theories
33. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
34. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
35. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
36. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
37. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
38. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
39. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
40. E-matching: Limitations Quantifiers in Satisfiability Modulo Theories
41. DPLL(?) Quantifiers in Satisfiability Modulo Theories
42. DPLL(?) Quantifiers in Satisfiability Modulo Theories
43. DPLL(?) Quantifiers in Satisfiability Modulo Theories
44. DPLL(?): Deduce I Quantifiers in Satisfiability Modulo Theories
45. DPLL(?): Deduce I Quantifiers in Satisfiability Modulo Theories
46. DPLL(?): Deduce I Quantifiers in Satisfiability Modulo Theories
47. DPLL(?): Deduce II Quantifiers in Satisfiability Modulo Theories
48. DPLL(?): Deduce II Quantifiers in Satisfiability Modulo Theories
49. DPLL(?): Backtracking Quantifiers in Satisfiability Modulo Theories
50. DPLL(?): Backtracking Quantifiers in Satisfiability Modulo Theories
51. DPLL(?): Hypothesis Elimination Quantifiers in Satisfiability Modulo Theories
52. DPLL(?): Improvement Quantifiers in Satisfiability Modulo Theories
53. DPLL(?): Improvement Quantifiers in Satisfiability Modulo Theories
54. DPLL(?): Improvement Quantifiers in Satisfiability Modulo Theories
55. DPLL(?): Contraction rules Quantifiers in Satisfiability Modulo Theories
56. DPLL(?): Contraction rules Quantifiers in Satisfiability Modulo Theories
57. DPLL(?): Contraction rules Quantifiers in Satisfiability Modulo Theories
58. DPLL(?): Contraction rules Quantifiers in Satisfiability Modulo Theories
59. DPLL(?): Problems Quantifiers in Satisfiability Modulo Theories
60. DPLL(?): Problems Quantifiers in Satisfiability Modulo Theories
61. Non ground clauses + interpreted symbols Quantifiers in Satisfiability Modulo Theories
62. Essentially unintepreted fragment Quantifiers in Satisfiability Modulo Theories
63. Almost unintepreted fragment Quantifiers in Satisfiability Modulo Theories
64. Complete quantifier instantiation Quantifiers in Satisfiability Modulo Theories
65. Refutationally complete procedure Quantifiers in Satisfiability Modulo Theories
66. Example Quantifiers in Satisfiability Modulo Theories
67. CEGAR-like loop for quantifiers Quantifiers in Satisfiability Modulo Theories
68. What is the best approach? Quantifiers in Satisfiability Modulo Theories
69. Parallel Z3 Joint work with Y. Hamadi (MSRC) and C. Wintersteiger
Multi-core & Multi-node (HPC)
Different strategies in parallel
Collaborate exchanging lemmas Quantifiers in Satisfiability Modulo Theories
70. Conclusion Quantifiers in Satisfiability Modulo Theories