Exercising Nuprl's Open-Endedness

Nuprl is an interactive theorem prover that implements an extensional constructive type theory, where types are interpreted as partial equivalence relations on closed terms. Nuprl is both computationally and type-theoretically open-ended in the sense that both its computation system and its type theory can be extended as needed by checking a handful of conditions. For example, Doug Howe characterized the computations that can be added to Nuprl in order to preserve the congruence of its computational equivalence relation. We have implemented Nuprl’s computation and type systems in Coq, and we have showed among other things that it is consistent. Using our Coq framework we can now easily and rigorously add new computations and types to Nuprl by mechanically verifying that all the necessary conditions still hold. We have recently exercised Nuprl’s open-endedness by adding nominal features to Nuprl in order to prove a version of Brouwer’s continuity principle, as well as choice sequences in order to prove truncated versions of the axiom of choice and of Brouwer’s bar induction principle. This paper illustrate the process of extending Nuprl with versions of the axiom of choice.

[1]  Mark Bickford,et al.  A Type Theory with Partial Equivalence Relations as Types , 2014 .

[2]  Georg Kreisel,et al.  Transfinite induction and bar induction of types zero and one, and the role of continuity in intuitionistic analysis , 1966, Journal of Symbolic Logic.

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

[4]  Scott F. Smith Partial Objects in Type Theory , 1988 .

[5]  Thierry Coquand,et al.  On the computational content of the axiom of choice , 1994, The Journal of Symbolic Logic.

[6]  A. Troelstra,et al.  Constructivism in Mathematics: An Introduction , 1988 .

[7]  Robert L. Constable,et al.  Constructive Mathematics as a Programming Logic I: Some Principles of Theory , 1983, FCT.

[8]  Martín Hötzel Escardó,et al.  The Inconsistency of a Brouwerian Continuity Principle with the Curry-Howard Interpretation , 2015, TLCA.

[9]  M. Hofmann Extensional concepts in intensional type theory , 1995 .

[10]  Douglas J. Howe Importing Mathematics from HOL into Nuprl , 1996, TPHOLs.

[11]  Georg Kreisel,et al.  On weak completeness of intuitionistic predicate logic , 1962, Journal of Symbolic Logic.

[12]  Abhishek Anand,et al.  Towards a Formally Verified Proof Assistant , 2014, ITP.

[13]  Ulf Norell,et al.  A Brief Overview of Agda - A Functional Language with Dependent Types , 2009, TPHOLs.

[14]  A. S. Troelstra,et al.  A note on non-extensional operations in connection with continuity and recursiveness , 1977 .

[15]  S. C. Kleene,et al.  The foundations of intuitionistic mathematics : especially in relation to recursive functions , 1965 .

[16]  Edwin Brady,et al.  IDRIS ---: systems programming meets full dependent types , 2011, PLPV '11.

[17]  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.

[18]  M. Dummett Elements of Intuitionism , 2000 .

[19]  Magnus O. Myreen,et al.  Self-Formalisation of Higher-Order Logic , 2016, Journal of Automated Reasoning.

[20]  Mark Bickford,et al.  Coq as a Metatheory for Nuprl with Bar Induction , 2015 .

[21]  Wim Veldman,et al.  Understanding and Using Brouwer’s Continuity Principle , 2001 .

[22]  Michael Rathjen,et al.  Constructive Set Theory and Brouwerian Principles , 2005, J. Univers. Comput. Sci..

[23]  Mark Bickford,et al.  Formal Program Optimization in Nuprl Using Computational Equivalence and Partial Types , 2013, ITP.

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

[25]  Alexei Kopylov Type Theoretical Foundations for Data Structures, Classes, and Objects , 2004 .

[26]  Mark Bickford,et al.  A nominal exploration of intuitionism , 2016, CPP.

[27]  F. Richman,et al.  Varieties of Constructive Mathematics: CONSTRUCTIVE ALGEBRA , 1987 .

[28]  Aleksey Nogin,et al.  Formalizing Type Operations Using the "Image" Type Constructor , 2006, Electron. Notes Theor. Comput. Sci..

[29]  Robert L. Constable,et al.  Reflecting the Open-Ended Computation System of Constructive Type Theory , 1991 .

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

[31]  A. S. Troelstra,et al.  Aspects of Constructive Mathematics , 1977 .

[32]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[33]  Douglas J. Howe Semantic Foundations for Embedding HOL in Nuprl , 1996, AMAST.

[34]  Karl Crary Type-Theoretic Methodology for Practical Programming Languages , 1998 .

[35]  Wim Veldman,et al.  Brouwer’s Real Thesis on Bars , 2006 .

[36]  John Longley When is a functional program not a functional program? , 1999, ICFP '99.

[37]  Mark Bickford,et al.  Innovations in computational type theory using Nuprl , 2006, J. Appl. Log..