Combining Shostak Theories

  • Natarajan Shankar
  • Harald Rueß
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2378)


Ground decision procedures for combinations of theories are used in many systems for automated deduction. There are two basic paradigms for combining decision procedures. The Nelson-Oppen method combines decision procedures for disjoint theories by exchanging equality information on the shared variables. In Shostak’s method, the combination of the theory of pure equality with canonizable and solvable theories is decided through an extension of congruence closure that yields a canonizer for the combined theory. Shostak’s original presentation, and others that followed it, contained serious errors which were corrected for the basic procedure by the present authors. Shostak also claimed that it was possible to combine canonizers and solvers for disjoint theories. This claim is easily verifiable for canonizers, but is unsubstantiated for the case of solvers. We show how our earlier procedure can be extended to combine multiple disjoint canonizable, solvable theories within the Shostak framework.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BDL96]
    Clark Barrett, David Dill, and Jeremy Levitt. Validity checking for combinations of theories with equality. In Mandayam Srivas and Albert Camilleri, editors, Formal Methods in Computer-Aided Design (FMCAD’ 96), volume 1166 of Lecture Notes in Computer Science, pages 187–201, Palo Alto, CA, November 1996. Springer-Verlag.CrossRefGoogle Scholar
  2. [BDS02]
    Clark W. Barrett, David L. Dill, and Aaron Stump. A generalization of Shostak’s method for combining decision procedures. In A. Armando, editor, Frontiers of Combining Systems, 4th International Workshop, FroCos 2002, number 2309 in Lecture Notes in Artificial Intelligence, pages 132–146, Berlin, Germany, April 2002. Springer-Verlag.Google Scholar
  3. [Bjø99]
    Nikolaj Bjørner. Integrating Decision Procedures for Temporal Verification. PhD thesis, Stanford University, 1999.Google Scholar
  4. [BS96]
    F. Baader and K. Schulz. Unification in the union of disjoint equational theories: Combining decision procedures. J. Symbolic Computation, 21:211–243, 1996.MATHCrossRefMathSciNetGoogle Scholar
  5. [BTV02]
    Leo Bachmair, Ashish Tiwari, and Laurent Vigneron. Abstract congruence closure. Journal of Automated Reasoning, 2002. To appear.Google Scholar
  6. [CLS96]
    David Cyrluk, Patrick Lincoln, and N. Shankar. On Shostak’s decision procedure for combinations of theories. In M. A. McRobbie and J. K. Slaney, editors, Automated Deduction—CADE-13, volume 1104 of Lecture Notes in Artificial Intelligence, pages 463–477, New Brunswick, NJ, July/August 1996. Springer-Verlag.Google Scholar
  7. [DST80]
    P.J. Downey, R. Sethi, and R.E. Tarjan. Variations on the common subexpressions problem. Journal of the ACM, 27(4):758–771, 1980.MATHCrossRefMathSciNetGoogle Scholar
  8. [FORS01]
    J.-C. Filliâtre, S. Owre, H. Rueß, and N. Shankar. ICS: Integrated Canonization and Solving. In G. Berry, H. Comon, and A. Finkel, editors, Computer-Aided Verification, CAV’ 2001, volume 2102 of Lecture Notes in Computer Science, pages 246–249, Paris, France, July 2001. Springer-Verlag.Google Scholar
  9. [FS02]
    Jonathan Ford and Natarajan Shankar. Formal verification of a combination decision procedure. In A. Voronkov, editor, Proceedings of CADE-19, Berlin, Germany, 2002. Springer-Verlag.Google Scholar
  10. [Gan02]
    Harald Ganzinger. Shostak light. In A. Voronkov, editor, Proceedings of CADE-19, Berlin, Germany, 2002. Springer-Verlag.Google Scholar
  11. [Kap97]
    Deepak Kapur. Shostak’s congruence closure as completion. In H. Comon, editor, International Conference on Rewriting Techniques and Applications, RTA ‘97, number 1232 in Lecture Notes in Computer Science, pages 23–37, Berlin, 1997. Springer-Verlag.Google Scholar
  12. [Koz77]
    Dexter Kozen. Complexity of finitely presented algebras. In Conference Record of the Ninth Annual ACM Symposium on Theory of Computing, pages 164–177, Boulder, Colorado, 2–4 May 1977.Google Scholar
  13. [Lev99]
    Jeremy R. Levitt. Formal Verification Techniques for Digital Systems. PhD thesis, Stanford University, 1999.Google Scholar
  14. [NO79]
    G. Nelson and D. C. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245–257, 1979.MATHCrossRefGoogle Scholar
  15. [NO80]
    G. Nelson and D. C. Oppen. Fast decision procedures based on congruence closure. Journal of the ACM, 27(2):356–364, 1980.MATHCrossRefMathSciNetGoogle Scholar
  16. [RS01]
    Harald Rueß and Natarajan Shankar. Deconstructing Shostak. In 16th Annual IEEE Symposium on Logic in Computer Science, pages 19–28, Boston, MA, July 2001. IEEE Computer Society.Google Scholar
  17. [Sha01]
    Natarajan Shankar. Using decision procedures with a higher-order logic. In Theorem Proving in Higher Order Logics: 14th International Conference, TPHOLs 2001, volume 2152 of Lecture Notes in Computer Science, pages 5–26, Edinburgh, Scotland, September 2001. Springer-Verlag. Available at CrossRefGoogle Scholar
  18. [Sho78]
    R. Shostak. An algorithm for reasoning about equality. Comm. ACM, 21:583–585, July 1978.Google Scholar
  19. [Sho84]
    Robert E. Shostak. Deciding combinations of theories. Journal of the ACM, 31(1):1–12, January 1984.Google Scholar
  20. [Tiw00]
    Ashish Tiwari. Decision Procedures in Automated Deduction. PhD thesis, State University of New York at Stony Brook, 2000.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Natarajan Shankar
    • 1
  • Harald Rueß
    • 1
  1. 1.SRI International Computer Science LaboratoryMenlo ParkUSA

Personalised recommendations