Skip to content

lgaeher/coq-library-undecidability

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A library of formalised undecidable problems in Coq

Build Status

This library contains undecidable problems and formalised reductions between them. Feel free to contribute or start using the problems!

Existing undecidable problems

  • Post correspondence problem (PCP in Problems/PCP.v), good seed
  • Halting problems for single-tape and multi-tape Turing machines (Halt in Problems/TM.v)
  • Halting problem for Minsky machines (MM_HALTING in Problems/MM.v)
  • Halting problem for two counters Minsky machines (MM2_HALTING in Problems/MM2.v) with self-contained explanations, good seed
  • Halting problem for Binary Stack Machines (BSM_HALTING in Problems/BSM.v)
  • Halting problem for the call-by-value lambda-calculus (eva in Problems/L.v)
  • String rewriting (SR in Problems/SR.v)
  • Entailment in Elementary Intuitionistic Linear Logic (EILL_PROVABILITY in Problems/ILL.v)
  • Entailment in Intuitionistic Linear Logic (ILL_PROVABILITY in Problems/ILL.v)
  • Provability in Minimal (Intuitionistic, Classical) First-Order Logic (prv in Problems/FOL.v)
  • Validity in Minimal (Intuitionistic, Classical) First-Order Logic (valid in Problems/FOL.v, kvalid in Problems/FOL.v)
  • Satisfiability in Intuitionistic (Classical) First-Order Logic (satis in Problems/FOL.v, ksatis in Problems/FOL.v)
  • Halting problem for FRACTRAN programs (FRACTRAN_REG_HALTING in Problems/FRACTRAN.v), good seed
  • Satisfiability for elementary diophantine constraints (DIO_ELEM_SAT in Problems/DIOPHANTINE.v)
  • Hilbert's 10th problem, i.e. solvability of a single diophantine equation (H10 in in Problems/DIOPHANTINE.v)
  • Satisfiability of elementary Diophantine constraints of the form x=1, x=y+z or x=y.z without parameters (H10C_SAT in Problems/H10C.v), good seed

How to build

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.

Required packages

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

Build external libraries

The Undecidability libraries depends on several external libraries. Initialise and build them once as follows:

git submodule update --init --recursive
make deps

Building the undecidability library

  • make all builds the library
  • make html generates clickable coqdoc .html in the website subdirectory
  • make clean removes all build files in theories and .html files in the website directory
  • make realclean also removes all build files in the external directory. You have to run make deps again after this.

Published work and technical reports

How to contribute

  • 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.

Contributors

  • Yannick Forster
  • Edith Heiter
  • Dominik Kirst
  • Fabian Kunze
  • Dominique Larchey-Wendling
  • Gert Smolka
  • Simon Spies
  • Maximilian Wuttke

About

A library of formalised undecidable problems in Coq

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Coq 92.2%
  • Haskell 7.4%
  • Other 0.4%