# Formalizing computability theory via partial recursive functions

@article{Carneiro2019FormalizingCT, title={Formalizing computability theory via partial recursive functions}, author={Mario M. Carneiro}, journal={ArXiv}, year={2019}, volume={abs/1810.08380} }

We present an extension to the $\mathtt{mathlib}$ library of the Lean theorem prover formalizing the foundations of computability theory. We use primitive recursive functions and partial recursive functions as the main objects of study, and we use a constructive encoding of partial functions such that they are executable when the programs in question provably halt. Main theorems include the construction of a universal partial recursive function and a proof of the undecidability of the halting…

## 12 Citations

Formalization of the Computational Theory of a Turing Complete Functional Language Model

- Mathematics, Computer ScienceJournal of Automated Reasoning
- 2022

This work presents a formalization in PVS of the computational theory for a computational model given as a class of partial recursive functions called PVS0, which results in a proven (formalized) Turing complete model.

Hilbert's Tenth Problem in Coq (Extended Version)

- MathematicsLog. Methods Comput. Sci.
- 2022

The first full mechanisation of the Davis-Putnam-Robinson-Matiyasevich theorem is given, stating that every recursively enumerable problem -- in this case by a Minsky machine -- is Diophantine.

Towards a Mechanized Theory of Computation for Education

- Computer Science
- 2022

This project includes full proofs of results from a textbook, such as the undecidability of the halting problem and Rice’s theorem, and presents a simple and expressive calculus that allows for the essence of informal proofs of classic theorems in a mechanized setting.

Parametric Church's Thesis: Synthetic Computability Without Choice

- PhilosophyLFCS
- 2022

This work introduces various parametric strengthenings of CTφ, which are equivalent to assuming CT φ and an S n operator for φ like in the S n theorem, and explains the novel axioms and proofs of Rice’s theorem.

Mechanising Complexity Theory: The Cook-Levin Theorem in Coq

- Computer ScienceITP
- 2021

The Cook-Levin theorem is mechanised in the proof assistant Coq, the first result in computational complexity theory that has been mechanised with respect to any concrete computational model.

Verified programming of Turing machines in Coq

- Computer ScienceCPP
- 2020

A framework for the verified programming of multi-tape Turing machines in Coq, which allows a user to implement nontrivial algorithms as Turing machines and verify their correctness, as well as time and space complexity compositionally.

Church's thesis and related axioms in Coq's type theory

- Economics, PhilosophyCSL
- 2021

The paper provides a partial answer to the question which axioms may preserve computational intuitions inherent to type theory, and which certainly do not, and is read as a broad survey ofAxioms in type theory.

Undecidability of higher-order unification formalised in Coq

- MathematicsCPP
- 2020

The undecidability results concerning higher-order unification in the simply-typed λ-calculus with β-conversion in Coq is formalised and the solvability of Diophantine equations is proved following a proof by Dowek.

On the formalisation of Kolmogorov complexity

- Computer Science, MathematicsCPP
- 2021

Building on HOL4's existing model of computability, a formal definition of the complexity of a binary string is provided, and it is proved that Kolmogorov complexity is uncomputable and the Kolmogsorov Complexity invariance theorem is proved.

## References

SHOWING 1-10 OF 19 REFERENCES

Mechanised Computability Theory

- Computer ScienceITP
- 2011

This paper presents a mechanisation of some basic computability theory. The mechanisation uses two models: the recursive functions and the ?- calculus, and shows that they have equivalent…

On synthetic undecidability in Coq, with an application to the Entscheidungsproblem

- Computer ScienceCPP
- 2019

Developing a basic framework for synthetic computability theory in Coq, this work proves the equivalence of Post's theorem with Markov's principle and provides a convenient technique for establishing the enumerability of inductive predicates such as the considered proof systems and PCP.

Formalization of the Undecidability of the Halting Problem for a Functional Language

- Computer ScienceWoLLIC
- 2018

The formalization is part of a termination analysis library in PVS that includes the specification and equivalence proofs of several notions of termination of a simple first-order functional language called PVS0.

Typing Total Recursive Functions in Coq

- Computer ScienceITP
- 2017

A (relatively) short mechanized proof that Coq types any recursive function which is provably total in Coq, and an unbounded minimization scheme for decidable predicates that can be used to reify a whole category of undecidable predicate.

Mechanising Turing Machines and Computability Theory in Isabelle/HOL

- Computer ScienceITP
- 2013

Results from computability theory in the theorem prover Isabelle/HOL formalise Turing machines and relate them to abacus machines and recursive functions and "tie the know" between these three computational models by formalising a universal function and obtaining a universal Turing machine.

Weak Call-by-Value Lambda Calculus as a Model of Computation in Coq

- Computer ScienceITP
- 2017

A weak call-by-value \(\lambda \)-calculus is formalised in the constructive type theory of Coq and study it as a minimal functional programming language and as a model of computation.

Formalizing Turing Machines

- Computer ScienceWoLLIC
- 2012

We discuss the formalization, in the Matita Theorem Prover, of a few, basic results on Turing Machines, up to the existence of a (certified) Universal Machine. The work is meant to be a preliminary…

Programming languages capturing complexity classes

- Computer ScienceSIGA
- 2000

This article surveys development of programming languages with the property that all definable functions belong to some complexity class, often polynomial time or space from Cobham's 1965 result up to the current research frontier.

The Lean Theorem Prover (System Description)

- Computer Science, MathematicsCADE
- 2015

Lean is a new open source theorem prover being developed at Microsoft Research and Carnegie Mellon University, with a small trusted kernel based on dependent type theory. It aims to bridge the gap…