Overview

Last time:

Today:

Turing Machine

$k$ states, $\Sigma\supseteq \{0,1,\Delta,\empty\}$

$\delta: [k]\times \Sigma \to [k] \times \Sigma \times \{L,R,S,H\}$

Every TM $M: \{0,1\}^* \to \Sigma^* \cup \{\perp\}$

A function $f$ is computed by a Turing Machine $M$ iff $f(x) = M(x)$.

A language $L$ is recognized or computed by a TM if for all $x\in L$, $M(x) = 1$.

Essentially, a Turing Machine is like a new “programming language.”

Theorem: For every Python program, there exists a TM such that every input to said program is equivalent to said TM.

If $P$ takes $T$ steps, $M$ takes $T^2$ steps.

Can we go beyond Turing Machines?