Formal Methods in System Design

, Volume 42, Issue 1, pp 67–90 | Cite as

Being careful about theory combination

  • Dejan Jovanović
  • Clark BarrettEmail author


One of the main shortcomings of traditional methods for combining theories is the complexity of guessing the arrangement of variables shared by the individual theories. This paper presents a reformulation of the Nelson-Oppen method that takes into account explicit equality propagation and can ignore pairs of shared variables that the theories do not care about. We show the correctness of the new approach and present care functions for the theory of uninterpreted functions and the theory of arrays. The effectiveness of the new method is illustrated by experimental results demonstrating a dramatic performance improvement on benchmarks combining arrays and bit-vectors.


Theory combination Nelson-Oppen Satisfiability modulo theories 


  1. 1.
    Barrett C, Nieuwenhuis R, Oliveras A, Tinelli C (2006) Splitting on demand in SAT modulo theories. In: Logic for programming, artificial intelligence, and reasoning. LNCS, vol 4246. Springer, Berlin, pp 512–526 CrossRefGoogle Scholar
  2. 2.
    Barrett C, Tinelli C (2007) CVC3. In computer aided verification. LNCS, vol 4590. Springer, Berlin, pp 298–302 CrossRefGoogle Scholar
  3. 3.
    Bozzano M, Bruttomesso R, Cimatti A, Junttila T, Ranise S, van Rossumd P, Sebastiani R (2006) Efficient theory combination via Boolean search. Inf Comput 204(10):1493–1525 zbMATHCrossRefGoogle Scholar
  4. 4.
    Brummayer R, Biere A (2009) Boolector: an efficient SMT solver for bit-vectors and arrays. In: Tools and algorithms for the construction and analysis of systems. LNCS, vol 5505. Springer, Berlin, pp 174–177 CrossRefGoogle Scholar
  5. 5.
    Bruttomesso R, Cimatti A, Franzén A, Griggio A, Sebastiani R (2008) The MathSAT 4 SMT solver. In: Computer aided verification. LNCS, vol 5123. Springer, Berlin, pp 299–303 CrossRefGoogle Scholar
  6. 6.
    Bruttomesso R, Cimatti A, Franzén A, Griggio A, Sebastiani R (2009) Delayed theory combination vs. Nelson-Oppen for satisfiability modulo theories: a comparative analysis. Ann Math Artif Intell 55(1):63–99 MathSciNetzbMATHCrossRefGoogle Scholar
  7. 7.
    de Moura L, Bjørner N (2008) Model-based theory combination. In: 5th international workshop on satisfiability modulo theories. Electronic notes in theoretical computer science, vol 198. Elsevier, Amsterdam, pp 37–49 Google Scholar
  8. 8.
    de Moura L, Bjørner N (2008) Z3: an efficient SMT solver. In: Tools and algorithms for the construction and analysis of systems. LNCS, vol 4963. Springer, Berlin, p 337 CrossRefGoogle Scholar
  9. 9.
    de Moura L, Bjørner N (2009) Generalized, efficient array decision procedures. In: Formal methods in computer-aided design. IEEE, New York, pp 45–52 Google Scholar
  10. 10.
    Dutertre B, de Moura L (2006) The YICES SMT solver. Tool paper at
  11. 11.
    Enderton HB (1972) A mathematical introduction to logic. Academic Press, New York zbMATHGoogle Scholar
  12. 12.
    Jovanović D, Barrett C (2010) Technical Report TR2010-922, Department of Computer Science, New York University, January 2010 Google Scholar
  13. 13.
    Jovanović D, Barrett C (2010) Polite theories revisited. In: Logic for programming, artificial intelligence, and reasoning. LNCS, vol 6397. Springer, Berlin, pp 402–416 CrossRefGoogle Scholar
  14. 14.
    Jovanović D, Barrett C (2011) Sharing is caring: combination of theories. In: Frontiers of combining systems, pp 195–210 CrossRefGoogle Scholar
  15. 15.
    Nelson G, Oppen DC (1979) Simplification by cooperating decision procedures. ACM Trans Program Lang Syst 1(2):245–257 zbMATHCrossRefGoogle Scholar
  16. 16.
    Oppen DC (1980) Complexity, convexity and combinations of theories. Theor Comput Sci 12(3):291–302 MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Rakamarić Z, Hu AJ (2009) A scalable memory model for low-level code. In: Verification, model checking, and abstract interpretation. LNCS, vol 5403. Springer, Berlin, p 304 Google Scholar
  18. 18.
    Ranise S, Ringeissen C, Calogero GZ (2005) Combining data structures with nonstably infinite theories using many-sorted logic. In: Frontiers of combining systems. LNCS, vol 3717. Springer, Berlin, pp 48–64 CrossRefGoogle Scholar
  19. 19.
    Shostak RE (1977) An algorithm for reasoning about equality. In: 5th international joint conference on artificial intelligence. Morgan Kaufmann, San Mateo, pp 526–527 Google Scholar
  20. 20.
    Tinelli C, Harandi MT (1996) A new correctness proof of the Nelson–Oppen combination procedure. In: Frontiers of combining systems, applied logic. Kluwer Academic, Dordrecht, pp 103–120 Google Scholar
  21. 21.
    Tinelli C, Zarba C (2004) Combining decision procedures for sorted theories. In: Logic in artificial intelligence. LNAI, vol 3229. Springer, Berlin, pp 641–653 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.New York UniversityNew YorkUSA

Personalised recommendations