Home

Awesome

MAKEFILE

To generate a Makefile, run create_makefile.sh. This script requires bash v4. It will generate a Makefile for rules.v and its dependencies. Re-run create_makefile.sh everytime you pull to update the Makefile in case new files have been committed, or files have been moved around.

Then run "make" (or alternatively if your machine has multiple cores, run make -j n, where n is the number of cores you want to use) to compile everything. This will take a while.

Our implementation compiles with Coq version 8.9.1 (which you can get through opam).

DESCRIPTION

This library formalizes Nuprl's Constructive Type Theory (CTT) as of 2016. More information can be found about Nuprl on the Nuprl website. (Also check out JonPRL for an SML re-implementation of Nuprl.) As for Agda, Coq, and Idris, Nuprl implements a dependent type theory à la Martin-Löf. However, CTT is an extensional type theory originally inspired by Martin-Löf's extensional type theory. It has since then been extended with several new types such as: intersection types, union types, image types, partial types, set types, quotient types, partial equivalence relation (per) types, simulation and bisimulation types, an atom type, and the "Base" type.

Our formalization includes a definition of Nuprl's computation system, a definition of Howe's computational equivalence relation and a proof that it is a congruence, an impredicative definition of Nuprl's type system using Allen's PER semantics (using Prop's impredicativity, we can formalize Nuprl's infinite hierarchy of universes), definitions of most (but not all) of Nuprl's inference rules and proofs that these rules are valid w.r.t. Allen's PER semantics, and a proof of Nuprl's consistency.

In addition to the standard introduction and elimination rules for Nuprl's types, we have also proved several Brouwerian rules. Our computation system also contains: (1) free choice sequences that we used to prove Bar Induction rules; (2) named exceptions and a "fresh" operator to generate fresh names, that we used to prove a continuity rule.

More information can be found on our NuprlInCoq website. Feel free to send questions to the authors (preferably to Vincent).

KEYWORDS

ROADMAP

CONTRIBUTORS