Proof: Busy Beaver function is not calculable

92 Views Asked by At

I'm studying in a textbook and one exercise was to proof that the busy beaver function $B(n)$ is not calculable. My solution differed quite a bit from the one given in the textbook, so I wanted to see wether my approach was correct as well. I hope, you can help me with this endeavour!

My proof:
Suppose, the busy beaver function $B(n)$ was computable with a Program $P$. This means, there exists a Turing Machine $T$ consisting of a finite number of states $m$, that calculates $B(n)$ in a finite amount of steps.
Running $T$ with input $m$ would result in $T$ writing $B(m)$ ones on the tape. This means $T$ is a busy beaver for itself. $T$ however also works for other inputs $n$, especially $n>m$. For all $n>m$, $T$ would have to output $B(n)>B(m)$ ones, which contradicts the statement, that $T$ is a busy beaver for $m$ ($B(m)$ is the max amount of ones, $T$ can generate). The only way for this to work would be if $B(m)=\infty$, which means that $T$ would enter an infinite loop, which is per definition prohibited.
This leads me to the conclusion that $B(n)$ cannot be computable.

What do think of this approach?

1

There are 1 best solutions below

0
On BEST ANSWER

The definition of the Busy Beaver function is that $B(m)$ is the highest number of ones that a Turing machine with $m$ states can output when it is executed on an empty input tape. Otherwise, the notion is ill-defined: consider the Turing machine that takes a number $n$ in binary and outputs $n$ in unary. By running this machine on large enough input, you can make it output as many ones as you want.

Thus, this does not make sense:

Running T with input m would result in T writing B(m) ones on the tape. This means T is a busy beaver for itself.

To prove that T is a Busy Beaver machine for $m$, you need to prove that it writes $B(m)$ ones when run on the empty word as input, not when run on $m$.