Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified sections/section4/section4.pdf
Binary file not shown.
9 changes: 6 additions & 3 deletions sections/section4/section4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,9 @@ \subsection{Theorem: existence of an uncomputable function}
\end{theorem}

$\emph{Intuition.}$
It is important to get the intuition here. There are infinitely many binary strings in $\{0, 1\}^*$, while there are
finite number of strings in $\{ 0, 1\}^n$. And that's precisely what makes it impossible to compute some functions since
NAND-TM programs are finite objects.
It is important to get the intuition here. Part of the difficulty of expanding the domain of functions from $\{0,1\}^n$ to $\{0,1\}^*$ is that there are only finitely many strings of $n$ bits but infinitely many of arbitary length. This difference explains why we cannot apply the same approach to computing every function that we used with functions on $\{0,1\}^n$, which relied on enumerating the finite set of outputs.

However, there is another distinction which suggests why there are some functions we cannot compute: NAND-TM consists of objects with finite descriptions, while functions $\{0,1\}^* \to \{0,1\}$ have infinitely long description lengths. We can imagine a NAND-TM program as a compressed representation of the functions with ``nice patterns'', but the number of possible functions is so large that it overwhelms the ability of a finitely-described NAND-TM program to capture all of them.

\subsection{Proof:}

Expand Down Expand Up @@ -259,6 +259,9 @@ \subsection{Exercise}
Consider the set $P(\mathbb{N})$ of all subsets of $\mathbb{N}$. Show that there is no one-to-one and onto function between
$\mathbb{N}$ and $P(\mathbb{N})$.

\subsection{Exercise}
Is the set of NAND-TM programs countable? What about the set of functions $\{0,1\}^* \to \{0,1\}$? How can we get an alternate proof of Theorem 1 using these facts?

\section{Reduction}
In the preceding section, we showed that there is some function from $\{0, 1\}^*$ to $\{0, 1\}$ that can't be simulated by
any NAND-TM program, i.e. an uncomputable function. However, the uncomputable function that we constructed seemed rather contrived.
Expand Down
Binary file modified sections/section4/section4_sol.pdf
Binary file not shown.
18 changes: 15 additions & 3 deletions sections/section4/section4_sol.tex
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,9 @@ \subsection{Theorem: existence of an uncomputable function}
\end{theorem}

$\emph{Intuition.}$
It is important to get the intuition here. There are infinitely many binary strings in $\{0, 1\}^*$, while there are
finite number of strings in $\{ 0, 1\}^n$. And that's precisely what makes it impossible to compute some functions since
NAND-TM programs are finite objects.
It is important to get the intuition here. Part of the difficulty of expanding the domain of functions from $\{0,1\}^n$ to $\{0,1\}^*$ is that there are only finitely many strings of $n$ bits but infinitely many of arbitary length. This difference explains why we cannot apply the same approach to computing every function that we used with functions on $\{0,1\}^n$, which relied on enumerating the finite set of outputs.

However, there is another distinction which suggests why there are some functions we cannot compute: NAND-TM consists of objects with finite descriptions, while functions $\{0,1\}^* \to \{0,1\}$ have infinitely long description lengths. We can imagine a NAND-TM program as a compressed representation of the functions with ``nice patterns'', but the number of possible functions is so large that it overwhelms the ability of a finitely-described NAND-TM program to capture all of them.

\subsection{Proof:}

Expand Down Expand Up @@ -289,6 +289,18 @@ \subsection{Solution}
sequence that you get by flipping all the green bits. Then $S$ is not in $P(S)$ and therefore the assumption that the listing is complete
was false. Hence, it had to be the case that there is no one-to-one and onto function between $\mathbb{N}$ and $P(\mathbb{N})$.

\subsection{Exercise}
Is the set of NAND-TM programs countable? What about the set of functions $\{0,1\}^* \to \{0,1\}$? How can we get an alternate proof of Theorem 1 using these facts?

\emph{Solution.}
As suggested by the proof above, the set of NAND-TM programs is countable, as we can lexicographically enumerate them using their finite encodings.

On the other hand, we saw earlier in the course that $\{0,1\}^\infty$, the set of functions $\mathbb{N} \to \{0,1\}$, is uncountable, by diagonalization! But the set of functions from $\mathbb{N} \to \{0,1\}$ is equivalent to the set of functions from $\{0,1\}^* \to \{0,1\}$, as we can identify each string in $\{0,1\}^*$ with a natural number, bijectively. So the set of all functions $\{0,1\}^* \to \{0,1\}$ is uncountable.

Since the space of functions is definitively bigger than the set of NAND-TM programs by the measure of countability, there cannot be any surjective mapping from NAND-TM programs to functions. In particular, the map we have from NAND-TM programs to the functions they compute is not surjective, so there must exist a function that isn't computed by any NAND-TM program.

Note that this proof isn't actually different than the one given above; this one just disguises the diagonalization argument that the other proof made explicit, by reframing things in terms of uncountability. They both rely on showing that in any possible enumeration of elements in the countable set, we can extract some element from the other set that isn't covered by this enumeration.

\section{Reduction}
In the preceding section, we showed that there is some function from $\{0, 1\}^*$ to $\{0, 1\}$ that can't be simulated by
any NAND-TM program, i.e. an uncomputable function. However, the uncomputable function that we constructed seemed rather contrived.
Expand Down