A Coq library containing mechanized reductions to establish undecidability results for problems in logic and computation.
The Coq Library of Undecidability Proofs is a formal, machine-checked collection of reductions that prove various problems in logic and computation are undecidable. It uses a synthetic approach within the Coq proof assistant to establish undecidability by showing that decidability of a problem would imply the enumerability of the complement of the Turing machine halting problem. The library serves as a rigorous framework for verifying classical undecidability results.
Researchers and practitioners in formal verification, logic, and theoretical computer science who need to formally verify undecidability proofs or extend the library with new results. It is also suitable for educators teaching computability theory with a formal methods perspective.
It provides a comprehensive, collaborative, and extensible library of fully mechanized undecidability proofs, ensuring correctness through Coq's proof checking. The synthetic approach offers a foundational perspective distinct from traditional pen-and-paper proofs.
A library of mechanised undecidability proofs in the Coq proof assistant.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Defines undecidability relative to the enumerability of the complement of the Turing machine halting problem in Coq, providing a rigorous, type-theoretic approach as detailed in the synthetic definitions.
Includes seed problems like Turing machine halting and Post correspondence, advanced problems from first-order logic to lambda calculus, and target problems for reductions, covering a wide range of undecidability results.
All proofs are fully formalized and checked by Coq, ensuring accuracy and reliability, as emphasized in the library's description and CI badge.
Designed for contributions with guidelines for adding new proofs, making it a living resource for the community, as invited in the README's contribution section.
Requires Coq 8.20 and MetaCoq, with compatibility issues across branches and older Coq versions, as noted in the troubleshooting section, limiting flexibility.
Setup involves opam switches, specific OCaml versions (e.g., 4.14.1+flambda), and manual steps, which can be cumbersome and error-prone for newcomers.
Assumes proficiency in Coq and formal verification, with no beginner-friendly tutorials or simplified examples, making it inaccessible without prior expertise.