
The Busy Beaver Game - mathgenius
https://johncarlosbaez.wordpress.com/2016/05/21/the-busy-beaver-game/
======
pohl
_Edit: whoa, they really buried the lede: the upper bound for the knowable
values may be as low as BB(1919) as of May 15!_

I'm confused by the winning TM given for BB(2). It has 3 non-halt states, but
N==2 should be a TM with 2, shouldn't it?

Did they merely put the illustration for BB(3) in the wrong place?

 _Edit: yeah, looks like they just put the illustration for BB(3) in the wrong
place:_
[https://en.wikipedia.org/wiki/Turing_machine#/media/File:Sta...](https://en.wikipedia.org/wiki/Turing_machine#/media/File:State_diagram_3_state_busy_beaver_2B.svg)

~~~
9911o9w8191
The author has the first name "John Carlos". Why not take an educated guess
and use ( _gasp_ ) gendered pronouns?

~~~
pohl
Because the byline wasn't easy to find on the device I read it on, and the
possibility that someone might be offended by gender neutrality seemed far-
fetched at the time.

------
millstone
The article says "if the usual axioms of set theory are consistent, we can
never use them to determine the value of BB(7910)." But why does this imply
that BB(7910) is uncomputable? Perhaps another axiomatic system could compute
its value?

~~~
wolfgke
> Perhaps another axiomatic system could compute its value?

Of course another axiomatic system could. If you could tell us such an
axiomatic system for which you can prove that it can determine the value of
BB(7910) and have strong arguments why it is probably consistent (by Gödel one
will not be able to prove this property if it is able to express basic
arithmetic) mathematicians would love to get to know it, since they really
have no idea how such a system might look like.

~~~
ikeboy
It's easy to specify such a system that's more powerful than ZFC and has
strong arguments for its consistency: ZFC+con(ZFC), which is consistent iff
ZFC is consistent.

And it's easy to go one level up, I.e that system plus it's own consistency.

These systems will be stronger than ZFC, and will prove the machine in
question halts.

Of course, the lowest unknowable from ZFC BB number is probably around BB(15),
so likely none of those systems get that high, but they do probably give us
more than just ZFC does.

See also
[http://www.scottaaronson.com/blog/?p=697](http://www.scottaaronson.com/blog/?p=697)
for some limitations on this.

Also, there are large cardinal axioms which imply the consistency of ZFC and
are believed to be consistent, but I'm not so familiar with them. I think
mathematicians would consider those axioms as "what such a system would look
like".

------
rrobukef
They created a Turing machine that may run forever. However we can't prove
that. It could stop the next second, or tomorrow, or the day after.

They also proved however that you'll never see it halt. Because that would be
a proof of consistency.

Wait. What?

~~~
zodiac
If you're refering to Yedidia and Aaronson's machine, the machine searches for
counterexamples in ZFC. We believe, but cannot prove, that ZFC is consistent.
Also, we can prove that assuming ZFC is consistent, ZFC cannot prove that ZFC
is consistent. Hence, since we believe ZFC is consistent, we believe that the
machine will not halt, but we can't prove it. This implies that BB(7910)
cannot be computed.

~~~
ikeboy
BB 7910 can be computed: it's just a finite number. What you mean is that the
value can't be proven correct in ZFC.

~~~
zodiac
If you write down a value for BB 7910 but can't prove that it is correct, I
wouldn't say that you "computed it".

~~~
ikeboy
But ZFC isn't the only system in town. It's possible (although highly
unlikely) that we could prove its value in another system that we can see to
be just as valid as ZFC. (Like adding consistency axioms and so on.)

~~~
zodiac
Yeah, sure, if we agree to do math in the system ZFC+Con(ZFC) we can prove
that Yedidia's machine does not halt. But then we can just construct another
machine (call it M', a n'-state turing machine) that searches for
contradictions in ZFC+Con(ZFC), and now we believe that M' does not halt, but
we can't prove it; and now, BB(n') can't be computed.

~~~
ikeboy
Sure, but that n' will be larger.

~~~
zodiac
Sure, but no matter what model of math we choose to work in, I can come up
with some n such that I can say "...hence, BB(n) cannot be computed", and you
cannot reply "BB(n) can be computed; it's just a finite number. What you mean
is the value can't be proven correct..."

~~~
ikeboy
It can always be computed. If you're choosing a specific model of math, you
need to specify that in your statement.

It will still be computable within that model, just not provably so within
that model.

Computable has a very specific meaning in computability theory, and any finite
number is computable.

The _function_ BB(n) is not computable, but this was known for decades, it has
nothing to do with the recent result.

~~~
zodiac
> If you're choosing a specific model of math, you need to specify that in
> your statement.

I mean, in my most recent statement I quantified over all consistent models...

> It will still be computable within that model, just not provably so within
> that model.

OK, now I'm confused; what is the specific definition of "computable number"
you're using?

Also, informally speaking, say we're both working in ZFC. You claim that
BB(7910) is computable. What does that mean? Does it mean you can write down
its value as a normal decimal number?

~~~
ikeboy
>I mean, in my most recent statement I quantified over all consistent
models...

Not quite, as I pointed out in
[https://news.ycombinator.com/item?id=11753020](https://news.ycombinator.com/item?id=11753020).
You can easily have a consistent system that proves the value of all BB
numbers, it just won't be computable.

If you restrict us to computable consistent systems, then for any given model
there will be some value of BB it doesn't prove, but also for any given value
of BB there will be some consistent model that proves it. There's nothing in
particular added about knowability by Aaronson's et al result, only about
provability.

>OK, now I'm confused; what is the specific definition of "computable number"
you're using?

[https://en.wikipedia.org/wiki/Computable_number](https://en.wikipedia.org/wiki/Computable_number)

Any finite number is computable, we just can't prove that a specific machine
_is_ the one that computes BB(N). We can prove that some machine in a finite
set (all TMs of size N we haven't seen to halt or proven nonhalting) computes
it, but we can't pin down which one, within that model.

>Also, informally speaking, say we're both working in ZFC. You claim that
BB(7910) is computable. What does that mean? Does it mean you can write down
its value as a normal decimal number?

Lol nope. We can't even write down anything above BB(6). BB(7) has more digits
than atoms in the observable universe.

My claim that BB(7910) is computable means there's a Turing machine that
computes it. That's easy to prove, as any finite integer can be computed by a
Turing machine.

There's no Turing machine that computes every BB number sequentially, though.

------
shmageggy
I'm trying to get an intuition about why this whole game can even be played,
and it's proving (ha) rather tricky. I'm ok with the idea that things
sometimes cross into the realm of the impossible when transitioning from
discrete/finite to continuous/infinite, or maybe from countably to uncountably
infinite, but the notion that there's some _constant threshold_ seems so
counterintuitive. The link at the end of the article is pretty good [1] as is
wikipedia [2], but I'm clearly missing some intuition here. Help!

[1] [https://johncarlosbaez.wordpress.com/2011/10/28/the-
complexi...](https://johncarlosbaez.wordpress.com/2011/10/28/the-complexity-
barrier/) [2]
[https://en.wikipedia.org/wiki/Kolmogorov_complexity#Chaitin....](https://en.wikipedia.org/wiki/Kolmogorov_complexity#Chaitin.27s_incompleteness_theorem)

~~~
ikeboy
You can't solve the halting problem. Therefore, if you take a program that
takes a Turing machine as input, searches for a proof in ZFC (or your favorite
alternative) that the program halts or that it doesn't, and if it doesn't find
a proof either way then it runs forever, your program is not a halting solver.

Therefore, there are some Turing machines which can't be proven to halt or run
forever in any given consistent system that can be computed.

(Because if every TM had a proof, then the program above would solve the
unsolvable halting problem).

Therefore, there is a smallest such program that's independent of ZFC.

Does that help?

~~~
shmageggy
Yeah a bit. This part

> searches for a proof in ZFC (or your favorite alternative)

is tripping me up though. It's not obvious to me that you can do this in an
automated fashion. I assume this is a standard tool for theorists though? How
does such a program work?

~~~
shmageggy
It's not letting me reply any deeper, but that makes sense, thanks!

~~~
wging
I think it's that you can't reply to posts that are too new.

~~~
tomjakubowski
You can, you just have to click on the timestamp to visit the comment's item
page first, something like
[https://news.ycombinator.com/item?id=11750351](https://news.ycombinator.com/item?id=11750351)

------
quantumtremor
I made a small implementation of the Busy Beaver game in React a while ago:
[http://rajk.me/static/busybeaver.html](http://rajk.me/static/busybeaver.html).
(Click the rules to toggle them).

Start with 1-state, and 2-state is a decent challenge. Not sure if 3-state is
possible by hand.

------
pkrumins
I wrote an interesting article a while ago with graphs of how the beaver walks
across the tape, and other interesting info.

[http://www.catonmat.net/blog/busy-beaver/](http://www.catonmat.net/blog/busy-
beaver/)

------
delsarto
Numberphile did a great video on Busy Beaver which I found easy to follow -
[https://youtu.be/CE8UhcyJS0I](https://youtu.be/CE8UhcyJS0I)

------
csl
FWIW, I implemented some BB code in Python and made some pretty neat plots:

[https://github.com/cslarsen/busy-beaver](https://github.com/cslarsen/busy-
beaver)

Of course I cheat by knowing S(n).

