This library contains undecidable problems and formalised reductions between them. Feel free to contribute or start using the problems!
- Post correspondence problem (
PCPinProblems/PCP.v),good seed - Halting problems for single-tape and multi-tape Turing machines (
HaltinProblems/TM.v) - Halting problem for Minsky machines (
MM_HALTINGinProblems/MM.v) - Halting problem for two counters Minsky machines (
MM2_HALTINGinProblems/MM2.v) with self-contained explanations,good seed - Halting problem for Binary Stack Machines (
BSM_HALTINGinProblems/BSM.v) - Halting problem for the call-by-value lambda-calculus (
evainProblems/L.v) - String rewriting (
SRinProblems/SR.v) - Entailment in Elementary Intuitionistic Linear Logic (
EILL_PROVABILITYinProblems/ILL.v) - Entailment in Intuitionistic Linear Logic (
ILL_PROVABILITYinProblems/ILL.v) - Provability in Minimal (Intuitionistic, Classical) First-Order Logic (
prvinProblems/FOL.v) - Validity in Minimal (Intuitionistic, Classical) First-Order Logic (
validinProblems/FOL.v,kvalidinProblems/FOL.v) - Satisfiability in Intuitionistic (Classical) First-Order Logic (
satisinProblems/FOL.v,ksatisinProblems/FOL.v) - Halting problem for FRACTRAN programs (
FRACTRAN_REG_HALTINGinProblems/FRACTRAN.v),good seed - Satisfiability for elementary diophantine constraints (
DIO_ELEM_SATinProblems/DIOPHANTINE.v) - Hilbert's 10th problem, i.e. solvability of a single diophantine equation (
H10in inProblems/DIOPHANTINE.v) - Satisfiability of elementary Diophantine constraints of the form
x=1,x=y+zorx=y.zwithout parameters (H10C_SATinProblems/H10C.v),good seed
If you can use opam 2 on your system, you can follow the instructions here.
If you cannot use opam 2, you can use the noopam branch of this repository, which has no dependencies, but less available problems.
You need Coq 8.8.1, 8.8.2 or 8.9.1 built on OCAML > 4.02.3, the Equations package and the MetaCoq package for Coq. If you're 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 install . --deps-only
The Undecidability libraries depends on several external libraries. Initialise and build them once as follows:
git submodule update --init --recursive
make depsmake allbuilds the librarymake htmlgenerates clickable coqdoc.htmlin thewebsitesubdirectorymake cleanremoves all build files intheoriesand.htmlfiles in thewebsitedirectorymake realcleanalso removes all build files in theexternaldirectory. You have to runmake depsagain after this.
- Undecidability of Higher-Order Unification Formalised in Coq. Simon Spies and Yannick Forster. Technical report. Subdirectory
HOU. https://www.ps.uni-saarland.de/Publications/details/SpiesForster:2019:UndecidabilityHOU.html - Verified Programming of Turing Machines in Coq. Yannick Forster, Fabian Kunze, Maximilian Wuttke. Technical report. Subdirectory
TM. https://github.com/uds-psl/tm-verification-framework/ - Hilbert's Tenth Problem in Coq. Dominique Larchey-Wendling and Yannick Forster. FSCD '19. Subdirectory
H10. https://uds-psl.github.io/H10 - A certifying extraction with time bounds from Coq to call-by-value lambda-calculus. ITP '19. Subdirectory
L. https://github.com/uds-psl/certifying-extraction-with-time-bounds - Certified Undecidability of Intuitionistic Linear Logic via Binary Stack Machines and Minsky Machines. Yannick Forster and Dominique Larchey-Wendling. CPP '19. Subdirectory
ILL. http://uds-psl.github.io/ill-undecidability/ - On Synthetic Undecidability in Coq, with an Application to the Entscheidungsproblem. Yannick Forster, Dominik Kirst, and Gert Smolka. CPP '19. Subdirectory
FOL. https://www.ps.uni-saarland.de/extras/fol-undec - Formal Small-step Verification of a Call-by-value Lambda Calculus Machine. Fabian Kunze, Gert Smolka, and Yannick Forster. APLAS 2018. Subdirectory
LAM. https://www.ps.uni-saarland.de/extras/cbvlcm2/ - Towards a library of formalised undecidable problems in Coq: The undecidability of intuitionistic linear logic. Yannick Forster and Dominique Larchey-Wendling. LOLA 2018. Subdirectory
ILL. https://www.ps.uni-saarland.de/~forster/downloads/LOLA-2018-coq-library-undecidability.pdf - Verification of PCP-Related Computational Reductions in Coq. Yannick Forster, Edith Heiter, and Gert Smolka. ITP 2018. Subdirectory
PCP. https://ps.uni-saarland.de/extras/PCP - Call-by-Value Lambda Calculus as a Model of Computation in Coq. Yannick Forster and Gert Smolka. Journal of Automated Reasoning (2018) Subdirectory
L. https://www.ps.uni-saarland.de/extras/L-computability/
- Fork the project on GitHub.
- Create a new subdirectory for your project and add your files.
- Add a license for your project.
- Edit the "Existing undecidable problems" and the "Contributors" section in this file
- File a pull request.
- Yannick Forster
- Edith Heiter
- Dominik Kirst
- Fabian Kunze
- Dominique Larchey-Wendling
- Gert Smolka
- Simon Spies
- Maximilian Wuttke