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.
Similar content being viewed by others
References
Abrahams, P., Machine Verification of Mathematical Proof. Doctoral Dissertion, MIT (1963).
Aho, Alfred V., Hopcroft, J. E. and Ullman, J. D., The Design and Analysis of Computer Algorithms. Addison-Wesley (1974).
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).
Bates, J. L., A Logic for Correct Program Development, Doctoral Dissertation, Cornell University (1979).
Bledsoe, W. ‘Non-Resolution Theorem Proving,’ Artificial Intelligence 9, 1–36 (1977).
Boyer, R. S. and Moore, J S., A Computational Logic. Academic Press, N.Y. (1979).
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).
Brouwer, L. E. J., Collected Works. Vol. 1 (A. Heyting, ed.) North-Holland (1975).
Cohn, A. J., Machine Assisted Proofs of Recursion Implementation. Doctoral Dissertation, University of Edingburgh (1980).
Constable, R. L., and Bates, J. L., ‘The Nearly Ultimate PRL.’ Department of Computer Science Technical Report, TR 83-551, Cornell University (January 1984).
Constable, R. L., ‘Universally Closed Classes of Total computable Functions.’ Department of Computer Science Technical Report, TR 84-640, Cornell University (1984).
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).
Davis, M. and Schwartz, J. T. ‘Metamathematical Extensibility for Theorem Verifers and Proof Checkers.’ Comp. and Math. With Applications 5, 217–230 (1979).
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).
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).
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).
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).
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).
Gentzen, G., ‘Investigations Into Logical Deduction.’ Reprinted in The collected Papers of Gerhard Gentzen, (M. E.Szabo, ed.) North-Holland, Amsterdam, 68–131 (1969).
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).
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).
Gödel, K., ‘On the Length of Proofs.’ In The Undecidable (M.Davis, ed.) Raven Press, Hewlett, N.Y., 82–83 (1965).
Gordon, M., Milner, R., and Wadsworth, C., Edinburgh LCF: A Mechanized Logic of Computation. Lecture Notes in Computer Science, Vol. 78, Springer-Verlag (1979).
Griffen, T., Personal communication (June 1984).
Harper, R., Aspects of the Implementation of Type Theory, Doctoral Dissertation, Cornell University (1985).
Hartmanis, J, Feasible Computations and Probable Complexity Properties, SIAM, Philadelphia, PA (1978).
Hilbert D. and Bernays, P., Grundlagen der Matermatik I. Springer-Verlag (1968).
Jutting, L. S., Checking Landau's ‘Grundlagen’ in the AUTOMATH System. Doctoral Dissertation, Eindhoven University, Mathematics Centre Tracts, Number 83, Mathematics Centre, Amsterdam (1979).
Keyser, C. J., Review of Principia Mathematica. In Science, 35, pp. 110 ff. (1912).
Landau, E., Grundlagen der Analyses. Chelsea Publishing Co., N.Y. (1930).
Leibniz, Gottfried W., Logical Papers: A Selection. Edited and translated by G. H. R.Parkinson, eds Clarendon Press, Oxford (1966).
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).
Minsky, M., ‘Steps Toward Artificial Intelligence’. In Computers and Thought (E. Feigenbaum and J. Feldman, eds.) McGraw-Hill, 406–450 (1963).
Mulmuley, K., ‘A Mechanizable Theory for Existence Proofs of Inclusive Predicates.’ To appear in TCS.
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).
Paulson, L., Tactics and Tacticals in Cambridge LCF.’ University of Cambridge Computer Laboratory Technical Report Number 39 (1983).
Paulson, L., ‘Verifying the Unification Algorithm in LCF.’ Science of Computer Programming, 5, 143–169 (1985).
Poincaré, Henri, ‘La logique de l'infini,’ Scientia 12, 1–11 (1912).
Polya, G., How To Solve It. Princeton University Press (1945).
The PRL staff, PRL: Proof Refinement Logic Programmer's Manual. Computer Science Department, Cornell University (1984).
The PRL staff, Implementing Mathematics with the Nuprl Proof Development System. Computer Science Department, Cornell University (1985).
Robinson, J. A., ‘A Machine-Oriented Logic Based on the Resolution Principle.’ J. of the ACM, 12 (1) (1965).
Sasaki, James, ‘The Extraction and Optimization of Programs from Constructive Proofs. Doctoral Dissertation, Cornell University (to appear 1986).
Scherlis, W. L. and Scott, D. S., ‘First Steps Toward Inferential Programming,’ Proc. IFIP Congress, Paris (1983).
Siekmann, J., and Wrightson, G., Automation of Reasoning, Vols. I and II. Springer-Verlag (1983).
Smith, B., ‘A Reference Manual for the Environmental Theorem Prover, An Incarnation of AURA,’ Argonne National Laboratory, Technical Report (1984).
Sokolowski, S., ‘A Note on tactics in LCF.’ Internal Report CSR-140-83, University of Edinburgh (1983).
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).
Suppes, P., ‘University-level computer-assisted instruction at Stanford: 1968–1981.’ Institute for Mathematica Studies in the Social Sciences, Standford University (1981).
Teitelbaum, T. and Reps, T., ‘The Cornell Program Synthesizer: A syntax-Directed Programming Environment.’ Communications of the ACM 24 (9), 563–573 (September, 1981).
Wang, H., ‘Proving programs by pattern recognition—1.’ Communications of the ACM, 3 (4), 229–243 (1960).
Weyhrauch, R., ‘Prolegomena to a Theory of Formal Reasoning,’ Artificial Intelligence 13, 133–170 (1980).
Whitehead, A. N. and Russell, B., Principia Mathematica. Vol. 1, Cambridge University Press, Cambridge (1952).
Author information
Authors and Affiliations
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
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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00244273