Reasoning About Functional Programs in Nuprl

There are two ways of reasoning about functional programs in the constructive type theory of the Nuprl proof development system. Nuprl can be used in a conventional program-verification mode, in which functional programs are written in a familiar style and then proven to be correct. It can also be used in an extraction mode, where programs are not written explicitly, but instead are extracted from mathematical proofs. Nuprl is the only constructive type theory to support both of these approaches. These approaches are illustrated by applying Nuprl to Boyer and Moore's “majority” algorithm.

[1]  S. Feferman A Language and Axioms for Explicit Mathematics , 1975 .

[2]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[3]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[4]  Robert L. Constable,et al.  The semantics of reflected proof , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[5]  Douglas James Howe Automating reasoning in an implementation of constructive type theory , 1988 .

[6]  Stuart Allen A Non-Type-Theoretic Definition of Martin-Löf's Types , 1987, LICS.

[7]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[8]  David A. Basin,et al.  Some Normalization Properties of Martin-Löf's Type Theory, and Applications , 1991, TACS.

[9]  Robin Milner,et al.  Definition of standard ML , 1990 .

[10]  Robert S. Boyer,et al.  MJRTY: A Fast Majority Vote Algorithm , 1991, Automated Reasoning: Essays in Honor of Woody Bledsoe.

[11]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[12]  Douglas J. Howe The Computational Behaviour of Girard's Paradox , 1987, LICS.

[13]  David A. Basin,et al.  Verification Of Combinational Logic in Nuprl , 1989, Hardware Specification, Verification and Synthesis.

[14]  Robert E. Shostak,et al.  On the SUP-INF Method for Proving Presburger Formulas , 1977, JACM.

[15]  Paul B. Jackson Nuprl and Its Use in Circuit Design , 1992, TPCD.

[16]  Douglas J. Howe Equality in lazy computation systems , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[17]  Robert L. Constable,et al.  Partial Objects In Constructive Type Theory , 1987, Logic in Computer Science.

[18]  S. Allen A Non-Type-Theoretic Semantics for Type-Theoretic Language , 1987 .

[19]  Douglas J. Howe On computational open-endedness in Martin-Lof's type theory , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[20]  Robert L. Constable,et al.  Nuprl as a General Logic , 1989 .

[21]  Chetan R. Murthy An evaluation semantics for classical proofs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[22]  Douglas J. Howe,et al.  Implementing Metamathematics as an Approach to Automatic Theorem Proving , 1989 .

[23]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[24]  Jawahar Chirimar,et al.  Implementing Constructive Real Analysis: Preliminary Report , 1992, Constructivity in Computer Science.

[25]  Douglas J. Howe Computational Metatheory in Nuprl , 1988, CADE.

[26]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .