Skip to main content
Log in

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

  • Problem Corner
  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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.

  2. Boyer, R. S. and Moore, J S. (1979). A Computational Logic, Academic Press, New York.

    Google Scholar 

  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.

  4. Boyer, R. S. and Moore, J S. (1988). A Computational Logic Handbook, Academic Press, Boston.

    Google Scholar 

  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.

  6. Constable, R. L. et al. (1986). Implementing Mathematics with the Nuprl Proof Development System, Prentice Hall, 1986.

  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. Gordon, M. J., Milner, A. J. and Wadsworth, C. P. (1979). Edinburgh LCF. Springer-Verlag, New York.

    Google Scholar 

  9. Gordon, M. (1987). HOL: A Proof Generating System for Higher-Order Logic, Technical Report 103, University of Cambridge, Computer Laboratory.

  10. Howe, D. J. (1988), ‘Computational metatheory in Nuprl’, In 9th International Conference on Automated Deduction, Springer-Verlag, pp. 238–257.

  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. 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. 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. Knoblock, T. B. (to appear). ‘A formal metalanguage for NuPrl’.

  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.

  16. Moore, J S. (1989). ‘System verification’, Journal of Automated Reasoning 5(4), 409–410.

    CAS  Google Scholar 

  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. 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. Shankar, N. (1985). ‘Towards mechanical metamathematics’, Journal of Automated Reasoning 1(4), 407–434

    Google Scholar 

  20. Steele, G. L. Jr. (1984). Common Lisp: The Language, Digital Press.

  21. Weyhrauch, R. W. (1980). ‘Prolegomena to a theory of formal reasoning’, Artificial Intelligence 13, 133–170.

    Google Scholar 

  22. Yu, Y. (1990). ‘Computer proofs in group theory’, Journal of Automated Reasoning 6(3), 251–286.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was supported in part by ONR Contrast N00014-88-C-0454. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of Computational Logic, Inc., the Office of Naval Research or the U.S. Government.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kaufmann, M. Generalization in the presence of free variables: A mechanically-checked correctness proof for one algorithm. J Autom Reasoning 7, 109–158 (1991). https://doi.org/10.1007/BF00249356

Download citation

  • Received:

  • Issue Date:

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

Key words

Navigation