Proof Generation in the Touchstone Theorem Prover
 George C. Necula,
 Peter Lee
 … show all 2 hide
Abstract
The ability of a theorem prover to generate explicit derivations for the theorems it proves has major benefits for the testing and maintenance of the prover. It also eliminates the need to trust the correctness of the prover at the expense of trusting a much simpler proof checker. However, it is not always obvious how to generate explicit proofs in a theorem prover that uses decision procedures whose operation does not directly model the axiomatization of the underlying theories. In this paper we describe the modifications that are necessary to support proof generation in a congruenceclosure decision procedure for equality and in a Simplexbased decision procedure for linear arithmetic. Both of these decision procedures have been integrated using a modified NelsonOppen cooperation mechanism in the Touchstone theorem prover, which we use to produce proofcarrying code. Our experience with designing and implementing Touchstone is that proof generation has a relatively low cost in terms of design complexity and proving time and we conclude that the softwareengineering benefits of proof generation clearly outweighs these costs.
 Ackermann, W. (1954) Solvable Cases of the Decision Problem. NorthHolland, Amsterdam
 Aspvall, B., Shiloach, Y. (1980) A polynomial time algorithm for solving systems of linear inequalities with two variables per inequality. SIAM Journal on Computing 9: pp. 827845 CrossRef
 Bledsoe, W.W.: The SupInf method in Presurger arithmetic. Technical report. University of Texas Math Dept. (December 1974)
 Boyer, R., Moore, J.S. (1979) A Computational Logic. Academic Press, London
 Boulton, R.J.: A lazy approach to fullyexpansive theorem proving. In: International Workshop on Higher Order Logic Theorem Proving and its Applications, Leuven, Belgium, pp. 19–38. North Holland, Amsterdam (1992) IFIP Transactions
 Boulton, R.J.: Efficiency in a FullyExpansive Theorem Prover. PhD thesis. University of Cambridge (December 1993)
 Boulton, R.J. Combining decision procedures in the HOL system. In: Schubert, E.T., AlvesFoss, J., Windley, P. eds. (1995) Higher Order Logic Theorem Proving and Its Applications. Springer, Heidelberg, pp. 7589
 Detlefs, D.L., Rustan, K., Leino, M., Nelson, G., Saxe, J.B.: Extended static checking. SRC Research Report 159, Compaq Systems Research Center, 130 Lytton Ave., Palo Alto (December 1998)
 Downey, P.J., Sethi, R., Tarjan, R.E. (1980) Variations on the common subexpressions problem. Journal of the ACM 27: pp. 758771 CrossRef
 Gordon, M.: HOL: A machine oriented formulation of higherorder logic. Technical Report 85. University of Cambridge, Computer Laboratory (July 1985)
 Harper, R., Honsell, F., Plotkin, G. (1993) A framework for defining logics. Journal of the Association for Computing Machinery 40: pp. 143184
 Miller, D. (1991) A logic programming language with lambdaabstraction, function variables, and simple unification. Journal of Logic and Computation 1: pp. 497536 CrossRef
 Miller, D., Nadathur, G., Pfenning, F., Scedrov, A. (1991) Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic 51: pp. 125157 CrossRef
 Necula, G.C. (1997) Proofcarrying code. The 24th Annual ACM Symposium on Principles of Programming Languages. ACM, New York, pp. 106119 CrossRef
 Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie Mellon University (September 1998), Also available as CMUCS98154
 Nelson, G.: Techniques for program verification. Technical Report CSL 8110, Xerox Palo Alto Research Center (1981)
 Nelson, G., Oppen, D. (1979) Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems 1: pp. 245257 CrossRef
 Nelson, G., Oppen, D.C. (1980) Fast decision procedures based on congruence closure. Journal of the Association for Computing Machinery 27: pp. 356364
 Owre, S., Rushby, J.M., Shankar, N. PVS: A prototype verification system. In: Kapur, D. eds. (1992) Automated Deduction  CADE11. Springer, Heidelberg, pp. 748752
 Paulson, L.C. (1994) Isabelle: A generic theorem prover. Springer, Heidelberg
 Pfenning, F. Logic programming in the LF logical framework. In: Huet, G., Plotkin, G. eds. (1991) Logical Frameworks. Cambridge University Press, Cambridge, pp. 149181 CrossRef
 Pfenning, F. Elf: A metalanguage for deductive systems (system description). In: Bundy, A. eds. (1994) Automated Deduction  CADE12. Springer, Heidelberg, pp. 811815
 Pratt, V.R.: Two easy theories whose combination is hard(1977) (unpublished manuscript)
 Stump, A., Dill, D.L.: Generating proofs from a decision procedure. In: Pnueli, A., Traverso, P. (eds.) Proceedings of the FLoC Workshop on RunTime Result Verifiication, Trento, Italy (July 1999)
 Shostak, R. (1981) Deciding linear inequalities by computing loop residues. Journal of the ACM 28: pp. 769779 CrossRef
 Title
 Proof Generation in the Touchstone Theorem Prover
 Book Title
 Automated Deduction  CADE17
 Book Subtitle
 17th International Conference on Automated Deduction Pittsburgh, PA, USA, June 1720, 2000. Proceedings
 Pages
 pp 2544
 Copyright
 2000
 DOI
 10.1007/10721959_3
 Print ISBN
 9783540676645
 Online ISBN
 9783540451013
 Series Title
 Lecture Notes in Computer Science
 Series Volume
 1831
 Series ISSN
 03029743
 Publisher
 Springer Berlin Heidelberg
 Copyright Holder
 SpringerVerlag Berlin Heidelberg
 Additional Links
 Topics
 Industry Sectors
 eBook Packages
 Editors

 David McAllester ^{(6)}
 Editor Affiliations

 6. Toyota Technological Institute at Chicago
 Authors

 George C. Necula ^{(7)}
 Peter Lee ^{(8)}
 Author Affiliations

 7. Electrical Engineering and Computer Science Department, University of California, Berkeley, CA, 94720, USA
 8. School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, 15213, USA
Continue reading...
To view the rest of this content please follow the download PDF link above.