Computational metatheory in Nuprl

  • Douglas J. Howe
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 310)


This paper describes an implementation within Nuprl of mechanisms that support the use of Nuprl's type theory as a language for constructing theorem-proving procedures. The main component of the implementation is a large library of definitions, theorems and proofs. This library may be regarded as the beginning of a book of formal mathematics; it contains the formal development and explanation of a useful subset of Nuprl's metatheory, and of a mechanism for translating results established about this embedded metatheory to the object level. Nuprl's rich type theory, besides permitting the internal development of this partial reflection mechanism, allows us to make abstractions that drastically reduce the burden of establishing the correctness of new theorem-proving procedures. Our library includes a formally verified term-rewriting system.

Key words and phrases

Theorem proving tactics type theory reflection formal metamathematics constructive mathematics 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Errett Bishop. Foundations of Constructive Analysis. McGraw-Hill, New York, 1967.Google Scholar
  2. [2]
    R. S. Boyer and J Strother Moore. Metafunctions: proving them correct and using them efficiently as new proof procedures. In R. S. Boyer and J Strother Moore, editors, The Correctness Problem in Computer Science, chapter 3, Academic Press, 1981.Google Scholar
  3. [3]
    Robert L. Constable and Scott F. Smith. Partial objects in constructive type theory. In Proceedings of the Second Annual Symposium on Logic in Computer Science, IEEE, 1987.Google Scholar
  4. [4]
    Robert L. Constable, et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.Google Scholar
  5. [5]
    Martin Davis and Jacob T. Schwartz. Metamathematical extensibility for theorem verifiers and proof-checkers. Computers and Mathematics with Applications, 5:217–230, 1979.CrossRefGoogle Scholar
  6. [6]
    N.G. de Bruijn. The mathematical language AUTOMATH, its usage and some of its extensions. In Symposium on Automatic Demonstration, Lecture Notes in Mathematics vol. 125, pages 29–61, Springer-Verlag, New York, 1970.Google Scholar
  7. [7]
    Michael J. Gordon, Robin Milner, and Christopher P. Wadsworth. Edinburgh LCF: A Mechanized Logic of Computation. Volume 78 of Lecture Notes in Computer Science, Springer-Verlag, 1979.Google Scholar
  8. [8]
    Robert Harper, Furio Honsell, and Gordon Plotkin. A framework for defining logics. In The Second Annual Symposium on Logic in Computer Science, IEEE, 1987.Google Scholar
  9. [9]
    Douglas J. Howe. Automating Reasoning in an Implementation of Constructive Type Theory. PhD thesis, Cornell University, 1988.Google Scholar
  10. [10]
    Todd B. Knoblock. Metamathematical Extensibility in Type Theory. PhD thesis, Cornell University, 1987.Google Scholar
  11. [11]
    Todd B. Knoblock and Robert L. Constable. Formalized metareasoning in type theory. In Proceedings of the First Annual Symposium on Logic in Computer Science, IEEE, 1986.Google Scholar
  12. [12]
    Per Martin-Löf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153–175, North Holland, Amsterdam, 1982.Google Scholar
  13. [13]
    Lawrence C. Paulson. A higher-order implementation of rewriting. Science of Computer Programming, 3:119–149, 1983.CrossRefGoogle Scholar
  14. [14]
    Richard W. Weyhrauch. Prolegomena to a theory of formal reasoning. Artificial Intelligence, 13:133–170, 1980.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Douglas J. Howe
    • 1
  1. 1.Department of Computer ScienceCornell UniversityIthaca

Personalised recommendations