Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL

  • Sava Krstić
  • Amit Goel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4720)


We offer a transition system representing a high-level but detailed architecture for SMT solvers that combine a propositional SAT engine with solvers for multiple disjoint theories. The system captures succintly and accurately all the major aspects of the solver’s global operation: boolean search with across-the-board backjumping, communication of theory-specific facts and equalities between shared variables, and cooperative conflict analysis. Provably correct and prudently underspecified, our system is a usable ground for high-quality implementations of comprehensive SMT solvers.


Type Operator Shared Variable Propositional Variable Reachable State Cardinality Constraint 
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.
    Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1998)Google Scholar
  2. 2.
    Barrett, C.: Checking Validity of Quantifier-free Formulas in Combinations of First-Order Theories. PhD thesis, Stanford University (2002)Google Scholar
  3. 3.
    Barrett, C., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Splitting on demand in SAT Modulo Theories. In: Hermann, M., Voronkov, A. (eds.) LPAR 2006. LNCS (LNAI), vol. 4246, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Bonacina, M.P., Ghilardi, S., Nicolini, E., Ranise, S., Zucchelli, D.: Decidability and undecidability results for Nelson-Oppen and rewrite-based decision procedures. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T., van Rossum, P., Ranise, S., Sebastiani, R.: Efficient theory combination via boolean search. Information and Computation 204(10), 1493–1525Google Scholar
  6. 6.
    Bryant, R., Lahiri, S., Seshia, S.: Modeling and verifying systems using a logic of counter arithmetic with lambda expressions and uninterpreted functions. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, Springer, Heidelberg (2002)CrossRefGoogle Scholar
  7. 7.
    Conchon, S., Krstić, S.: Strategies for combining decision procedures. Theoretical Computer Science 354(2), 187–210 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Commun. ACM 5(7), 394–397 (1962)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: A theorem prover for program checking. Journal of the ACM 52(3), 365–473 (2005)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Dutertre, B., de Moura, L.: The Yices SMT solver. Technical report, SRI International (2006)Google Scholar
  11. 11.
    Eén, N., Sörensen, N.: An extensible SAT solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, Springer, Heidelberg (2004)Google Scholar
  12. 12.
    Krstić, S., Goel, A., Grundy, J., Tinelli, C.: Combined satisfiability modulo parametric theories. In: TSDM 2000. LNCS, vol. 4424, Springer, Heidelberg (2007)Google Scholar
  13. 13.
    Mitchell, J.C.: Foundations of Programming Languages. MIT Press, Cambridge (1996)Google Scholar
  14. 14.
    Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: engineering an efficient sat solver. In: Conference on Design Automation (DAC), ACM Press, New York (2001)Google Scholar
  15. 15.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems 1(2), 245–257 (1979)zbMATHCrossRefGoogle Scholar
  16. 16.
    Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Solving SAT and SAT Modulo Theories: From an abstract Davis-Putnam-Logemann-Loveland procedure to DPLL(T). Journal of the ACM 53(6), 937–977 (2006)CrossRefMathSciNetGoogle Scholar
  17. 17.
    Ranise, S., Ringeissen, C., Zarba, C.G.: Combining data structures with nonstably infinite theories using many-sorted logic. In: Gramlich, B. (ed.) Frontiers of Combining Systems. LNCS (LNAI), vol. 3717, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Reynolds, J.C.: Types, abstraction and parametric polymorphism. In: Mason, R.E.A., (ed.) Information Processing: 9th World Computer Congress, pp. 513–523. North-Holland (1983)Google Scholar
  19. 19.
    Tinelli, C., Harandi, M.: A new correctness proof of the Nelson-Oppen combination procedure. In: Frontiers of Combining Systems (FroCoS), vol. 3 of Applied Logic, pp. 103–120 (1996)Google Scholar
  20. 20.
    Tinelli, C., Zarba, C.: Combining nonstably infinite theories. Journal of Automated Reasoning 34(3), 209–238 (2005)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Sava Krstić
    • 1
  • Amit Goel
    • 1
  1. 1.Strategic CAD Labs, Intel Corporation 

Personalised recommendations