No description
  • Rocq Prover 99.1%
  • Makefile 0.8%
  • Standard ML 0.1%
Find a file
2025-06-25 15:29:50 -04:00
common fix notations 2025-06-25 00:53:18 -04:00
ptt - fix rule_concise - finissh rule_concise_sound and rule_concise_complete 2024-08-11 20:44:02 +08:00
stlc add sem_closure_inversion 2025-06-25 15:29:50 -04:00
systemt update readme 2025-06-22 13:54:10 -04:00
.gitignore add stlc and reorg project 2025-06-21 16:04:58 -04:00
_CoqProject add stlc and reorg project 2025-06-21 16:04:58 -04:00
Makefile - update sig - add rule (don't compile) 2025-06-21 16:21:24 -04:00
README.md Update README.md 2025-06-23 10:13:20 -04:00

Formalization of Normalization by Evaluation of System T

This repo formalizes the normalization of evaluation of System T (STLC + Nat + Recursion) in Coq, including totality, soundness and completeness. The proof follows "Normalization by Evaluation: Dependent Typs and Impredicativity". The machanization is based on those in https://github.com/HuStmpHrrr/mech-type-theories which were written in Agda.

Usage

make

The proof of System T is in ./systemt/.

./ptt/ contains unfinished work for a extending System T to a dependently typed system. Since its corresponding Agda formalization requires induction-recursion which is not currently supported by Coq, it may remain unfinished for a long time (there is a workaround to rely on the impredicativity of Prop in Coq, as shown in A "Coq Formalization of Normalization by Evaluation for Martin-Löf Type Theory")

./stlc/ contains unfinished work for replacing explicit substitutions with substitution-as-operations.

Dependency

(Recommended): use opam switch to create a new opam environment.

  • coq-8.19.2
opam pin add coq 8.19.2
opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-hammer-tactics
  • TLC(tested on version 20240209)
opam repo add coq-released http://coq.inria.fr/opam/released
opam install coq-tlc
opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev
opam install coq-autosubst-ocaml