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.
Preview
Unable to display preview. Download preview PDF.
References
J. R. Burch and D. L. Dill, “Automatic Verification of Microprocessor Control”, In Computer Aided Verification, 6th International Conference, 1994.
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.
A. J. J. Dick, “An Introduction to Knuth-Bendix Completion”, The Computer Journal 34(1):2–15, 1991.
P. J. Downey, R. Sethi and R. E. Tarjan, “Variations on the Common Subexpression Problem”, Journal of the ACM, 27(4):758–771, 1980.
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.
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.
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.
Z. Manna, et al., “STeP: the Stanford Temporal Prover”, Technique Report STAN-CS-TR-94, Computer Science Department, Stanford, 1994.
G. Nelson and D. C. Oppen, “Simplification by Cooperating Decision Procedures”, ACM Transactions on Programming Languages and Systems, 1(2):245–257, 1979.
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.
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.
R. E. Shostak, “An Algorithm for Reasoning About Equality”, Communications of the ACM, 21(7):583–585, 1978.
R. E. Shostak, “Deciding Combinations of Theories”, Journal of the ACM, 31(1):1–12, 1984.
R. E. Tarjan, “Efficiency of a Good but not Linear Set Union Algorithm”, Journal of the ACM, 22(2):215–225, 1975.
Author information
Authors and Affiliations
Editor information
Rights 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