Lecture 14

Davis' Conjecture

Recall: \(S\subseteq\mathbb{N}\) is Diophantine if there is a polynomial \(P_S\) such that \(S=\{x\in\mathbb{N}:\exists y_1,...,y_n\in\mathbb{N}\textrm{ s.t. } P_S(x,y_1,...,y_n)=0\}\) \(*L_S=\{<x>:s\in S\}\)

Davis' Conjecture

If \(S\subseteq\mathbb{N}\) that satisfies \(L_S\) is recognizable, then \(S\) is Diophantine.

Theorem If \(S\subseteq\mathbb{N}\) is Diophantine, then \(L_S\) is Turing-recognizable.

Proof Since \(S\) is Diophantine, we know that \(P_S\) exists and it is easy to construct an algorithm that checks whether \(P(x,y_1,...,y_n)=0\) for any \(x,y_1,...,y_n\).

Let \(M\) be a TM that checks whether \(P(x,y_1,...,y_n)=0\) \(\forall y_1,...,y_n\in\mathbb{N}\) on input \(x\).

DPRM Theorem

For every recognizable language, there is a corresponding Diophantine set (and vice-versa).

Corollary There is a universal polynomial \(U\) on \(m\) variables such that \(\forall n\geq 1\) and any \(P\) on \(n\) variable, \(\exists a\in\mathbb{N}\) sucht that

\[\exists y_1,...,y_{m-1}\quad U(a,y_1,...,y_{m-1})=0\Leftrightarrow \exists z_1,...,z_n\quad P(z_1,...,z_n)=0\]

H10v4: \(x\in\mathbb{R}^n\) \(\Rightarrow\) Decidable

H10v5: \(x\in\mathbb{Q}^n\) \(\Rightarrow\) Open!

Turing Completeness

Definition In the polynomial computation model and "algorithm" is a polynomail with \(\mathbb{Z}\) coefficients), an input is \(x\in\mathbb{N}\), and an algorithm \(P\) accets \(x\) if \(\exists y_1,...,y_n\in\mathbb{N}^n\) s.t. \(P(x,y_1,...,y_n)=0\).

Definition A language is PCM-recognizable if \(\exists P\) that accepts \(x\in\mathbb{N}\) if \(x\in L\).

DPRM Theorem

\(L\) is Turing-recognizable iff it is PCM-recognizable.

Definition Any model of computation that recognizes every Turing-recognizable language is Turing Complete.

E.g. In the compute-anything model, an algorithm is a magical black box that accets iff \(x\in L\) for any language \(L\).

Prop:: CAM is Turing complete, but not interesting, not finite process.


The model of computation where algorithms are valid C/Java/Python/etc. programs is Turing-complete.

Proof: Simple(?) programming exeicise: show that we can make program that simulates TMs. Has to support unlimited memory.

Theorem Conway's Game of Life is Turing complete.

Theorem SQL is Turing complete.

Theorem \(\lambda\) calculus is Turing complete.

Theorem Babhage's Analytical Engine (1830s) is Turing complete.

Theorem Minecraft (with Redstone) is Turing complete.

Theorem Minesweeper (infinite) is Turing complete.

Theorem LaTeX is Turing compute (?)

Theorem Magic: The Gathering is Turing compute (?)


Definition The Kolmogorov complexity of a string \(x\) is the sie of the smallest TM that writes \(x\) on the tape.