Skip to main content

Validity checking for combinations of theories with equality

  • Conference paper
  • First Online:
Formal Methods in Computer-Aided Design (FMCAD 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1166))

Included in the following conference series:

Abstract

An essential component in many verification methods is a fast decision procedure for validating logical expressions. This paper presents the algorithm used in the Stanford Validity Checker (SVC) which has been used to aid several realistic hardware verification efforts. The logic for this decision procedure includes Boolean and uninterpreted functions and linear arithmetic. We have also successfully incorporated other interpreted functions, such as array operations and linear inequalities. The primary techniques which allow a complete and efficient implementation are expression sharing, heuristic rewriting, and congruence closure with interpreted functions. We discuss these techniques and present the results of initial experiments in which SVC is used as a decision procedure in PVS, resulting in dramatic speed-ups.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. R. Burch and D. L. Dill, “Automatic Verification of Microprocessor Control”, In Computer Aided Verification, 6th International Conference, 1994.

    Google Scholar 

  2. D. Cyrluk, P. Lincoln and N. Shankar, “On Shostak's Decision Procedure for Combinations of Theories”, Proceedings of the 13th International Conference on Automated Deduction, New Brunswick, NJ, July 1996, 463–477.

    Google Scholar 

  3. A. J. J. Dick, “An Introduction to Knuth-Bendix Completion”, The Computer Journal 34(1):2–15, 1991.

    Google Scholar 

  4. P. J. Downey, R. Sethi and R. E. Tarjan, “Variations on the Common Subexpression Problem”, Journal of the ACM, 27(4):758–771, 1980.

    Google Scholar 

  5. K. Havelund and N. Shankar, “Experiments in Theorem Proving and Model Checking for Protocol Verification”, In Proceedings of Formal Methods Europe, March 1996, 662–681.

    Google Scholar 

  6. R. B. Jones, D. L. Dill and J. R. Burch, “Efficient Validity Checking for Processor Verification”, IEEE/ACM International Conference on Computer Aided Design, 1995.

    Google Scholar 

  7. D. E. Knuth and P. B. Bendix, “Simple Word Problems in Universal Algebras”, In Computational Problems in Abstract Algebra, ed. J. Leech, 263–297, Pergamon Press, 1970.

    Google Scholar 

  8. Z. Manna, et al., “STeP: the Stanford Temporal Prover”, Technique Report STAN-CS-TR-94, Computer Science Department, Stanford, 1994.

    Google Scholar 

  9. G. Nelson and D. C. Oppen, “Simplification by Cooperating Decision Procedures”, ACM Transactions on Programming Languages and Systems, 1(2):245–257, 1979.

    Google Scholar 

  10. G. Nelson, D. Detlefs, K. R. M. Leino and J. Saxe, “Extended Static Checking Home page”, 〈URL:http://www.research.digital.com/SRC/esc/Esc.html〉, 1996.

    Google Scholar 

  11. S. Owre, et al., “Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS”, IEEE Transactions of Software Engineering, 21(2):107–125, 1995.

    Google Scholar 

  12. R. E. Shostak, “An Algorithm for Reasoning About Equality”, Communications of the ACM, 21(7):583–585, 1978.

    Google Scholar 

  13. R. E. Shostak, “Deciding Combinations of Theories”, Journal of the ACM, 31(1):1–12, 1984.

    Google Scholar 

  14. R. E. Tarjan, “Efficiency of a Good but not Linear Set Union Algorithm”, Journal of the ACM, 22(2):215–225, 1975.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mandayam Srivas Albert Camilleri

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Barrett, C., Dill, D., Levitt, J. (1996). Validity checking for combinations of theories with equality. In: Srivas, M., Camilleri, A. (eds) Formal Methods in Computer-Aided Design. FMCAD 1996. Lecture Notes in Computer Science, vol 1166. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0031808

Download citation

  • DOI: https://doi.org/10.1007/BFb0031808

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61937-6

  • Online ISBN: 978-3-540-49567-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics