BB(10) > Graham's Number

(github.com)

61 points | by surprisetalk 5 hours ago

4 comments

  • kekqqq 3 hours ago
    I fail to understand why this is interesting or relevant. The README is very non-human-generated and hard to parse or understand.
    • amosj 3 hours ago
      Busy beaver numbers are interesting from a computational perspective. They verge in some ways on unknowable, but as this post shows, sometimes there is some knowability, if you will. I've always enjoyed this blog post about them https://www.scottaaronson.com/writings/bignumbers.html
    • qarl 1 hour ago
      The function BB() is necessarily larger than any function you can compute. It's a surprising/fascinating result.

      I've had a lot of success answering questions like this by asking an LLM. It turns out they understand each other and do a great job explaining.

      Here's a link for this paper:

      https://claude.ai/share/81b1380d-ca03-4ecb-8475-8e0bb95ea87e

    • throwawayy6767 2 hours ago
      Why is math interesting or relevant at all? Why do anything indeed other than sex and eating?
    • socializer 2 hours ago
      It's not "relevant" in any sense, but I think many computer folks are fascinated by busy beaver numbers because it's fairly easy to explain what the numbers mean - it's just a Turing machine with no icky math.

      That said, functionally, they're more or less a restatement of the halting problem, essentially "if the halting problem was a sequence of numbers". Also see Godel's incompleteness. A bit mind-blowing that you have sequences of integers you can't "know" (i.e., compute or verify), but that's about it. There's no chance of this being useful in the system of mathematics we have today.

    • ogogmad 3 hours ago
      It's code golf played with Turing machines. The game is: Make the smallest Turing machine whose runtime is bigger than Graham's number, but still terminates. The record right now is 10 states. At least 6 states are needed because any Turing machine with at most 5 states, that finishes running, has a runtime of at most 47,176,870, which is less than Graham's number. In summary:

        BB(10) > G > BB(5) = 47,176,870.
    • pcstl 3 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 2 hours ago
        No, it's not an obvious result. There is a BB(N) > Graham's Number, but in no way N=10 is obvious.
      • wasabi991011 1 hour ago
        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 1 hour ago
          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.

          • wasabi991011 4 minutes ago
            Ah I see now, thank you.
          • Someone 1 hour ago
            > 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 16 minutes ago
              Integers are what's relevant to BB, and all integers are computable.
      • wat10000 2 hours ago
        Would we expect that Graham's number is less than 47,176,870, since BB(5) = 47,176,870?
      • cubefox 1 hour ago
        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.

      • im3w1l 3 hours ago
        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 2 hours ago
          That's correct. In particular, k=8000 is enough (probably much lower)

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

          • orangecat 2 hours ago
          • GolDDranks 2 hours ago
            The current "independent of ZF" upper bound seems to be BB(432).

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

          • im3w1l 2 hours ago
            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?
            • cobbal 20 minutes ago
              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 5 minutes ago
                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.

            • gizmo686 1 hour ago
              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).

            • GolDDranks 1 hour ago
              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.
      • hyperpape 2 hours ago
        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 2 hours ago
          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 1 hour ago
            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 1 hour ago
              > 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.

              • SAI_Peregrinus 37 minutes ago
                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.
              • empath75 7 minutes ago
                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 2 hours ago
          Is BB(n) "trivially computable"?
          • IsTom 2 hours ago
            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.
  • deanCommie 1 hour ago
    IMHO an output of a function being bigger than Graham's number isn't particularly impressive.

    Consider TREE(3) -> https://www.youtube.com/watch?v=3P6DWAwwViU

    Graham's Number is notable for being one of the first, being an actual relevant bound in an unrelated proof (not just the output of a function), of teaching people the Up Arrow Notation.

    To me, BB(10), TREE(3) etc. being so large is only minorly more impressive than GG(1) where I define I define GG(x) as "Graham's Number + X"

    • guipsp 1 hour ago
      That is not the reason it is interesting. Rather, it is interesting because it (at least claims) a new bound on BB(10)
      • Jaxan 24 minutes ago
        I don’t think such a bound in itself is interesting, unless the proof reveals some strategy to prove more. There are infinitely potential bounds to BB(n), why is this particular case BB(10) > G useful for understanding fast growing functions?
        • NooneAtAll3 23 minutes ago
          > why is this particular case BB(10) < G useful for understanding fast growing functions?

          it's... not?

          it is useful for understanding BB()

          • Jaxan 20 minutes ago
            First, an upper bound would be more useful to understand BB. But second, out of all large numbers, does this one give any information? We’ll have to see. The fact in itself is useless.
    • raincole 1 hour ago
      TREE(3) is interesting as it's not very intuitive that it's even a finite number. Graham's Number is obviously finite.
  • philipwhiuk 2 hours ago
    One problem with LLMs in academic contexts is that because you're paying by the token, it's resulting in extremely short papers that don't adequately explain the context. It's the same problem with long-standing short papers.

    And this is a fine example of this.

    • qarl 1 hour ago
      I'm wondering - have you asked an LLM to flesh-out the paper for you? Or walk you through the details?

      I've been hearing stories of mathematicians who are developing a new found appreciation for LLMs by having them explain the other LLM's paper. I guess the paper has the necessary details but possibly not the best exposition.

      EDIT:

      Here's a link explaining this paper:

      https://claude.ai/share/81b1380d-ca03-4ecb-8475-8e0bb95ea87e