<aside> <img src="/icons/light-bulb_blue.svg" alt="/icons/light-bulb_blue.svg" width="40px" /> HOCAEIT Principle ”Have our cake and eat it too”
</aside>
HOC: To show something is computable, can use any programming language to compute it
EIT: To show something is uncomputable, can show that TMs cannot do it
Theorem: (Universality) There is a single TM that can simulate all TMs! (”Universal TM”)
Universal TMs roughly equals to “compiler + executor” of programs
Theorem: (Uncomputability)There are functions that are uncomputable
Goal Find $U_{TM}: U_{TM}(M,x) = M(x)$ where $U_{TM}$ is a turing machine
Recall that a Turing Machine is entirely described by the transition functions $\delta:[k] \times \Sigma \to [k]\times \Sigma\times\{L,R,S,H\}$
Let number of states = k
number of symbols = $l$, $\Sigma = \{a_0,a_1,\dots,a_{e-1}\}$
Each transition: $S(i,a) = (j,b,A)$
How can we represent $\delta$ as $\{0,1\}^*$?
We can write done $(k, l, ((0,a_0, \,\, \),(0,a_1, \,\, \),\dots, (k,a_{l-1}, \,\, \_))$