Building Efficient Decision Procedures on Top of SAT Solvers

  • Alessandro Cimatti
  • Roberto Sebastiani
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3965)


Many verification problems can be naturally represented as satisfiability problems in some decidable fragments of first order logic. Efficient decision procedures for such problems can be obtained by combining technology for propositional satisfiability and solvers able to deal with the theory component.

We provide a unifying and abstract, theory-independent perspective on the various integration schemas and techniques. Within this framework, we survey, analyze and classify the most effective integration techniques and optimizations for the development of decision procedures. We also discuss the relative benefits and drawbacks of the various techniques, and we analyze the features for SAT solvers and theory-specific solvers which make them more suitable for an integration.


Decision Procedure Unit Propagation Truth Assignment Satisfying Assignment Unit Clause 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andraus, Z.S., Sakallah, K.A.: Automatic abstraction and verification of verilog models. In: Proc. DAC 2004. ACM Press, New York (2004)Google Scholar
  2. 2.
    Armando, A., Castellini, C., Giunchiglia., E.: SAT-based procedures for temporal reasoning. In: Proc. European Conference on Planning, CP 1999 (1999)Google Scholar
  3. 3.
    Armando, A., Castellini, C., Giunchiglia, E., Maratea, M.: A SAT-Based Decision Procedure for the Boolean Combination of Difference Constraints. In: H. Hoos, H., Mitchell, D.G. (eds.) SAT 2004. LNCS, vol. 3542, pp. 16–29. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Audemard, G., Bertoli, P.G., Cimatti, A., Kornilowicz, A., Sebastiani, R.: A SAT Based Approach for Solving Formulas over Boolean and Linear Mathematical Propositions. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, p. 195. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Audemard, G., Bertoli, P.G., Cimatti, A., Kornilowicz, A., Sebastiani, R.: Integrating boolean and mathematical solving: Foundations, basic algorithms, and requirements. In: Calmet, J., Benhamou, B., Caprotti, O., Hénocque, L., Sorge, V. (eds.) AISC 2002 and Calculemus 2002. LNCS (LNAI), vol. 2385, pp. 231–245. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  6. 6.
    Audemard, G., Bozzano, M., Cimatti, A., Sebastiani, R.: Verifying Industrial Hybrid Systems with MathSAT. In: Proc. CAV 2004 Workshop on Bounded Model Checking (BMC 2004). ENTCS, vol. 89. Elsevier, Amsterdam (2004)Google Scholar
  7. 7.
    Audemard, G., Cimatti, A., Korniłowicz, A., Sebastiani, R.: SAT-Based Bounded Model Checking for Timed Systems. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, Springer, Heidelberg (2002)Google Scholar
  8. 8.
    Bacchus, F., Winter, J.: Effective preprocessing with hyper-resolution and equality reduction. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 341–355. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  9. 9.
    Badros, G.J., Borning, A.: The Cassowary Linear Arithmetic Constraint Solving Algorith. ACM Transactions on Computer Human Interaction 8(4), 267–306 (2001)CrossRefGoogle Scholar
  10. 10.
    Barrett, C., Dill, D., Stump, A.: Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT. In: 14th International Conference on Computer-Aided Verification (2002)Google Scholar
  11. 11.
    Barrett, C.W., Dill, D.L., Levitt, J.R.: A decision procedure for bit-vector arithmetic. In: Proc. DAC 1998. ACM Press, New York (1998)Google Scholar
  12. 12.
    Barrett, C.W., Dill, D.L., Stump, A.: A generalization of shostak’s method for combining decision procedures. In: Armando, A. (ed.) FroCos 2002. LNCS (LNAI), vol. 2309, p. 132. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    Baumgartner, P.: FDPLL - A First Order Davis-Putnam-Longeman-Loveland Procedure. In: McAllester, D. (ed.) CADE 2000. LNCS, vol. 1831, pp. 200–219. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  14. 14.
    Baumgartner, P., Tinelli, C.: The Model Evolution Calculus. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 350–364. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  15. 15.
    Bayardo, R.J., Schrag, R.C.: Using CSP Look-Back Techniques to Solve Real-World SAT instances. In: Proc. AAAI 1997, pp. 203–208. AAAI Press, Menlo Park (1997)Google Scholar
  16. 16.
    Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without BDDs. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, Springer, Heidelberg (1999)CrossRefGoogle Scholar
  17. 17.
    Bockmayr, A., Weispfenning, V.: Solving Numerical Constraints. Handbook of Automated Reasoning, pp. 751–842. MIT Press, Cambridge (2001)zbMATHGoogle Scholar
  18. 18.
    Borälv, A.: A Fully Automated Approach for Proving Safety Properties in Interlocking Software Using Automatic Theorem-Proving. In: Gnesi, S., Latella, D. (eds.) Proceedings of the Second International ERCIM Workshop on Formal Methods for Industrial Critical Systems, Pisa, Italy (July 1997)Google Scholar
  19. 19.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Franzén, A., Hanna, Z., Khasidashvili, Z., Palti, A., Sebastiani, R.: Encoding RTL Constructs for MathSAT: a Preliminary Report. In: Proc. 3rd Workshop of Pragmatics on Decision Procedure in Automated Reasoning, PDPAR 2005. ENTCS. Elsevier, Amsterdam (2006)Google Scholar
  20. 20.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T.A., Ranise, S., van Rossum, P., Sebastiani, R.: Efficient Satisfiability Modulo Theories via Delayed Theory Combination. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 335–349. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T.A., van Rossum, P., Schulz, S., Sebastiani, R.: An Incremental and Layered Procedure for the Satisfiability of Linear Arithmetic Logic. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 317–333. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  22. 22.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T., van Rossum, P., Schulz, S., Sebastiani, R.: MathSAT: A Tight Integration of SAT and Mathematical Decision Procedure. Journal of Automated Reasoning (to appear, 2006)Google Scholar
  23. 23.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T., van Rossum, P., Ranise, S., Sebastiani, R.: Theory Combination via Boolean Search. Information and Computation, (to appear, 2006)Google Scholar
  24. 24.
    Brafman, R.: A simplifier for propositional formulas with many binary clauses. In: Proc. IJCAI 2001 (2001)Google Scholar
  25. 25.
    Brinkmann, R., Drechsler, R.: RTL-datapath verification using integer linear programming. In: Proc. ASP-DAC 2002, pp. 741–746. IEEE, Los Alamitos (2002)Google Scholar
  26. 26.
    Bruttomesso, R., Cimatti, A., Franzèn, A., Griggio, A., Sebastiani, R.: Delayed Theory Combination vs. Nelson-Oppen for Satisfiability Modulo Theories: a Comparative Analysis (March 2006) (submitted for publication)Google Scholar
  27. 27.
    Bryant, R.E.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  28. 28.
    Burch, J.R., Dill, D.L.: Automatic Verification of Pipelined Microprocessor Control. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, Springer, Heidelberg (1994)CrossRefGoogle Scholar
  29. 29.
    Castellini, C., Giunchiglia, E., Tacchella, A.: Sat-based planning in complex domains: Concurrency, constraints and nondeterminism. Artificial Intelligence 147(1-2), 85–117 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  30. 30.
    Cherkassky, B.V., Goldberg, A.V.: Negative-cycle detection algorithms. Mathematical Programming 85(2), 277–311 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Cyrluk, D., Möller, M.O., Ruess, H.: An efficient decision procedure for the theory of fixed-sized bit-vectors. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 60–71. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  32. 32.
    Davis, M., Longemann, G., Loveland, D.: A machine program for theorem proving. Journal of the ACM 5(7) (1962)Google Scholar
  33. 33.
    Davis, M., Putnam, H.: A computing procedure for quantification theory. Journal of the ACM 7, 201–215 (1960)MathSciNetCrossRefzbMATHGoogle Scholar
  34. 34.
    de Moura, L., Rueß, H., Sorea, M.: Lazy theorem proving for bounded model checking over infinite domains. In: Voronkov, A. (ed.) CADE 2002. LNCS, vol. 2392, pp. 438–455. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  35. 35.
    de Moura, L., Rueß, H., Sorea, M.: Lemmas on Demand for Satisfiability Solvers. In: Fifth International Symposium on the Theory and Applications of Satisfiability Testing (SAT 2002), Cincinnati, USA, 15 May (2002)Google Scholar
  36. 36.
    de Moura, L., Ruess, H., Shankar, N.: Justifying Equality. In: Proc. PDPAR 2004. ENTCS, vol. 68(5). Elsevier, Amsterdam (2004)Google Scholar
  37. 37.
    Detlefs, D., Nelson, G., Saxe, J.: Simplify: A theorem prover for program checking, Technical Report HPL-2003-148, HP Labs, Palo Alto, CA (2003),
  38. 38.
    Eén, N., Biere, A.: Effective Preprocessing in SAT Through Variable and Clause Elimination. In: Bacchus, F., Walsh, T. (eds.) SAT 2005. LNCS, vol. 3569, pp. 61–75. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  39. 39.
    Eén, N., Sörensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  40. 40.
    Filliâtre, J.-C., Owre, S., Rueß, H., Shankar, N.: ICS: Integrated Canonizer and Solver. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, p. 246. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  41. 41.
    Flanagan, C., Joshi, R., Ou, X., Saxe, J.B.: Theorem Proving Using Lazy Proof Explication. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 355–367. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  42. 42.
    Stålmarck, G., Säflund, M.: Modelling and Verifying Systems and Software in Propositional Logic. In: Ifac SAFECOMP 1990 (1990)Google Scholar
  43. 43.
    Ganzinger, H., Hagen, G., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: DPLL(T): Fast Decision Procedures. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 175–188. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  44. 44.
    Giunchiglia, E., Giunchiglia, F., Sebastiani, R., Tacchella, A.: SAT vs. Translation based decision procedures for modal logics: a comparative evaluation. Journal of Applied Non-Classical Logics 10(2), 145–172 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  45. 45.
    Giunchiglia, E., Giunchiglia, F., Tacchella, A.: SAT Based Decision Procedures for Classical Modal Logics. Journal of Automated Reasoning. Special Issue: Satisfiability at the start of the year 2000 (2001)Google Scholar
  46. 46.
    Giunchiglia, E., Massarotto, A., Sebastiani, R.: Act, and the Rest Will Follow: Exploiting Determinism in Planning as Satisfiability. In: Proc. AAAI 1998, pp. 948–953 (1998)Google Scholar
  47. 47.
    Giunchiglia, E., Sebastiani, R.: Applying the Davis-Putnam Procedure to Non-clausal Formulas. In: Lamma, E., Mello, P. (eds.) AI*IA 1999. LNCS (LNAI), vol. 1792, p. 84. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  48. 48.
    Giunchiglia, F., Sebastiani, R.: Building decision procedures for modal logics from propositional decision procedures - the case study of modal K. In: McRobbie, M.A., Slaney, J.K. (eds.) CADE 1996. LNCS (LNAI), vol. 1104, Springer, Heidelberg (1996)Google Scholar
  49. 49.
    Giunchiglia, F., Sebastiani, R.: A SAT-based decision procedure for ALC. In: Proc. of the 5th International Conference on Principles of Knowledge Representation and Reasoning - KR 1996, Cambridge, MA, USA (November 1996)Google Scholar
  50. 50.
    Giunchiglia, F., Sebastiani, R.: Building decision procedures for modal logics from propositional decision procedures - the case study of modal K(m). Information and Computation 162(1/2) (October/November 2000)Google Scholar
  51. 51.
    Goldberg, E., Novikov, Y.: BerkMin: A Fast and Robust SAT-Solver. In: Proc. DATE 2002, Washington, DC, USA, p. 142. IEEE Computer Society, Los Alamitos (2002)Google Scholar
  52. 52.
    Gomes, C.P., Selman, B., Kautz, H.: Boosting combinatorial search through randomization. In: Proceedings of the Fifteenth National Conference on Artificial Intelligence (AAAI 1998), Madison, Wisconsin, pp. 431–437 (1998)Google Scholar
  53. 53.
    Hoffmann, J., Brafman, R.I.: Contingent planning via heuristic forward search witn implicit belief states. In: Proceedings of the Fifteenth International Conference on Automated Planning and Scheduling (ICAPS 2005), pp. 71–80. AAAI, Menlo Park (2005)Google Scholar
  54. 54.
    Hooker, J.N., Vinay, V.: Branching Rules for Satisfiability. Journal of Automated Reasoning 15(3), 359–383 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  55. 55.
    Horrocks, I.: The faCT system. In: de Swart, H. (ed.) TABLEAUX 1998. LNCS (LNAI), vol. 1397, pp. 307–312. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  56. 56.
    Kautz, H., McAllester, D., Selman, B.: Encoding Plans in Propositional Logic. In: Proc. KR 1996 (1996)Google Scholar
  57. 57.
    Lahiri, S.K., Bryant, R.E.: Deductive verification of advanced out-of-order microprocessors. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 341–354. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  58. 58.
    Latvala, T., Biere, A., Heljanko, K., Junttila, T.A.: Simple Bounded LTL Model Checking. In: Hu, A.J., Martin, A.K. (eds.) FMCAD 2004. LNCS, vol. 3312, pp. 186–200. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  59. 59.
    Li, C.M., Anbulagan: Heuristics based on unit propagation for satisfiability problems. In: Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI 1997), pp. 366–371 (1997)Google Scholar
  60. 60.
    Mahfoudh, M., Niebert, P., Asarin, E., Maler, O.: A Satisfiability Checker for Difference Logic. In: Proceedings of SAT 2002, pp. 222–230 (2002)Google Scholar
  61. 61.
    McMillan, K.L.: Applying SAT Methods in Unbounded Symbolic Model Checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 250. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  62. 62.
    Möller, M.O., Rueß, H.: Solving bit-vector equations. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 36–48. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  63. 63.
    Moskewicz, M.W., Madigan, C.F., Zhang, Y.Z.L., Malik, S.: Chaff: Engineering an efficient SAT solver. In: Design Automation Conference (2001)Google Scholar
  64. 64.
    Nelson, G., Oppen, D.C.: Simplification by Cooperating Decision Procedures. ACM Trans. on Programming Languages and Systems 1(2), 245–257 (1979)CrossRefzbMATHGoogle Scholar
  65. 65.
    Nieuwenhuis, R., Oliveras, A.: Congruence closure with integer offsets. In: Y. Vardi, M., Voronkov, A. (eds.) LPAR 2003. LNCS, vol. 2850, pp. 78–90. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  66. 66.
    Nieuwenhuis, R., Oliveras, A.: DPLL(T) with Exhaustive Theory Propagation and Its Application to Difference Logic. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 321–334. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  67. 67.
    Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Abstract DPLL and Abstract DPLL Modulo Theories. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS, vol. 3452, pp. 36–50. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  68. 68.
    Patel-Schneider, P.F.: DLP system description. In: Proc. DL 1998, pp. 87–89 (1998)Google Scholar
  69. 69.
    Ranise, S., Tinelli, C.: The SMT-LIB Standard, Available at:
  70. 70.
    Sebastiani, R.: Integrating SAT Solvers with Math Reasoners: Foundations and Basic Algorithms. ITC-IRST Technical report (November 2001)Google Scholar
  71. 71.
    Seshia, S.A., Lahiri, S.K., Bryant, R.E.: A Hybrid SAT-Based Decision Procedure for Separation Logic with Uninterpreted Functions. In: Proc. DAC 2003 (2003)Google Scholar
  72. 72.
    Shankar, N., Rueß, H.: Combining shostak theories. Invited paper for Floc 2002/RTA 2002 (2002)Google Scholar
  73. 73.
    Shostak, R.: A Pratical Decision Procedure for Arithmetic with Function Symbols. Journal of the ACM 26(2), 351–360 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  74. 74.
    Silva, J.P.M., Sakallah, K.A.: GRASP - A new Search Algorithm for Satisfiability. In: Proc. ICCAD 1996 (1996)Google Scholar
  75. 75.
    Stephan, P., Brayton, R., Sangiovanni-Vincentelli, A.: Combinational Test Generation Using Satisfiability. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 15, 1167–1176 (1996)CrossRefGoogle Scholar
  76. 76.
    Strichman, O.: Tuning SAT checkers for Bounded Model Checking. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 480–494. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  77. 77.
    Strichman, O., Seshia, S.A., Bryant, R.E.: Deciding separation formulas with SAT. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 209. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  78. 78.
    Stump, A., Barrett, C.W., Dill, D.L.: CVC: A Cooperating Validity Checker. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 500. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  79. 79.
    Thiffault, C., Bacchus, F., Walsh, T.: Solving Non-clausal Formulas with DPLL Search. In: H. Hoos, H., Mitchell, D.G. (eds.) SAT 2004. LNCS, vol. 3542, Springer, Heidelberg (2005)Google Scholar
  80. 80.
    Tinelli, C.: A DPLL-Based Calculus for Ground Satisfiability Modulo Theories. In: Flesca, S., Greco, S., Leone, N., Ianni, G. (eds.) JELIA 2002. LNCS (LNAI), vol. 2424, pp. 308–319. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  81. 81.
    Velev, M., Bryant, R.E.: Exploiting Positive Equality and Partial Non-Consistency in the Formal Verification of Pipelined Microprocessors. In: Design Automation Conference, pp. 397–401 (1999)Google Scholar
  82. 82.
    Wolfman, S., Weld, D.: The LPSAT Engine & its Application to Resource Planning. In: Proc. IJCAI (1999)Google Scholar
  83. 83.
    Wolfman, S., Weld, D.: Combining linear programming and satisfiability solving for resource planning. Knowledge Engineering Review (2000)Google Scholar
  84. 84.
    Zeng, Z., Kalla, P., Ciesielski, M.: LPSAT: a unified approach to RTL satisfiability. In: Proc. DATE 2001. IEEE Press, Los Alamitos (2001)Google Scholar
  85. 85.
    Zhang, L., Madigan, C.F., Moskewicz, M.H., Malik, S.: Efficient conflict driven learning in a boolean satisfiability solver. In: Proc. ICCAD 2001, pp. 279–285. IEEE Press, Los Alamitos (2001)Google Scholar
  86. 86.
    Zhang, L., Malik, S.: The quest for efficient boolean satisfiability solvers. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 17–36. Springer, Heidelberg (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Alessandro Cimatti
    • 1
  • Roberto Sebastiani
    • 2
  1. 1.ITC-IRSTPovo, TrentoItaly
  2. 2.DITUniversità di TrentoItaly

Personalised recommendations