SAT Solvers: Theory and Practice
Clark Barrett
barrett@cs.nyu.edu
New York University
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 1/98
SAT Solvers: Theory and Practice Clark Barrett barrett@cs.nyu.edu - - PowerPoint PPT Presentation
SAT Solvers: Theory and Practice Clark Barrett barrett@cs.nyu.edu New York University Summer School on Verification Technology, Systems & Applications, September 17, 2008 p. 1/98 Formal Verification [Formal] software verification
barrett@cs.nyu.edu
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 1/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 2/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 3/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 4/98
1 1 1
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 5/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 6/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 6/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 6/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 6/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 7/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 8/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 9/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 10/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 11/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 12/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 12/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 12/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 13/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 14/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 14/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 14/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 15/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 16/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 16/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 16/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 16/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 17/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 17/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 17/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 17/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 18/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 19/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 20/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 21/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 21/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 22/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 23/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 24/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 25/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 26/98
X2 X3 F (X1, X2, X3) X1
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 27/98
OR AND NOT
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 28/98
D C B A
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 29/98
D C B A
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 30/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 31/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 31/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 31/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 31/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 32/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 33/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 34/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 35/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 36/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 37/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 38/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 39/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 40/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 41/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 42/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 43/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 44/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 45/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 45/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 46/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 47/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 47/98
D C B A F E G H I
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 48/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 49/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 50/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 51/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 52/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 53/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 53/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 53/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 53/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 53/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 54/98
UnitProp :
PureLiteral :
Decide :
Backtrack :
Fail :
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 55/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 56/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 57/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 58/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 59/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 60/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 61/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 62/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 63/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 63/98
Backjump :
Learn :
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 64/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 65/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 66/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 67/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 68/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 69/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 70/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 71/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 72/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 73/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 74/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 75/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 75/98
Forget :
Restart :
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 76/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 77/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 78/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 79/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 80/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 81/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 82/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 83/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 83/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 83/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 84/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 85/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 86/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 87/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 87/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 87/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 87/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 88/98
1 1 1
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 89/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 90/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 91/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 92/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 93/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 94/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 95/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 95/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 95/98
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 95/98
[BCCZ99] A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without
[CBRZ01] E. Clarke, A. Biere, R. Raimi, and Y. Zhu. Solving SAT and SAT Modulo Theories:
[Coo71] S. A. Cook. The complexity of theorem proving procedures. In Proceedings of the
[DP60] Martin Davis and Hilary Putnam. A computing procedure for quantification theory.
[DLL62] Martin Davis, George Logemann, and Donald Loveland. A machine program for
[End00] Herbert B. Enderton. A Mathematical Introduction to Logic. Undergraduate Texts in
[ES03] Niklas Een and Niklas Sörensson. An extensible sat-solver. In SAT ’03, 2003
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 96/98
[Gat02] Bill Gates. Keynote address at WinHec 2002, April 2002 [Har09] John Harrison. Introduction to Logic and Automated Theorem Proving. 2009.
[KP94] W. Kunz and D. K. Pradhan. Recursive learning: A new implication technique for
[MMZ+01] Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang, and Sharad
[MSS96] Joao P
[NOT06] Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. Solving SAT and SAT
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 97/98
[SLM92] Bart Selman, Hector Levesque, and David Mitchell. A new method for solving hard
[SS98] Mary Sheeran and Gunnar Stålmarck. A tutorial on Stålmarck’s proof procedure for
[Tse70] G. Tseitin. On the complexity of derivation in propositional calculus. Studies in
[Zha97] H. Zhang. SATO: An efficient propositional prover. In William McCune, editor,
Summer School on Verification Technology, Systems & Applications, September 17, 2008 – p. 98/98