Proof Generation in the Touchstone Theorem Prover
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 congruence-closure decision procedure for equality and in a Simplex-based decision procedure for linear arithmetic. Both of these decision procedures have been integrated using a modified Nelson-Oppen cooperation mechanism in the Touchstone theorem prover, which we use to produce proof-carrying 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 software-engineering benefits of proof generation clearly outweighs these costs.
Unable to display preview. Download preview PDF.
- Ble74.Bledsoe, W.W.: The Sup-Inf method in Presurger arithmetic. Technical report. University of Texas Math Dept. (December 1974)Google Scholar
- Bou92.Boulton, R.J.: A lazy approach to fully-expansive theorem proving. In: International Workshop on Higher Order Logic Theorem Proving and its Applications, Leuven, Belgium, pp. 19–38. North- Holland, Amsterdam (1992) IFIP TransactionsGoogle Scholar
- Bou93.Boulton, R.J.: Efficiency in a Fully-Expansive Theorem Prover. PhD thesis. University of Cambridge (December 1993)Google Scholar
- Bou95.Boulton, R.J.: Combining decision procedures in the HOL system. In: Schubert, E.T., Alves-Foss, J., Windley, P. (eds.) HUG 1995. LNCS, vol. 971, pp. 75–89. Springer, Heidelberg (1995)Google Scholar
- DLNS98.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)Google Scholar
- Gor85.Gordon, M.: HOL: A machine oriented formulation of higher-order logic. Technical Report 85. University of Cambridge, Computer Laboratory (July 1985)Google Scholar
- Nec98.Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie Mellon University (September 1998), Also available as CMU-CS-98-154Google Scholar
- Nel81.Nelson, G.: Techniques for program verification. Technical Report CSL- 81-10, Xerox Palo Alto Research Center (1981)Google Scholar
- ORS92.Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)Google Scholar
- Pfe94.Pfenning, F.: Elf: A meta-language for deductive systems (system description). In: Bundy, A. (ed.) CADE 1994. LNCS (LNAI), vol. 814, pp. 811–815. Springer, Heidelberg (1994)Google Scholar
- Pra77.Pratt, V.R.: Two easy theories whose combination is hard(1977) (unpublished manuscript)Google Scholar
- SD99.Stump, A., Dill, D.L.: Generating proofs from a decision procedure. In: Pnueli, A., Traverso, P. (eds.) Proceedings of the FLoC Workshop on Run-Time Result Verifiication, Trento, Italy (July 1999)Google Scholar