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\}\)

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\).

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!

**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\).

\(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.