This repository contains the Coq code accompanying Dominik Kirst's and Benjamin Peters' CSL 2023 submission (here) as part of a fork of the Coq library of undecidability proofs.
The documentation can found here.
The development can be found at theories/FOL/Incompleteness/
and comprises the following files:
utils.v
: Utilities for vectors and a definition of partial functionsepf.v
: Definition of Church's thesis and undecidability/uncomputability resultsdprm.v
: Church's thesis for mu-recursive functionsrecalg.v
: Enumerability and discreteness of mu-recursive functions (by Johannes Hostert)
formal_systems.v
: Abstract formal systemsabstract_incompleteness.v
: Incompleteness of abstract formal systemsqdec.v
: Q-decidabilitysigma1.v
: Σ1-completenessctq.v
: Church's thesis for Q and related resultsfol_incompleteness.v
: Essential incompleteness of Robinson arithmetic
If you can use opam 2
on your system, you can follow the instructions here.
You need Coq 8.15
built on OCAML >= 4.07.1
, the Smpl package, the Equations package, and the MetaCoq package for Coq. If you are using opam 2 you can use the following commands to install the dependencies on a new switch:
opam switch create coq-library-undecidability 4.07.1+flambda
eval $(opam env)
opam repo add coq-released https://coq.inria.fr/opam/released
opam update
opam pin add -n -y -k git coq-metacoq-template.dev+8.15 "https://github.com/MetaCoq/metacoq.git#9493bb6"
opam install . --deps-only
make all
builds the whole library and might take >30minmake FOL/Incompleteness/fol_incompleteness.vo
compiles all files necessary to assess the incompleteness results in <15minmake html
generates clickable coqdoc.html
in thewebsite
subdirectorymake clean
removes all build files intheories
and.html
files in thewebsite
directory
The library is compatible with Coq's compiled interfaces (vos
) for quick infrastructural access.
make vos
builds compiled interfaces for the librarymake FOL/Incompleteness/fol_incompleteness.vos
builds compiled interfaces for the incompleteness resultsmake vok
checks correctness of the library
If you use Visual Studio Code on Windows 10 with Windows Subsystem for Linux (WSL), then local opam switches may cause issues.
To avoid this, you can use a non-local opam switch, i.e. opam switch create 4.07.1+flambda
.
Be careful that this branch only compiles under Coq 8.15
. If you want to use a different Coq version you have to change to a different branch.