Skip to main content
Log in

Writing programs that construct proofs

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

Abstract

When we learn mathematics, we learn more than definitions and theorems. We learn techniques of proof. In this paper, we describe a particular way to express these techniques and incorporate them into formal theories and into computer systems used to build such theories. We illustrate the methods as they were applied in the λ-PRL system, essentially using the ML programming language from Edinburgh LCF [23] as the formalised metalanguage. We report our experience with such an approach emphasizing the ideas that go beyond the LCF work, such as transformation tactics and special purpose reasoners. We also show how the validity of tactics can be guaranteed. The introduction places the work in historical context and the conclusion briefly describes plans to carry the methods further. The majority of the paper presents the λ-PRL approach in detail.

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. Abrahams, P., Machine Verification of Mathematical Proof. Doctoral Dissertion, MIT (1963).

  2. Aho, Alfred V., Hopcroft, J. E. and Ullman, J. D., The Design and Analysis of Computer Algorithms. Addison-Wesley (1974).

  3. Bates, J. L. and Constable, R. L., ‘Proofs as programs.’ ACM Transactions on Programming Languages and Systems, Vol. 7, No. 1, 113–136 (January, 1985).

    Google Scholar 

  4. Bates, J. L., A Logic for Correct Program Development, Doctoral Dissertation, Cornell University (1979).

  5. Bledsoe, W. ‘Non-Resolution Theorem Proving,’ Artificial Intelligence 9, 1–36 (1977).

    Google Scholar 

  6. Boyer, R. S. and Moore, J S., A Computational Logic. Academic Press, N.Y. (1979).

    Google Scholar 

  7. Boyer, R. S. and Moore, J S., ‘Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures.’ In The Correctness Problem in Computer Science (R. S.Boyer and J S.Moore eds) Academic Press, NY, 103–184 (1981).

    Google Scholar 

  8. Brouwer, L. E. J., Collected Works. Vol. 1 (A. Heyting, ed.) North-Holland (1975).

  9. Cohn, A. J., Machine Assisted Proofs of Recursion Implementation. Doctoral Dissertation, University of Edingburgh (1980).

  10. Constable, R. L., and Bates, J. L., ‘The Nearly Ultimate PRL.’ Department of Computer Science Technical Report, TR 83-551, Cornell University (January 1984).

  11. Constable, R. L., ‘Universally Closed Classes of Total computable Functions.’ Department of Computer Science Technical Report, TR 84-640, Cornell University (1984).

  12. Constable, R. L., Johnson, S. D., and Eichenlaub, C. D., Introduction to the PL/CV2 Programming Logic. Lecture Notes in Computer Science, Vol. 135, Springer-Verlag (1982).

  13. Davis, M. and Schwartz, J. T. ‘Metamathematical Extensibility for Theorem Verifers and Proof Checkers.’ Comp. and Math. With Applications 5, 217–230 (1979).

    Google Scholar 

  14. deBruijn, N. G., ‘A Survey of the Project AUTOMATH.’ In Essays on Combinatory Logic, Lambda Calculus and Formalism (J. P. Seldin and J. R. Hindley, eds) Academic Press, 589–606 (1980).

  15. deBruijn, J. G., ‘The Mathematical Language AUTOMATH, Its Usage and Some of its Extensions.’ In Symposium on Automatic Demonstration, Lecture Notes in Mathematics, Vol. 125, Springer-Verlag, 29–61 (1970).

    Google Scholar 

  16. De Millo, R. A., Lipton, R. J., and Perlis, A. J., ‘Social processes and proofs of theorems and programs.’ Communications of the ACM, 22 (5) (1979).

  17. Fischer, M. J., and Rabin, M. O., ‘Super-exponential complexity of Presburger arithmetic,’ SIAM-AMS Proceedings, vol. 7, American Math. Soc., Providence, R. I., 27–41 (1974).

    Google Scholar 

  18. Frege, G., Begriffsschrift, A Formula Language, Modeled Upon that for Arithmetic, for Pure Thought. Reprinted in From Frege to Gödel: A Source Book in Mathematical Logic, 1879–1931, (J.vanHeijenoort, ed.) Harvard University Press, Cambridge, Mass., 1–82 (1967).

    Google Scholar 

  19. Gentzen, G., ‘Investigations Into Logical Deduction.’ Reprinted in The collected Papers of Gerhard Gentzen, (M. E.Szabo, ed.) North-Holland, Amsterdam, 68–131 (1969).

    Google Scholar 

  20. Gödel, K. ‘The Completeness of the Axioms of the functional Calculus of Logic.’ Reprinted in From Frege to Gödel: A Source Book in Mathematical Logic, 1879–1931 (J.vanHeijenoort, ed.) Havard University Press, Cambridge, Mass., 583–591 (1967).

    Google Scholar 

  21. Gödel, K., ‘On formally undecidable propositions of Principia mathematica and related systems I.’ Reprinted in From Frege to Gödel: A Source Book in Mathematical Logic, 1879–1931 (J.vanHeijenoort, ed.), Havard University Press, Cambridge, Mass., 596–616 (1967).

    Google Scholar 

  22. Gödel, K., ‘On the Length of Proofs.’ In The Undecidable (M.Davis, ed.) Raven Press, Hewlett, N.Y., 82–83 (1965).

    Google Scholar 

  23. Gordon, M., Milner, R., and Wadsworth, C., Edinburgh LCF: A Mechanized Logic of Computation. Lecture Notes in Computer Science, Vol. 78, Springer-Verlag (1979).

  24. Griffen, T., Personal communication (June 1984).

  25. Harper, R., Aspects of the Implementation of Type Theory, Doctoral Dissertation, Cornell University (1985).

  26. Hartmanis, J, Feasible Computations and Probable Complexity Properties, SIAM, Philadelphia, PA (1978).

    Google Scholar 

  27. Hilbert D. and Bernays, P., Grundlagen der Matermatik I. Springer-Verlag (1968).

  28. Jutting, L. S., Checking Landau's ‘Grundlagen’ in the AUTOMATH System. Doctoral Dissertation, Eindhoven University, Mathematics Centre Tracts, Number 83, Mathematics Centre, Amsterdam (1979).

    Google Scholar 

  29. Keyser, C. J., Review of Principia Mathematica. In Science, 35, pp. 110 ff. (1912).

    Google Scholar 

  30. Landau, E., Grundlagen der Analyses. Chelsea Publishing Co., N.Y. (1930).

    Google Scholar 

  31. Leibniz, Gottfried W., Logical Papers: A Selection. Edited and translated by G. H. R.Parkinson, eds Clarendon Press, Oxford (1966).

    Google Scholar 

  32. McCarthy, J., ‘Computer Programs for Checking Mathematical Proofs,’ Proceedings of the Symposia in Pure Mathematics, Vol. V. Recursive Function Theory, American Mathematics Society, Providence, R.I., 219–228 (1962).

    Google Scholar 

  33. Minsky, M., ‘Steps Toward Artificial Intelligence’. In Computers and Thought (E. Feigenbaum and J. Feldman, eds.) McGraw-Hill, 406–450 (1963).

  34. Mulmuley, K., ‘A Mechanizable Theory for Existence Proofs of Inclusive Predicates.’ To appear in TCS.

  35. Newell, A., Shaw, M., and Simon, H., ‘Empirical explorations with the logic theory machine.’ In Computers and Thought (E. Feigenbaum and J. Feldman, eds.) McGraw-Hill, 109–133 (1963).

  36. Paulson, L., Tactics and Tacticals in Cambridge LCF.’ University of Cambridge Computer Laboratory Technical Report Number 39 (1983).

  37. Paulson, L., ‘Verifying the Unification Algorithm in LCF.’ Science of Computer Programming, 5, 143–169 (1985).

    Google Scholar 

  38. Poincaré, Henri, ‘La logique de l'infini,’ Scientia 12, 1–11 (1912).

    Google Scholar 

  39. Polya, G., How To Solve It. Princeton University Press (1945).

  40. The PRL staff, PRL: Proof Refinement Logic Programmer's Manual. Computer Science Department, Cornell University (1984).

  41. The PRL staff, Implementing Mathematics with the Nuprl Proof Development System. Computer Science Department, Cornell University (1985).

  42. Robinson, J. A., ‘A Machine-Oriented Logic Based on the Resolution Principle.’ J. of the ACM, 12 (1) (1965).

  43. Sasaki, James, ‘The Extraction and Optimization of Programs from Constructive Proofs. Doctoral Dissertation, Cornell University (to appear 1986).

  44. Scherlis, W. L. and Scott, D. S., ‘First Steps Toward Inferential Programming,’ Proc. IFIP Congress, Paris (1983).

  45. Siekmann, J., and Wrightson, G., Automation of Reasoning, Vols. I and II. Springer-Verlag (1983).

  46. Smith, B., ‘A Reference Manual for the Environmental Theorem Prover, An Incarnation of AURA,’ Argonne National Laboratory, Technical Report (1984).

  47. Sokolowski, S., ‘A Note on tactics in LCF.’ Internal Report CSR-140-83, University of Edinburgh (1983).

  48. Sokolwski, S., ‘An LCF Proof of Soundness of Hoare's Logic—A paper without a Happy Ending.’ Internal Report CSR-146-83, University of Edinburgh (1983).

  49. Suppes, P., ‘University-level computer-assisted instruction at Stanford: 1968–1981.’ Institute for Mathematica Studies in the Social Sciences, Standford University (1981).

  50. Teitelbaum, T. and Reps, T., ‘The Cornell Program Synthesizer: A syntax-Directed Programming Environment.’ Communications of the ACM 24 (9), 563–573 (September, 1981).

    Google Scholar 

  51. Wang, H., ‘Proving programs by pattern recognition—1.’ Communications of the ACM, 3 (4), 229–243 (1960).

    Google Scholar 

  52. Weyhrauch, R., ‘Prolegomena to a Theory of Formal Reasoning,’ Artificial Intelligence 13, 133–170 (1980).

    Google Scholar 

  53. Whitehead, A. N. and Russell, B., Principia Mathematica. Vol. 1, Cambridge University Press, Cambridge (1952).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Department of Computer Science Technical Report TR84-645. This research supported in part by the National Science Foundation under grant MCS-81-04018.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Constable, R.L., Knoblock, T.B. & Bates, J.L. Writing programs that construct proofs. J Autom Reasoning 1, 285–326 (1985). https://doi.org/10.1007/BF00244273

Download citation

  • Received:

  • Issue Date:

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

Key words

Navigation