Journal of Automated Reasoning

, Volume 7, Issue 1, pp 109–158 | Cite as

Generalization in the presence of free variables: A mechanically-checked correctness proof for one algorithm

  • Matt Kaufmann
Problem Corner

Abstract

We present a case study in which an automated proof assistant was used to show the correctness of an algorithm. Specifically, we document the application of an extension of the Boyer-Moore Theorem Prover to the problem of verifying the correctness of an implementation of generalization, where the proof had surprisingly many details and a previous implementation contained an error. We attempt to provide sufficient detail so that the reader can gain a realistic impression of the nature of this exercise.

Key words

Program verification case study generalization free variables proof-checking 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Boyer, R. S. and Moore, J S. (1985). Integrating Decision Procedures into Heuristic Theorem Provers: A Case Study of Linear Arithmetic, Technical Report ICSCA-CMP-44, University of Texas at Austin.Google Scholar
  2. 2.
    Boyer, R. S. and Moore, J S. (1979). A Computational Logic, Academic Press, New York.Google Scholar
  3. 3.
    Boyer, R. S. and Moore, J S. (1981). ‘Metafunctions: proving them correct and using them efficiently as new proof procedures’, The Correctness Problem in Computer Science, Academic Press, 103–185.Google Scholar
  4. 4.
    Boyer, R. S. and Moore, J S. (1988). A Computational Logic Handbook, Academic Press, Boston.Google Scholar
  5. 5.
    Boyer, R. S., Goldschlag, D. M., Kaufmann, M. and Moore, J S. (1989). Functional Instantiation in First Order Logic, Report 44, Technical Report, Computational Logic, 1717 W. 6th St., Austin, Texas, 78703, U.S.A., 1989. To appear in the Proceedings of the 1989 Workshop on Programming Logic, Programming Methodology Group, University of Gøteborg.Google Scholar
  6. 6.
    Constable, R. L. et al. (1986). Implementing Mathematics with the Nuprl Proof Development System, Prentice Hall, 1986.Google Scholar
  7. 7.
    Davis, M. and Schwartz, J. T. (1979), ‘Metamate'hmatical extensibility for theorem verifiers and proof-checkers’, Computers and Mathematics with Applications 5, 217–230.Google Scholar
  8. 8.
    Gordon, M. J., Milner, A. J. and Wadsworth, C. P. (1979). Edinburgh LCF. Springer-Verlag, New York.Google Scholar
  9. 9.
    Gordon, M. (1987). HOL: A Proof Generating System for Higher-Order Logic, Technical Report 103, University of Cambridge, Computer Laboratory.Google Scholar
  10. 10.
    Howe, D. J. (1988), ‘Computational metatheory in Nuprl’, In 9th International Conference on Automated Deduction, Springer-Verlag, pp. 238–257.Google Scholar
  11. 11.
    Kaufmann, M. (1988). A User's Manual for an Interactive Enhancement to the Boyer-Moore Theorem Prover. Technical Report 19, Computational Logic, Inc., Austin, Texas, May.Google Scholar
  12. 12.
    Kaufmann, M. (1989). Addition of Free Variables to an Interactive Enhancement of the Boyer-Moore Theorem Prover. Technical Report 42, Computational Logic, Inc., Austin, Texas, May.Google Scholar
  13. 13.
    Kaufmann, M. (1989). DEFN-SK: An Extension of the Boyer-Moore Theorem Prover to Handle First-Order Quantifiers. Technical Report 43, Computational Logic, Inc., Austin, Texas, June. Revision to appear as ‘An extension of the Boyer-Moore theorem prover, to support first-order quantification’, Journal of Automated Reasoning.Google Scholar
  14. 14.
    Knoblock, T. B. (to appear). ‘A formal metalanguage for NuPrl’.Google Scholar
  15. 15.
    Knoblock, T. B. and Constable, R. L. (1976). ‘Formalized metareasoning in type theory’, In Proceedings of the First Annual Symposium on Logic in Computer Science, IEEE.Google Scholar
  16. 16.
    Moore, J S. (1989). ‘System verification’, Journal of Automated Reasoning 5(4), 409–410.Google Scholar
  17. 17.
    Quaife, A. (1988). ‘Automated proofs of Loeb's Theorem and Goedel's two imcompleteness theorems’, Journal of Automated Reasoning 4, 219–231.Google Scholar
  18. 18.
    Kaufmann, M. (1990). Generalization in the Presence of Free Variables: a Mechanically-Checked Correctness Proof for One Algorithm, Technical Report 53, Computational Logic, Inc., Austin, Texas.Google Scholar
  19. 19.
    Shankar, N. (1985). ‘Towards mechanical metamathematics’, Journal of Automated Reasoning 1(4), 407–434Google Scholar
  20. 20.
    Steele, G. L. Jr. (1984). Common Lisp: The Language, Digital Press.Google Scholar
  21. 21.
    Weyhrauch, R. W. (1980). ‘Prolegomena to a theory of formal reasoning’, Artificial Intelligence 13, 133–170.Google Scholar
  22. 22.
    Yu, Y. (1990). ‘Computer proofs in group theory’, Journal of Automated Reasoning 6(3), 251–286.Google Scholar

Copyright information

© Kluwer Academic Publishers 1991

Authors and Affiliations

  • Matt Kaufmann
    • 1
  1. 1.Computational Logic Inc.AustinUSA

Personalised recommendations