Remix.run Logo
▲ pcstl 6 hours ago

Since Graham's number is computable, it's an expected result even. The Busy Beaver sequence grows faster than any computable sequence.

▲raincole 6 hours ago | parent | next [-]

No, it's not an obvious result. There is a BB(N) > Graham's Number, but in no way N=10 is obvious.

▲wasabi991011 5 hours ago | parent | prev | next [-]

I'm not sure what you mean, Graham's number is trivially computable since it is a natural number (finite).

Graham's number is not a sequence, so it doesn't matter that the BB sequence grows faster than any computable sequence.

▲gizmo686 5 hours ago | parent [-]

Given a constanct C, you can construct a constant sequence f(n) = C.

Since f(n) is trivially computable, we know that BB(n) grows faster than f(n). It follows that there must be some n such that BB(n) > C.

▲Someone 5 hours ago | parent | next [-]

> Given a constanct C, you can construct a constant sequence f(n) = C.

> Since f(n) is trivially computable

That only is true if C is computable.

▲wat10000 3 hours ago | parent [-]

Integers are what's relevant to BB, and all integers are computable.

▲Scarblac 2 hours ago | parent [-]

So what if we set C = BB(10)?

▲wat10000 24 minutes ago | parent | next [-]

It's hard or maybe impossible to figure out what BB(10) is. But abstractly, it is some finite integer. That finite integer is trivially computable: make a turing machine that hardcodes all the digits and outputs them one by one. You can't know that this machine actually produces BB(10) if you don't know what BB(10) is, but that's separate from the question of whether the number itself is computable.

▲gizmo686 2 hours ago | parent | prev | next [-]

The integer C is computable. However, we do not know what integer C is without first computing BB(10); and doing that might be not be possible.

▲ an hour ago | parent | prev [-]
[deleted]
▲wasabi991011 3 hours ago | parent | prev [-]

Ah I see now, thank you.

▲wat10000 6 hours ago | parent | prev | next [-]

Would we expect that Graham's number is less than 47,176,870, since BB(5) = 47,176,870?

▲im3w1l 6 hours ago | parent | prev | next [-]

I feel like I keep failing to wrap my mind around computability in the same way over and over.

Would the following statement be correct?

"There is a turing machine that cannot be proven whether it will terminate or not. For any n we can construct a proof that it will run longer than n. But we cannot construct a proof that for any n it will run longer than n. Due to this particular turing machine, BB(k) cannot be determined for k large enough to admit that turing machine."

▲cobbal 6 hours ago | parent | next [-]

That's correct. In particular, k=8000 is enough (probably much lower)

https://scottaaronson.blog/?p=2725

▲orangecat 6 hours ago | parent | next [-]

335 according to https://github.com/jeff87654/busy-beaver/blob/main/ZF/README...

▲GolDDranks 6 hours ago | parent | prev | next [-]

The current "independent of ZF" upper bound seems to be BB(432).

Source: https://wiki.bbchallenge.org/wiki/Logical_independence

▲im3w1l 5 hours ago | parent | prev [-]

So then if the BB sequence has finitely many entries. What does it mean that it grows faster than any computable sequence? A finite sequence can't have any asymptotic behavior right?

▲gizmo686 5 hours ago | parent | next [-]

The BB sequence still has infinitely many entries. Any turing machine will either halt or not halt. For any N, there is a finite set of N-state turing machines which halt, and there is therefore a finite number of steps after which all halting N-state turing machines would halt.

There is a point where these values become uncomputable, but they still exist (for some definition of exist).

▲cobbal 3 hours ago | parent | prev | next [-]

As others have said, the sequence is infinite, though unknowable. Even if math can't say what the precise value is, it can still prove things about the shape of the sequence.

As a simple example, we know that BB(1000) <= BB(1001) (since you can encode the longest running 1000-TM with an extra, unused state as a 1001-TM) even though we will never know either of those values.

The argument that it grows faster than any computable function is similar in that it proves things without knowing concrete numbers. (I'd have to look up the details of the proof to say more)

▲wat10000 3 hours ago | parent [-]

You should be able to prove it by showing that the existence of a faster-growing computable function lets you solve the halting problem.

Assume f(x) is computable and grows faster than BB(x). We can create a computable g(x) where g(x) > BB(x) for all x, by setting g(x) = f(x) + C for some suitable constant.

Now we create a computer program that does the following. 1. Get the size of the input program and compute g(n). 2. Run the input program for g(n) steps. 3. If it stopped, return true. If it's still running, return false.

This solves the halting problem. Since a computer program can't solve the halting problem, this program can't exist. Everything except "compute g(n)" is straightforward, so there must be no such function g, and no such function f.

▲GolDDranks 5 hours ago | parent | prev [-]

Where did you get that the BB sequence would have finitely many entries? You can choose any integer n for BB(n), and there are infinitely many integers.

▲ 6 hours ago | parent | prev [-]
[deleted]
▲cubefox 4 hours ago | parent | prev | next [-]

BB(5) is also computable in the intuitive sense, because we proved its value: 47,176,870. In this sense BB(5) is just as computable as Graham's number. However, there is likely a Busy Beaver number >5 that is intuitively uncomputable, such that there is no non-cheating algorithm which computes it. A cheating algorithm would be one that requires the knowledge of the result in advance to write the algorithm, in which case we wouldn't be able to come up with the algorithm in the first place, and we wouldn't know that the result is correct.

There is also a proof that the function BB(n) (with the free argument n) is uncomputable. However, this alone doesn't mean that e.g. BB(6) (a function with no free parameter) is or isn't intuitively computable. Though if you allow cheating, which is the case for the conventional academic definition of "computability", every particular constant function (that is, without a free parameter) would be considered "computable". Though that definition doesn't mean it is intuitively computable, because if you cheat, you aren't really computing the result, you are just reporting something without having computed it.

▲hyperpape 6 hours ago | parent | prev [-]

I don't follow the logic.

Every BB(n) is trivially computable, since any integer is computable. So for every BB(n), there is a computable sequence that grows faster than the BB numbers through n (annoyingly, given the word "grows", this can just be the constant sequence of BB(n) + 1).

So for any given computable number, the fact that it's computable gives no intrinsic reason to believe it's smaller than BB(n) for any particular n.

▲bonzini 6 hours ago | parent | next [-]

No, high enough busy beaver numbers are not computable. They can be defined but there's no way to know what they are.

Even for very small n you can create Turing machines where it's incredibly hard to prove that they halt: for n=25 you can create a Turing machine that stops only if the Goldbach conjecture is false.

Though that isn't enough to prove it's not computable, the point stands that if you could compute BB(n) for arbitrary n, you could run a Turing machine for BB(n)+1 steps and if it hasn't stopped yet then you know that the input corresponds to a machine that never halts. So it's impossible to write a program that computes BB(n) for arbitrary n, because doing so is equivalent to the halting problem.

And worse, there are some Turing machines where "proving the Turing machine stops" means "proving that a given set of axioms is consistent", where Gödel's incompleteness theorem says that it's impossible to build such a proof. So, that is how there is some n after which the busy beaver number is defined, but is not computable at all.

▲hyperpape 5 hours ago | parent [-]

What I mean is that any given integer is trivially computable.

The busy beaver sequence is not computable (I am aware that somewhere around BB(700), you've encoded the consistency of ZFC). You cannot necessarily compute that BB(n) is a given number. But you can compute larger numbers. There is no such thing as integer that is too large to be computable.

I did slightly fuck up--the English language "every BB(n) is computable" is a bit ambiguous. What I should say is: "for all n, BB(n) is trivially computable, since it is a single integer".

▲bonzini 5 hours ago | parent [-]

> for all n, BB(n) is trivially computable, since it is a single integer".

It is not computable, because for high enough n you can't prove that you got the right integer.

And also you can prove that if a sequence a_n is always larger than BB(n) for some n, that sequence a_n is also not computable.

▲hyperpape 2 hours ago | parent | next [-]

See https://news.ycombinator.com/item?id=50076267.

The busy beaver function is uncomputable. That is well understood. However, for any given n, there is a number BB(n). Since that number is an integer, it is computable, even though it is the value of an incomputable function applied to a particular n. In particular, for numbers > 5, we have no idea what that number is. But whatever number it is, that number is computable.

Look at the post that I was responding to. It made the bad inference that because Graham's Number is computable, it ought to be smaller than BB(10). That confuses computability of a given number with computability of a function.

▲bonzini an hour ago | parent [-]

Computable doesn't mean that you can write it down the number that is the value, given an oracle that tells you the value. It means that you know that it the number you are writing down is the right one, because you computed it.

▲SAI_Peregrinus 4 hours ago | parent | prev | next [-]

You can always exhaustively run all Turing machines of a given size, at each step comparing the state & tape to all previous steps. If they ever reach the same state with the same tape as a previous step, they're in an infinite loop and never halt. If not, they eventually reach the halt state. BB(n) is computable. But BB is not computable, because there's no general algorithm requiring finite storage and time which computes the results of BB(n) for all n. You have to brute-force it for every positive integer n, which takes infinite time (and space) and is therefore not computable.

▲davrosthedalek 3 hours ago | parent | next [-]

There is no requirement to have a recurring state when not halting. Indeed, the most trivial machine "write 1 and move right", will never have the same tape state.

▲Scarblac 2 hours ago | parent | prev [-]

Note that this casually solves the halting problem, usually a hint that something is wrong.

▲empath75 3 hours ago | parent | prev [-]

I think people are confusing two ideas.

for all n there is some natural number x such that BB(n) = x

x like all natural numbers is trivially computable.

But BB(n) as a function that you could run and _find_ x, is not computable in general, because it would entail solving the halting problem.

▲arethuza 6 hours ago | parent | prev [-]

Is BB(n) "trivially computable"?

▲IsTom 6 hours ago | parent [-]

Well, it's computable as in there is a function that computes BB(n) for a specific n, but you'll never know which function it is.

▲ 2 hours ago | parent [-]
[deleted]