When we think about interpreting a Turing Machine’s behavior, we often think about visualizing the configuration history, for example in a space-time diagram like:
These visual representation can give a lot of hints about the large-scale behavior of the machines over long times, but they can also obscure the details of low-level behavior. In these large images we cannot even see where the TM head is, let alone what transitions it is following. What if instead of watching a TM, we listened?
If we closed our eyes or turned off the lights in the presence of a physical Turing Machine, we could not see these grand visual patterns, but instead, maybe with a little practice, we could learn to pick out the different sounds it made when executing different transitions?
You close your eyes and you hear A0 B0 C0 A1 B1 C0 A0 B0 C0 A1 B1 C0 A0 B0 C0 A1 B1 C0 ...
. Let’s call this the Transcript of the Turing Machine. This name has a double meaning, both the metaphorical meaning that it a transcription of the “sounds” of the TM, but also the literal meaning that it is a script of transitions. Am I leaning too much into this metaphor? If you want a more straightforward name, I believe that @mxdys calls this the Transition History of the TM.
Precisely, a Transcript is the sequence of (current state, read symbol)
pairs over all steps of execution. We will use our standard notation of letters for states and digits for symbols so that one pair looks like C1
for example.
If a TM halts, then it has a finite transcript. For example, the BB(2) champion 1RB1LB_1LA1RZ
has transcript A0 B0 A1 B0 A0 B1
and the BB(3) shift champion 1RB1RZ_1LB0RC_1LC1LA
has transcript A0 B0 B1 C1 A0 B1 C0 C0 C1 A0 B1 C1 A0 B1 C1 A0 B1 C0 C0 C1 A1
.
If you were listening to this transcript played out as musical notes, you might notice the repeated sequence (or “motif”) C1 A0 B1
repeating several times throughout the BB(3) transcript. In fact, C1 A0 B1
corresponds to the rule:
and consecutive repeats of this motif correspond to the shift rule:
\[0 \; \text{C>} \; 1^n \to 1^n \; 0 \; \text{C>}\]Is this a coincidence?
Well, it turns out that every sequence of transitions from a transcript corresponds to some transition rule. For example, B1 C0 C0 C1
corresponds to the rule:^{1}
and A0 B0 B1 C1
corresponds to the rule:
but neither of these sequences can be repeated since there is no way for the configuration afterward to match that before.
However, if we ever have a motif which repeats immediately, that means the end configuration is compatible with the start configuration (same state, no conflicting symbol context). In that case, either the rule is cycling in place or it is a shift rule.
What do Translated Cyclers sound like? Well a translated cycler is, by definition, a situation where the TM is repeating the same finite sequence of transitions forever. Basically, translated cyclers are fancy shift rules that are trying to shift across the infinite blanks at one edge of the tape. We know what this sounds like, a motif repeated forever. But is it possible to know (just by listening) that this motif will repeat forever? For example, the transcript I mentioned first (A0 B0 C0 A1 B1 C0 A0 B0 C0 A1 B1 C0 A0 B0 C0 A1 B1 C0 ...
) clearly has a repeated motif A0 B0 C0 A1 B1 C0
, but will it repeat for the rest of time? In this case, this motif corresponds to the transition
and just liked we discovered in the last section, this corresponds to the shift rule
\[00 \; \text{A>} \; 00^n \xrightarrow{6n} 01^n \; 00 \; \text{A>}\]and this rule would be infinite if we were at the edge of the tape looking off into an infinite field of blank symbols (\(00 \; \text{A>} \; 0^\infty\)). But if we cannot see, and only hear there’s no way to know that we are not instead slowly running toward a wall, like
\[00 \; \text{A>} \; 00^{1000} \; 11 \; 0^\infty\]until we hit it … unless we make one small tweak to our transcript definition: the ability to distinguish the sound of an untouched blank symbol from that of a 0
previously written by the TM! Let us use the symbol _
to refer to the untouched blanks that the tape starts with and 0
to refer to the symbols written by a TM (including if the TM replaces a _
with a 0
!). The TM cannot tell the difference between these, but with your finely tuned ear you can make out a slight difference in pitch.
Using your newly attuned ears you realize that the motif is actually A_ B0 C0 A1 B1 C_
and after examining the transition table you see that this corresponds to the rule
but now that you know that there were _
s on the right, that means you know exactly what is to the right after this rule applies: blanks off to infinity, so this rule can be applied repeatedly forever and we have discovered a Translated Cycler! (Specifically 1LB1RB_1LC0RC_0RA---
)
We can see that in the previous example, we were able (with the help of the transition table) to deduce that this repeating motif was actually evidence of a translated cycle. But can we do this in general? It turns out that the answer is Yes! In fact, we do not even need access to the transition table! Furthermore, we can start listening whenever we want (it doesn’t have to be from the very start of the transcript). And even more-so, we can confidently declare it decided as soon as we hear the repeating motif twice in a row!
How can this be? Well, first let me describe the condition precisely: If any sequence of transitions in a transcript contains at least one _
and repeats itself exactly back-to-back, you can confidently declare that this is a Translated Cycler after only the second time through the sequence. We know from the “Repeated Motifs” section that any repeated motif must correspond to a shift rule (or cycle in place). But we also know that this motif contains a _
(notably also on the second time through) which means that (A) the TM is not cycling in place and (B) the shift rule is moving in the direction of new, untouched _
s. Any shift rule which consumes _
s is guaranteed to run forever, so this is a Translated Cycler!
I learned about this method for detecting Translated Cyclers via Transition History from bbchallenge Discord user @mxdys who shared it in a post on 11 June 2024 (Discord link):
Add a basic step to represent extending the tape edge. If we detect a non-nested for loop that has executed twice and contain a step for extending tape edge, then it’s a translated cycler.
This is one of the simpler cases of a broader class of TMs they call history-linear which involves finding various patterns in the transition history (what I call the transcript here). There is currently some discussion on the #inductive
channel about whether more complex behavior, such as Bouncers can also be similarly “decided by ear”.
The listening metaphor is my own. Do y’all enjoy it when I make playful metaphors like this? Or does it confuse the idea?
@star mentions that they independently proved this “ages ago”. I do not know the history here, please share in the comments if you know more about the origins of this technique!
Note: Here I am using \((A0)\) to mean that the TM is in state A
on symbol 0
. I choose not to use directed head notation here since this rule could apply equally well no matter which direction the head moved to reach this spot. ↩
non-zero symbols on the tape. With a number this large, Knuth up-arrow format is becoming a bit awkward, so we can approximate this bound as:
\[BB(3, 4) > Ack(14)\]where \(Ack(14)\) is the 14th Ackermann number defined as:
\[Ack(n) = n \uparrow^n n\]As far as I know, this is the first TM found “in the wild” that is able to simulate an Ackermann-level function.
1RB3LB1RZ2RA_2LC3RB1LC2RA_3RB1LB3LC2RC
0 | 1 | 2 | 3 | |
---|---|---|---|---|
A | 1RB | 3LB | 1RZ | 2RA |
B | 2LC | 3RB | 1LC | 2RA |
C | 3RB | 1LB | 3LC | 2RC |
It halts with final configuration
\[0^\infty \;\; 3^{2 g_{15}^{3}(0) + 1} \;\; 2^{16} \;\; 1 \;\; \text{ Z> } \;\; 0^\infty\]which leaves exactly
\[\sigma = 2 g_{15}^{3}(0) + 18 = (2 \uparrow^{15} 5) + 14\]non-zero symbols on the tape. (The function \(g_k(m)\) will be defined below).
This TM was discovered by Pavel Kropitz (@uni) and shared on Discord on 25 Apr 2024. His code was not able to specify a human-readable bound on the TM score and it was simply specified as Halt(SuperPowers(13))
indicating 13 layers of inductive rules needed to prove it. He began a validation of this result using my new “Inductive Proof Validator” (see discussion at end of article).
I completed this validation and was able to extract the precise definition of \(g_k^n(m)\) on 20 May 2024 (Discord link) and used that to get a bound of \(\sigma > 2 \uparrow^{15} 3\).
Matthew House (@LegionMammal978) discovered on 22 May 2024 (Discord link) the remarkably simple closed form evaluation:
\[g_k^n(0) = \frac{ 2 \uparrow^k (n+2) }{2} - 2\]which led me to rewrite this article with exact values for \(\sigma\)!
Let
\[B(k, n, m) = 0^\infty \;\; 3^{2m+1} \;\; 2^k \;\; \text{ A> } \;\; 1^n\]then we can prove that
\[\begin{array}{lcl} 0^\infty \;\; \text{A>} \;\; 0^\infty & \xrightarrow{241} & B(16, 3, 0) \;\; 2 \;\; 0^\infty \\ B(k, n, m) & \to & B(k, 0, g_{k-1}^n(m)) & \text{if } k \ge 1 \\ B(k, 0, m) \;\; 2 & \xrightarrow{1} & 0^\infty \;\; 3^{2m+1} \;\; 2^k \;\; 1 \;\; \text{Z>} \\ \end{array}\]where
\[\begin{array}{l} g_0(m) & = & m + 1 \\ g_{k+1}(m) & = & g_k^{2m+2}(0) \\ \end{array}\]This TM is remarkably simple in the sense that its behavior can be almost completely described by one single rule:
\[B(k, n, m) \to B(k, 0, g_{k-1}^n(m))\]but that rule is a whopper requiring double induction to prove!
Lemma 1: For all \(k \ge 1\):
\[3 \;\; 2^k \;\; \text{<B} \;\; \xrightarrow{2k+1} \;\; 2^k \;\; \text{<B} \;\; 1\]Corollary 2: For all \(k \ge 1, m \ge 0\):
\[3^m \;\; 2^k \;\; \text{<B} \;\; \xrightarrow{(2k+1)m} \;\; 2^k \;\; \text{<B} \;\; 1^m\]Proofs left as an exercise to the reader.
Theorem 3: For all \(k \ge 1, n \ge 0, m \ge 0\):
\[B(k, n, m) \to B(k, 0, g_{k-1}^n(m))\]Proof by Induction on \(k\):
Proof by induction on \(n\):
QED
Through what appears to be a remarkable series of coincidences, there is a relatively simple closed form evaluation of \(g_k\) using only Knuth up-arrows and arithmetic:
Theorem: For all \(k \ge 0, m \ge 0\):
\[2 g_{k+1}(m) + 4 = 2 \uparrow^k (2m+4)\](where we define \(a \uparrow^0 b = ab\))
Proof by Induction on \(k\):
QED
Note: This depends upon the coincidence that \(2 \uparrow^k 2 = 4\) for all \(k\). If the parameters had been slightly different and we’d ended up with \((2 \uparrow^k)^{2m+2} 5\) above, I don’t think it would have been possible to get a closed form expression.
Corollary: For all \(k \ge 0, n \ge 0\):
\[2 g_k^n(0) + 4 = 2 \uparrow^k (n+2)\]From which it follows directly that:
\[\sigma = 2 g_{15}^{3}(0) + 18 = (2 \uparrow^{15} 5) + 14\]Therefore, we can see that if we switch to:
B
, the TM halts with a score of \(\sigma_B = 2 g_6^3(0) + 9 = (2 \uparrow^6 5) + 5\)C
, the TM halts with a score of \(\sigma_C = 2 g_0^3(0) + 3 = (2 \uparrow^0 5) - 1 = 9\) (which it does at step 72).This first permutation (start state B
) is another top BB(3, 4) TM. Converted into TNF it is:
1RB3RB1LC2LA_2LA2RB1LB3RA_3LA1RZ1LC2RA
0 | 1 | 2 | 3 | |
---|---|---|---|---|
A | 1RB | 3RB | 1LC | 2LA |
B | 2LA | 2RB | 1LB | 3RA |
C | 3LA | 1RZ | 1LC | 2RA |
One interesting thing about this TM is how surprisingly simple it is. For example, the fact that it does not have any Collatz-like rules (rules which act differently depending on the remainder of some value). Is this the end of the domination of Collatz-like TMs? It is far too early to know, but my guess is that there are Collatz-like Ackermann-level TMs waiting for us, but we are not seeing them right away because of selection bias. Perhaps this was the first Ackermann-level TM found because it is simple enough to be proven halting without having to implement modular arithmetic on Ackermann-level functions.
This TM was the perfect test case for an “inductive proof” validator I am currently developing. The goal of this project is to develop a standardized certificate format for “inductive proofs” (an umbrella term for all the sort of forward-reasoning, rule-based analyses that are ubiquitous on this blog). The idea is that anyone with an “inductive decider” could write out their rules in this format and then this validator can check these proofs. The system is still very clunky and not ready for prime time, but I have been able (with a little elbow grease) to use it to prove the behavior of many TMs including this one.
]]>Starting from 3 and repeatedly applying \(f\) we get the infinite sequence:
\[3 \xrightarrow{O} 4 \xrightarrow{E} 6\xrightarrow{E} 9 \xrightarrow{O} 13 \xrightarrow{O} 19 \xrightarrow{O} 28 \xrightarrow{E} 42 \xrightarrow{E} 63 \cdots\]where the O
s and E
s above each arrow represent whether we chose the Odd or Even rule to apply.
Starting from 3, will you ever reach a point where the cumulative number of E
s applied is greater than twice the number of O
s applied?
Solving the 2 state, 5 symbol Busy Beaver problem requires solving this Collatz-like problem! Specifically, we have a new Cryptid, the “Hydra”.
Daniel Yuan (@dyuan01) first reported this TM on Discord on 20 Apr 2024. He named it “Hydra” after the famous Greek mythological beast. The machine definition is:
1RB3RB---3LA1RA_2LA3RA4LB0LB0LA
(on bbchallenge)
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
A | 1RB | 3RB | — | 3LA | 1RA |
B | 2LA | 3RA | 4LB | 0LB | 0LA |
It is one of the remaining 902 informal \(BB(2, 5)\) holdouts that Justin Blanchard recently shared on Discord which in turn was filtered down from my list of 23k holdouts.
Let
\[A(a, b) = 0^\infty \; \text{ <B } \; 0^a \; 3^b \; 2 \; 0^\infty\]Then the following rules apply:
\[\begin{array}{l} \text{Start} & & \xrightarrow{19} & A(3, 0) \\ A(2n, & 0) & \to & \text{Halt}(3n+3) \\ A(2n, & b+1) & \to & A(3n+3, b) \\ A(2n+1, & b) & \to & A(3n+3, b+2) \\ \end{array}\]Where these rules apply for any values \(n, b \ge 0\), “Start” is the TM in state A
on a blank tape and “Halt(x)” means the TM halts with \(x\) non-zero symbols on the tape.
One detail that jumps out to me about the Collatz-like behavior above, specifically that \(a\) is always divisible by 3. So we can rewrite this relation a bit:
Let
\[B(a, b) = A(3a, b) = 0^\infty \; \text{ <B } \; 0^{3a} \; 3^b \; 2 \; 0^\infty\]Then:
\[\begin{array}{l} \text{Start} & & \xrightarrow{19} & B(1, 0) \\ B(2n, & 0) & \to & \text{Halt}(9n+3) \\ B(2n, & b+1) & \to & B(3n+1, b) \\ B(2n+1, & b) & \to & B(3n+2, b+2) \\ \end{array}\]Furthermore, if you let
\[C(a, b) = B(a-2, b) = 0^\infty \; \text{ <B } \; 0^{3(a - 2)} \; 3^b \; 2 \; 0^\infty\]then:
\[\begin{array}{l} \text{Start} & & \xrightarrow{19} & C(3, 0) \\ C(2n, & 0) & \to & \text{Halt}(9n-6) \\ C(2n, & b+1) & \to & C(3n, & b) \\ C(2n+1, & b) & \to & C(3n+1, & b+2) \\ \end{array}\]For all \(n \ge 1\).
This recurrence has the elegant properties that
\[C(n, b) \to C(n + \left\lfloor \frac{n}{2} \right\rfloor, b^\prime)\]and
\[\begin{array}{l} C(2^k, & b+k) & \to & C(3^k, & b) \\ C(2^k + 1, & b) & \to & C(3^k + 1, & b+2k) \\ \end{array}\]Much like Bigfoot, Hydra performs a pseudo-random walk using the parity from a Collatz-like function to determine which direction to walk. And like Bigfoot, that walk is biased so that after simulating for a while the apparent “probability” of halting is vanishingly small.
Specifically, we can see that the C
rules above are simulating the Collatz-like function I described in the intro:
on it’s a
parameter while keeping a sort of counter in the b
parameter. Every time you apply an Odd rule, \(b \to b+2\). Every time you apply an Even rule, \(b \to b-1\). Hydra only halts if you ever end up with \(b < 0\).
If you simulate this recurrence for 4 million steps you get a value:
\[C(> 10^{704\,365}, 2\,005\,373)\]Just like with Bigfoot, if we consider this to be a truly random walk where half the time it walks one step left and half the time 2 steps right, then the chance of ever reaching \(b < 0\) when starting from \(b = n\) is \((\frac{1}{2})^{n+1}\). So, the chance of coming back from \(b = 2\,005\,373\) would be the minute fraction \((\frac{1}{2})^{2\,005\,374}\).
Thus Hydra “probviously” never halts. But to prove it you would have to prove a Collatz-like problem.
Hydra’s behavior is quite similar to Bigfoot’s as described already in this article. The main difference is that Hydra computes a much simpler (and I would say more elegant) Collatz-like function. In fact it is almost the simplest possible Collatz-like function!
My article about Bigfoot actually got quite a bit of attention being posted to Hacker News and Reddit r/math where it got over 100 comments! Among these there was a reasonably common theme summed up well by this comment:
nneonneo: Probably more accurate to say that BB(3, 3) looks hard; that is, it encodes a Collatz-type problem, and many Collatz-type problems are very hard to solve (including, of course, the classic Collatz conjecture). However, this instance might not necessarily be hard. For one, the behaviour seems to be heavily biased; for another, we only have to consider a single trajectory instead of the trajectories for all integers (as with the classic Collatz problem).
Which is totally true! These Cryptids simulate problems that appear (subjectively) to be hard. But maybe they are not. Perhaps these specific Collatz-like questions have a clever solution. Hydra helps to remove at least one of nneonneo’s caveats: Hydra’s Collatz-like function is extremely simple and does not follow any specific pattern (like the odd, odd, even, even pattern that Bigfoot followed).
A few days after discovering Hydra, Daniel found another BB(2, 5) Cryptid:
1RB3RB---3LA1RA_2LA3RA4LB0LB1LB
Define
A(a, b) = 0^inf <B 0^a 3^b 2 0^inf
The rules are
A(3n, 0) -> Halt
A(3n, b+1) -> A(4n+3, b)
A(3n+1, b) -> A(4n+3, b+3)
A(3n+2, 0) -> ?
A(3n+2, b+1) -> A(4n+5, b)
Starts: A(3, 1)
I have not looked into analyzing this one yet, but wanted to share it since AFAIK it is only the 3rd Cryptid discovered (after Bigfoot and Hydra).
]]>and (as far as I can tell) some of them have not been beaten to this day.
Green’s Machines are still referenced often in discussion about Busy Beavers. However, I have not seen much discussion about the machines themselves. Even reading the original paper is a bit of a challenge. In it Green defines 4 different families of Turing Machines (\(M_N, G_N, B_N, BB_N\)) and I find the subtleties of how each is defined and extended to the other families to be quite confusing every time I read it. In order to support more widespread understanding of the details of Green’s constructions, this post will describe Green’s Machines and their scores in modern notation.
Note: I use names in this article that are adapted from Green’s names, but are not quite identical. The difference is somewhat subtle.
The Green Machines are made up of two components, split up by states. These components will be a setup component \(S_k\) and a compute component \(G_n\).
The main workhorse is the \(G_n\) component. For every odd \(n\), \(G_n\) defined by the transition table:
State | 0 | 1 |
---|---|---|
\(Q_n\) | \(1 L T_n\) | \(1 R Q_{n+2}\) |
\(T_n\) | \(0 L Q_{n-2}\) | \(0 L T_n\) |
… | … | … |
\(Q_k\) | \(1 L T_k\) | \(1 R Q_{k+2}\) |
\(T_k\) | \(0 L Q_{k-2}\) | \(0 L T_k\) |
… | … | … |
\(Q_1\) | \(1 R Q_1\) | \(1 R Q_3\) |
Where the \(Q_k, T_k\) are defined this way for all odd \(3 \le k \le n\).
This component has a single entry state (\(Q_n\)) which the setup component should transition into when it wants to run the \(G_n\) component and a single exit state (\(Q_{n+2}\)) which the component will transition out to when it is done with it’s computation.
These compute a series of fast-growing functions \(G_n(k)\) that I will describe in detail below.
There are two different setup components \(S_3\) and \(S_4\) (with 3 and 4 states respectively). Either can be added to any \(G_n\) component in order to make a Green Machine of either even or odd number of states (respectively).
The \(S_3\) component is defined by:
State | 0 | 1 |
---|---|---|
\(A = Q_{n+2}\) | \(1LB\) | \(1RZ\) |
\(B\) | \(0LT\) | \(1LT\) |
\(T\) | \(0 L Q_n\) | \(0LT\) |
where \(Q_n\) is the entry state and \(A = Q_{n+2}\) is the exit state of the \(G_n\) component.
When attached to \(G_{2k+1}\), this produces an even state \(BB_{2k+4}\) Green Machine (with start state A
and halt state Z
).
The \(S_4\) component is defined by:
State | 0 | 1 |
---|---|---|
\(A\) | \(1LT\) | \(1LB\) |
\(B\) | \(1LZ\) | \(1LA\) |
\(C = Q_{n+2}\) | \(0LB\) | \(1LT\) |
\(T\) | \(0 L Q_n\) | \(0LT\) |
where \(Q_n\) is the entry state and \(C = Q_{n+2}\) is the exit state of the \(G_n\) component.
which, when attached to \(G_{2k+1}\), this produces an odd state \(BB_{2k+5}\) Green Machine (with start state A
and halt state Z
).
Putting this all together and converting into Standard Text format we get for example:
1LD1LB_1LZ1LA_0LB1LD_0LE0LD_1LF1RC_0LG0LF_1RG1RE
(on bbchallenge)1LB1RZ_0LC1LC_0LD0LC_1LE1RA_0LF0LE_1LG1RD_0LH0LG_1RH1RF
(on bbchallenge)1LD1LB_1LZ1LA_0LB1LD_0LE0LD_1LF1RC_0LG0LF_1LH1RE_0LI0LH_1RI1RG
(on bbchallenge)1LB1RZ_0LC1LC_0LD0LC_1LE1RA_0LF0LE_1LG1RD_0LH0LG_1LI1RF_0LJ0LI_1RJ1RH
(on bbchallenge)Note:
Z
in all of these as the halt state. H
is not a halt state, but instead the 8th state.In order to motivate the \(G_n\) component, Green defines a general specification for TMs: Class G Machines. A TM, M
, as a Class G Machine (with entry state \(M_{in}\) and exit state \(M_{out}\)) if it conforms to the following behavioral specification:
In words:
0
1
s to its left (and nothing else),1
s to its left (and nothing else).1
,
We will say that M
computes the function \(M(k) = m\).
Note: An immediate consequence of the above specification is that:
\[\begin{array}{l} 0^\infty & 1^k & M_{in} > & 0^r & 1 & \to & 0^\infty & 1^{M^r(k) + 1} & M_{out} > \\ \end{array}\]Each \(G_n\) component is a Class G Machine (with entry state \(Q_n\) and exit state \(Q_{n+2}\)). We can see this via induction.
We can see directly that \(G_1\)
State | 0 | 1 |
---|---|---|
\(Q_1\) | \(1 R Q_1\) | \(1 R Q_3\) |
is a Class G Machine (with entry state \(Q_1\), exit state \(Q_3\)) which computes the function:
\[G_1(k) = k + 1\]We can build \(G_{n}\) by simply adding two states to \(G_{n-2}\):
State | 0 | 1 |
---|---|---|
\(Q_n\) | \(1 L T_n\) | \(1 R Q_{n+2}\) |
\(T_n\) | \(0 L Q_{n-2}\) | \(0 L T_n\) |
Now, assuming that \(G_{n-2}\) is a Class G Machine (with entry state \(Q_{n-2}\), exit state \(Q_{n}\)), we will prove that \(G_{n}\) is a Class G Machine (with entry state \(Q_{n}\), exit state \(Q_{n+2}\)):
First, the easy part:
\[\begin{array}{l} Q_n > & 1 & \to & 1 & Q_{n+2} > \\ \end{array}\]in a single step.
Second, we will use the inductive assumption which tells us that
\[\begin{array}{l} 0^\infty & 1^k & Q_{n-2} > & 0^r & 1 & \to & 0^\infty & 1^{G_{n-2}^r(k) + 1} & Q_n > \\ \end{array}\]in order to prove:
\[\begin{array}{l} 0^\infty & 1^k & Q_n > & 0 & \to & 0^\infty & 1^k & < T_n & & 1 \\ & & & & \to & 0^\infty & & < T_n & 0^k & 1 \\ & & & & \to & 0^\infty & & < Q_{n-2} & 0^{k+1} & 1 \\ & & & & = & 0^\infty & & Q_{n-2} > & 0^{k+2} & 1 \\ & & & & \to & 0^\infty & 1^{G_{n-2}^{k+2}(0) + 1} & Q_n > \\ \end{array}\]thus proving that \(G_n\) is a Class G Machine and also that
\[G_n(k) = G_{n-2}^{k+2}(0) + 1\]Thus we can see that \(G_n\) are all Class G Machines which compute a fast-growing hierarchy of functions. The sequence begins with:
# States | Function | |
---|---|---|
\(G_1\) | 1 | \(G_1(k) = k + 1\) |
\(G_3\) | 3 | \(G_3(k) = G_1^{k+2}(0) + 1 = k + 3\) |
\(G_5\) | 5 | \(G_5(k) = G_3^{k+2}(0) + 1 = 3k + 7\) |
\(G_7\) | 7 | \(G_7(k) = G_5^{k+2}(0) + 1 = \frac{7 \cdot 3^{k+2} - 5}{2} > 3^k\) |
\(G_9\) | 9 | \(G_9(k) = G_7^{k+2}(0) + 1 > 3 \uparrow\uparrow k\) |
While the sequence of \(G_n\) machines above compute impressively large functions, they need a little help when starting from a blank tape. This is where the Setup Components \(S_3\) and \(S_4\) come in. These setup components are very clever, they find a way to efficiently use the \(G_n\) components to initialize the tape for themselves.
Starting from any \(G_n\), we can produce the \(n+3\) state Green Machine \(BB_{n+3}\) by adding the \(S_3\) component:
State | 0 | 1 |
---|---|---|
\(A = Q_{n+2}\) | \(1LB\) | \(1RZ\) |
\(B\) | \(0LT\) | \(1LT\) |
\(T\) | \(0 L Q_n\) | \(0LT\) |
Then we can see, that, starting in state A
on a blank tape we get the trajectory:
Which halts with exactly \(BB_{n+3} = G_n^{G_n^3(0) + 2}(0) + 2\) 1
s on the tape (this TMs “score”).
Note that:
\[G_{n+2}(k) = G_n^{k+2}(0) + 1\]so we can rewrite these scores as
\[BB_{n+3} = G_n^{G_n^3(0) + 2}(0) + 2 = G_n^{G_{n+2}(1) + 1}(0) + 2 = G_{n+2}(G_{n+2}(1) - 1) + 1\]Starting from any \(G_n\), we can produce the \(n+4\) state Green Machine \(BB_{n+4}\) by adding the \(S_4\) component:
State | 0 | 1 |
---|---|---|
\(A\) | \(1LT\) | \(1LB\) |
\(B\) | \(1LZ\) | \(1LA\) |
\(C = Q_{n+2}\) | \(0LB\) | \(1LT\) |
\(T\) | \(0 L Q_n\) | \(0LT\) |
This setup is more subtle to prove. It actually depends upon the fact that \(G_n(k)\) is a “parity swapping function”, in other words that:
\[\begin{array}{l} G_n(2k) & \equiv & 1 & \pmod{2} \\ G_n(2k+1) & \equiv & 0 & \pmod{2} \\ \end{array}\]This turns out to be true for all \(G_n(k)\) (which can be proven easily by induction).
Specifically, we use this fact below in the following transitions:
\[\begin{array}{l} 1^{G_{n+2}(0)} & <B & \to & <A & 1^{G_{n+2}(0)} \\ 1^{G_{n+2}^{G_{n+2}(0)}(G_{n+2}(0))} & <B & \to & <B & 1^{G_{n+2}^{G_{n+2}(0)}(G_{n+2}(0))} \\ \end{array}\]Since \(G_{n+2}(0)\) is odd and \(G_{n+2}^{G_{n+2}(0)}(G_{n+2}(0))\) is even.
We also need to prove a general rule first:
\[\begin{array}{l} 0^\infty & 1^k & C> & 1 & \to & 0^\infty & 1^k & <T & 1 \\ & & & & \to & 0^\infty & <T & 0^k & 1 \\ & & & & \to & 0^\infty & < Q_n & 0^{k+1} & 1 \\ & & & & = & 0^\infty & Q_n > & 0^{k+2} & 1 \\ & & & & \to & 0^\infty & 1^{G_n^{k+2}(0) + 1} & Q_{n+2} > \\ & & & & = & 0^\infty & 1^{G_{n+2}(k)} & C> \\ \end{array}\]Applying this recursively we get:
\[\begin{array}{l} 0^\infty & 1^k & C> & 1^r & \to & 0^\infty & 1^{G_{n+2}^r(k)} & C> \\ \end{array}\]Finally, we can see, that, starting this TM in state A
on a blank tape we get the trajectory:
Which halts with exactly \(BB_{n+4} = G_{n+2}^{G_{n+2}(0)}(G_{n+2}(0)) + 1\) 1
s on the tape (this TMs “score”).
Once again, we can simplify:
\[BB_{n+4} = G_{n+2}^{G_{n+2}(0)}(G_{n+2}(0)) + 1 = G_{n+2}^{G_{n+2}(0) + 1}(0) + 1 = G_{n+4}(G_{n+2}(0) - 1)\]Putting this all together, Green defined components \(G_n\) which compute a fast growing hierarchy of functions and two different setup components \(S_3\) and \(S_4\) which can be added on top in order to produce a sequence of TMs \(BB_n\) which start on a blank tape and leave large numbers of 1
s upon halting. Precisely,
We can compute the following exact values and (reasonably tight) bounds using Knuth up-arrow notation:
\[\begin{array}{l} G_1(k) & = & k + 1 && G_1(0) = 1 & G_1(1) = 2 \\ G_3(k) & = & k + 3 && G_3(0) = 3 & G_3(1) = 4 \\ G_5(k) & = & 3k + 7 && G_5(0) = 7 & G_5(1) = 10 \\ G_7(k) & = & \frac{7 \cdot 3^{k+2} - 5}{2} > 3^{k+3} && G_7(0) = 29 & G_7(1) = 92 \\ G_9(k) & > & 3 \uparrow\uparrow (k + 3) && G_9(0) = \frac{7 \cdot 3^{31} - 3}{2} \\ G_{11}(k) & > & 3 \uparrow\uparrow\uparrow (k + 3) \\ & \vdots \\ G_{2n+5}(k) & > & 3 \uparrow^n (k + 3) \\ \end{array}\]And similarly for \(BB_n\) values:
\[\begin{array}{lcrcl} BB_{ 4} & = & 7 \\ BB_{ 5} & = & 13 \\ BB_{ 6} & = & 35 \\ BB_{ 7} & = & 22\,961 & > & 3^{ 9} & = & 3^{3^2} \\ BB_{ 8} & = & \frac{7 \cdot 3^{93} - 3}{2} & > & 3^{94} & > & 3^{3^4} \\ BB_{ 9} & = & G_9(28) & > & 3 \uparrow\uparrow 31 & > & 3 \uparrow\uparrow 3 \uparrow\uparrow 2 \\ BB_{10} & > & G_9(3 \uparrow\uparrow 4) && & > & 3 \uparrow\uparrow 3 \uparrow\uparrow 4 \\ & \vdots \\ BB_{2n+5} & > & G_{2n+5}(3 \uparrow^{n-1} 3) & > & 3 \uparrow^n (3 \uparrow^{n-1} 3) & = & 3 \uparrow^n 3 \uparrow^n 2 \\ BB_{2n+6} & > & G_{2n+5}(3 \uparrow^n 4) && & > & 3 \uparrow^n 3 \uparrow^n 4 \\ \end{array}\]When Green published his paper in 1964, all \(BB_n\) for \(n \ge 6\) were Busy Beaver champions. However, over the years several have been slowly chipped away. According to Pascal Michel’s Historical survey of Busy Beavers:
Yet, beyond this I do not know of any TMs beating Green’s Machines until finally, they are eclipsed by Daniel Nagaj’s massive BB(16) > Graham champion (since \(BB_{16} \ll g_2 \ll G\)).
Green Machine | Busy Beaver Bound |
---|---|
\(BB_{ 9}\) | \(\Sigma(9) > 3 \uparrow\uparrow 31 > 10 \uparrow\uparrow 30\) |
\(BB_{10}\) | \(\Sigma(10) > 3 \uparrow\uparrow 3 \uparrow\uparrow 4 > 10 \uparrow\uparrow 10^{10^{12}}\) |
\(BB_{11}\) | \(\Sigma(11) > 3 \uparrow\uparrow\uparrow 3 \uparrow\uparrow\uparrow 2 > 10 \uparrow\uparrow\uparrow 10^{12}\) |
\(BB_{12}\) | \(\Sigma(12) > 3 \uparrow\uparrow\uparrow 3 \uparrow\uparrow\uparrow 4\) |
\(BB_{13}\) | \(\Sigma(13) > 3 \uparrow^4 3 \uparrow^4 2\) |
\(BB_{14}\) | \(\Sigma(14) > 3 \uparrow^4 3 \uparrow^4 4\) |
\(BB_{15}\) | \(\Sigma(15) > 3 \uparrow^5 3 \uparrow^5 2\) |
Do any of you know of any better results in this range? Let me know in the new comments system below (just set up today!).
Milton W. Green. “A Lower Bound on Rado’s Sigma Function for Binary Turing Machines”, Preceedings of the IEEE Fifth Annual Symposium on Switching Circuits Theory and Logical Design, 1964, pages 91–94, doi: 10.1109/SWCT.1964.3. ↩
Last year, in Mother of Giants, I described a family of TMs which require efficient simulation or complete solution of a Collatz-like problem in order to prove if they “quasihalt” or not. These were found in the search for “Beeping” Busy Beavers, a variant of the Busy Beavers introduced by Scott Aaronson in his 2020 Busy Beaver survey article. Since then I have been looking for an example in the normal Busy Beaver game.
There have been many wonderful TMs produced by hand over the years which provide such results for the Busy Beaver game. For example, proving:
However, none of these Busy Beaver values are really within reach of us mere mortals yet. In the last 60 years, we have only been able to prove values \(BB(2), BB(3), BB(4)\) and \(BB(2, 3)\) and it is known that \(BB(6) > 10 \uparrow\uparrow 15\). Until I analyzed this TM, I thought that we might have a chance to prove \(BB(3, 3)\)!
I’ll call this TM “Bigfoot” (I’ll explain the name at the end of the article). It is defined by the transition table:
1RB2RA1LC_2LC1RB2RB_---2LA1LA
(on bbchallenge)
0 | 1 | 2 | |
---|---|---|---|
A | 1RB | 2RA | 1LC |
B | 2LC | 1RB | 2RB |
C | — | 2LA | 1LA |
It is one of the remaining 160 informal \(BB(3, 3)\) holdouts that Justin Blanchard recently shared on the bbchallenge.org Discord channel. This specific TM was first shared by @savask on 14 Oct 2023 on that same Discord channel with a low level description of it’s behavior. I built on top of that analysis to discover the Collatz-like nature and biased random walk described below.
Consider the general configuration:
\[A(a, b, c) = 0^\infty \; 12^a \; 11^b \; \text{ <A } \; 11^c \; 0^\infty\]We can prove the following rules:
\[\begin{array}{l} A(a, & 6k, & c) & \to & A(a, & 8k+c-1, & 2) & \text{if} & 8k+c \ge 1 \\ A(a, & 6k+1, & c) & \to & A(a+1, & 8k+c-1, & 3) & \text{if} & 8k+c \ge 1 \\ A(a, & 6k+2, & c) & \to & A(a-1, & 8k+c+3, & 2) & \text{if} & a \ge 1 \\ A(a, & 6k+3, & c) & \to & A(a, & 8k+c+1, & 5) \\ A(a, & 6k+4, & c) & \to & A(a+1, & 8k+c+3, & 2) \\ A(a, & 6k+5, & c) & \to & A(a, & 8k+c+5, & 3) \\ \end{array}\] \[A(0, 6k+2, c) \to \text{Halt}(16k+2c+7)\]In fact, these rules are exhaustive. Once Bigfoot enters such a \(A(a, b, c)\) config (with \(c \ge 1\)), these rules describe the exact behavior it will follow forever (or until it halts).
Looking at the rules above we can see that they are iterating a Collatz-like function on parameters \(b\) and \(c\) while \(a\) keeps a sort of running total. Every time \(b \equiv 1 \pmod{6}\) or \(b \equiv 4 \pmod{6}\), \(a\) is incremented and every time \(b \equiv 2 \pmod{6}\), \(a\) is decremented. Bigfoot only ever halts if \(a\) would be decremented below 0.
Starting from a blank tape, Bigfoot reaches config \(A(2, 1, 2)\) at step 69. Simulating this forward, \(a\) appears to grow steadily over time. After 24 million iterations, we have \(a = 3\,999\,888\).
Let’s consider the sequence of remainders of \(b\) mod 6. If we imagine that this sequence is uniformly randomly distributed, then this process is simulating a biased random walk on the number line where (for each step) the chance of stepping right is \(\frac{2}{3}\) and the chance of stepping left is \(\frac{1}{3}\).
This is a famous problem in the theory of Markov chains and it can be proven that if you are at position \(a = n\), there is a \((\frac{1}{2})^{n+1}\) chance you will ever reach the position \(a = -1\) in the future.
Of course, the sequence of remainders of \(b\) are not random, they are completely deterministic. (In fact, they even follow the consistent pattern of odd, odd, even, even, …) However, on a broad scale they do appear to follow a trajectory roughly like the random Markov chain. We can see that in the trajectory listed above where after 24 million steps, the Markov chain would be expected to move to the right 8 million times and to the left 4 million leading to a value very close to the actual \(a\) around 4 million.
As mentioned above, the random Markov chain would have about a \((\frac{1}{2})^{4\,000\,000}\) chance of ever reaching \(a = -1\) at this point which is a number so small that any scientist would happily declare this guaranteed to fail. Likewise, this is where I will say that Bigfoot “probviously” never halts (using the words of John Conway). Meaning that if it operates anything close to the Markov Chain it will never halt.
Of course, this sort of statement says nothing in a rigorous Mathematical sense. Instead it is sort of an experimental heuristic which I am using to guide my intuition in this case. There is always the chance that after a googolplex iterations Bigfoot will halt. In fact, Conway coined this term to describe the heuristic argument for why the Collatz conjecture should be “probviously” true and yet a proof of Collatz is nowhere in sight.
We live in one of two worlds, either Bigfoot halts or it runs forever. If it halts, then that could be proven by accelerating iterations of this Collatz-like function enough that it is tractable to simulate it to completion. If it runs forever, then proving that requires proving that this Collatz-like function will never reach the \(a = 0\) halting transition.
Based on the Markov chain argument above, I believe we are living in this second world and it seems to me that this is the much harder case to prove.
What do we call these sorts of machines? Ones whose behavior has been distilled into a relatively simple Mathematical rule that falls into a class of open Mathematical problems. These machines seem to be a sort of legendary creature, rumors have it that they either halt or do not, but nobody has been able to provide any concrete evidence to support either conclusion. I propose calling them “Cryptids”, drawing parallels to the legendary creatures like the Loch Ness Monster or Chupacabra. And well, since this TM appears to randomly walk about, I thought Bigfoot would be an apt name.
I imagine that some of you might be wondering: Is the behavior of this specific Collatz-like function really hard to analyze? Am I overselling this behavior simply by it’s association with the famously difficult Collatz problem? I think it is safe to say that nobody aside from me has ever looked at the dynamics of this specific problem. So perhaps with a little bit of number theory and elbow grease, someone will be able to find a clever Mathematical property that applies to this problem (but not to the broader set of Collatz-like problems). This is certainly possible and I am excited to hear if anyone has any ideas as to how to attack this problem. It would be lovely to know that proving \(BB(3, 3)\) remains within reach!
However, in my (limited) experience analyzing and reading about Collatz-like problems there seem to be only two types of questions that one can ask: (1) Ones that are relatively trivial to prove and (2) Ones which no Mathematician knows how to prove. In the first category we have patterns like the fact that \(b\) repeats consistently through the pattern (odd, odd, even, even, …) in Bigfoot’s Collatz iterations or that every time you apply the traditional \(3n+1\) Collatz rule you always end up with an even number which will then be divided by 2 on the next step. Examples of the second category include basically all other questions we might ask about the behavior of these Collatz systems.
This section was added on 18 Oct 2023
The Collatz-like behavior I described above has a few annoying characteristics:
Shortly after I posted this article, Matthew House (@LegionMammal978 on Discord) pointed out that if you define a new configuration as:
\[B(a, b) = A(a, 2b+1, 2)\]consider \(b = 81k + r\) and apply 4 of the original transitions as one transition, then you can derive the following alternative representation of the Collatz-like behavior of this TM:
Note: Some of these rules depend upon \(a \ge 2\).
This representation addresses all 3 of the listed characteristics of \(A\) and appears more akin to the classic Collatz problem. But, of course, it is also a bit unwieldy with its 81 cases!
]]>In the video, Fer takes us on a journey that we rarely get to see: Inside the process of exploration that he himself took while trying his hand at the Collatz Conjecture. And the journey is a wild and exciting one, transforming this from a number problem into a Game of Thrones tile game, leading up to what seems like it might be a proof of the Collatz Conjecture itself, only to be followed by a sober self-analysis of how much his own “proof” fails Scott Aaronson’s heuristic crackpot test. It reminds me of Donald Knuth’s novelette: Surreal Numbers: How Two Ex-students Turned on to Pure Mathematics and Found Total Happiness (which I highly recommend to anyone reading this blog) except with more drama!
As a long-time Collatz enthusiast, I really enjoyed seeing someone share their authentic journey in grappling with this famous problem. In this blog post, I would like to share an abstraction that is similar to Fer’s, but I think you might find simpler to work with. My hope here is to give another tool to folks who might have been inspired by Fer’s approach to pursuing Collatz.
Let me start by laying out an alternative way of thinking about the Collatz problem. It is similar to Fer’s, but I think it is simpler and easier to reason about. First, some definitions:
The Collatz function is often written as:
\[C(n) = \begin{cases} n/2 & \text{if } n \equiv 0 \pmod{2} \\ 3n+1 & \text{if } n \equiv 1 \pmod{2} \\ \end{cases}\]However, since the \(3n+1\) case is guaranteed to be even, it is often convenient to use the reduced version that automatically divides that result by 2:
\[D(n) = \begin{cases} \frac{n}{2} & \text{if } n \equiv 0 \pmod{2} \\ \frac{3n+1}{2} & \text{if } n \equiv 1 \pmod{2} \\ \end{cases}\]Note that this function can also be expressed as:
\[\begin{array}{l} D & : & 2k & \mapsto & k \\ & & 2k+1 & \mapsto & 3k+2 \\ \end{array}\]And this is the version that we will find most useful.
Let us call \(2k \mapsto k\) an I
ce transition and \(2k+1 \mapsto 3k+2\) a F
ire transition (since they lower or raise the “temperature” respectively). Starting at any initial number, repeatedly applying \(D\) will produce a sequence of these transitions. For example, starting at 13, we get the sequence:
Looking only at the types of transitions this simplifies to the sequence FIIFIII
. Let us call a sequence of I
s and F
s like this a “Song” (These are analogous to what Fer calls a “Constellation”, but I am too invested in my Game of Thrones pun to use that term!) and furthermore, let’s say that a song is “sung” by a number if that number follows the transitions from that song. So 13 sings FIIFIII
(and it also sings FIIF
and FIIFIIIFIFI
, etc.).
This inspires a few questions: Is every song sung by some number? Given a song, can we find which numbers sing it?
Let’s consider what happens when we apply \(D\) twice:
\[\begin{array}{l} D^2 & : & 4k & \overset{I} \mapsto & 2k & \overset{I} \mapsto & k \\ & & 4k+1 & \overset{F} \mapsto & 6k+2 & \overset{I} \mapsto & 3k+1 \\ & & 4k+2 & \overset{I} \mapsto & 2k+1 & \overset{F} \mapsto & 3k+2 \\ & & 4k+3 & \overset{F} \mapsto & 6k+5 & \overset{F} \mapsto & 9k+8 \\ \end{array}\]Therefore, we can see that every possible 2 letter song is sung and we have characterized exactly which numbers sing those songs. For example, every number \(4k+3\) sings the song FF
.
Extending one further we get:
\[\begin{array}{l} D^3 & : & 8k & \overset{I} \mapsto & 4k & \overset{I} \mapsto & 2k & \overset{I} \mapsto & k \\ & & 8k+1 & \overset{F} \mapsto & 12k+ 2 & \overset{I} \mapsto & 6k+ 1 & \overset{F} \mapsto & 9k+ 2 \\ & & 8k+2 & \overset{I} \mapsto & 4k+ 1 & \overset{F} \mapsto & 6k+ 2 & \overset{I} \mapsto & 3k+ 1 \\ & & 8k+3 & \overset{F} \mapsto & 12k+ 5 & \overset{F} \mapsto & 18k+ 8 & \overset{I} \mapsto & 9k+ 4 \\ & & 8k+4 & \overset{I} \mapsto & 4k+ 2 & \overset{I} \mapsto & 2k+ 1 & \overset{F} \mapsto & 3k+ 2 \\ & & 8k+5 & \overset{F} \mapsto & 12k+ 8 & \overset{I} \mapsto & 6k+ 4 & \overset{I} \mapsto & 3k+ 2 \\ & & 8k+6 & \overset{I} \mapsto & 4k+ 3 & \overset{F} \mapsto & 6k+ 5 & \overset{F} \mapsto & 9k+ 8 \\ & & 8k+7 & \overset{F} \mapsto & 12k+11 & \overset{F} \mapsto & 18k+17 & \overset{F} \mapsto & 27k+26 \\ \end{array}\]Therefore, every possible 3 letter song is also sung by infinitely many numbers. It turns out that this pattern continues and so for any song of length \(m\), there exists a \(0 \le r < 2^m\) such that all numbers \(n \equiv r \pmod{2^m}\) sing that song.
In fact, given a song, we can directly compute the set of numbers which sing it using the following method:
Start with the empty song \(\epsilon\), which does nothing:
\[k_0 \overset{\epsilon} \mapsto k_0\]For each letter (I
or F
) in the song, starting from the beginning, update \(k\) by making it either even (\(k_n = 2 k_{n+1}\)) or odd (\(k_n = 2 k_{n+1} + 1\)) whichever will lead to the right side of the expression being even (if the letter is I
) or odd (if the letter is F
).
For example, let’s consider the song FFFIFI
. We start with
The first letter is F
, so \(k_0 = 2 k_1 + 1\) must be odd and we get:
The second letter is also F
, so \(3 k_1 + 2\) must be odd, meaning \(k_1 = 2 k_2 + 1\) also must be odd.
Next, another F
, so \(9 k_2 + 8\) must be odd, meaning \(k_2 = 2 k_3 + 1\) must be odd as well.
The fourth letter is I
, so \(27 k_3 + 26\) must be even, meaning \(k_3 = 2 k_4\) must be even as well.
Next is F
, so \(27 k_4 + 13\) must be odd, so \(k_4 = 2 k_5\) must be even.
Finally, the last letter is I
, so \(3^4 k_5 + 20\) must be even, meaning that \(k_5 = 2 k_6\) must be even as well.
So, in conclusion, for all integers \(k\):
\[2^6 k + 7 \xmapsto{FFFIFI} 3^4 k + 10\]In other words, the song FFFIFI
is sung by all numbers of the form \(2^6 k + 7\), and after being sung, those reach the numbers \(3^4 k + 10\).
Note that numbers like \(2^6 k + 7\) correspond to numbers which end in a specific sequence in base 2 (\(000111_2\) in this case). So, thinking about these numbers in binary we can say simply that all numbers \(\dots 000111_2\) sing the song FFFIFI
and we can summarize this derivation with the following table:
Numbers | Song |
---|---|
…1 | F |
…11 | FF |
…111 | FFF |
…0111 | FFFI |
…00111 | FFFIF |
…000111 | FFFIFI |
Each letter added to a song refines the set of numbers that sing it by constraining one more bit (base-2 digit) in it’s binary representation.
Every number sings an infinite song since you can keep applying the \(D\) function forever. But not all infinite songs are sung! In fact, the Collatz conjecture could be alternatively stated as: For any number \(n > 0\), it’s infinite song ends in IF
repeated forever.
One example of a song that is never sung is FFFFF...
. To see why, notice that the finite song \(F^m\) is sung by numbers \(n \equiv 2^m - 1 \pmod{2^m}\) (proof is left as an exercise to the reader). In order for a number to sing the infinite song \(F^\infty\), it would have to sing all the finite songs \(F^m\). But there is no positive number \(n \equiv 2^m - 1 \pmod{2^m}\) for all \(m\) since that would require \(n \ge 2^m - 1\) which diverges. (However, if we extend ourselves to the negative integers as well, then in fact -1 does sing the infinite FFFFF...
song!)
So, if you have a specific infinite song, how can we tell if it is ever sung? Well, let’s consider the infinite song \(S_\infty\) and all of it’s finite prefixes \(S_m\) of length \(m\). In order for a number \(n\) to sing \(S_\infty\) it must sing all \(S_m\). As we saw above, the numbers which sing \(S_m\) are the numbers with a specific fixed \(m\) bit suffix in their binary representation and by extending the song to \(S_{m+1}\) that fixes one more bit.
As we continue this process, increasing the length of the finite songs, we fix more and more bits in the binary representation of numbers which sing that song. And so we can see, that eventually every bit becomes fixed and the infinite song \(S_\infty\) corresponds to an infinite binary sequence \(\{0, 1\}^\infty\). For a number to sing \(S_\infty\), it’s binary representation must have exactly that sequence.
But that binary sequence must have a very specific property in order for it to represent a finite integer: It must be eventually all 0
s! Because the binary sequence \((b_0, b_1, \dots)\) corresponds to the number \(\sum_{k=0}^\infty b_k 2^k\) which only converges if, eventually, for all \(k > K\), \(b_k = 0\).
So, the infinite songs that are actually sung are exactly the infinite songs whose corresponding binary sequence is eventually all 0
s.
Of course, proving that a song’s binary sequence is (or is not) eventually all 0
s is no easy task. AFAIK, there is no general method for doing this, all we can do is compute one more bit at a time.
As an aside: There does exist a number system in which all infinite binary sequences correspond to a “number”. These are the 2-adic numbers and if you extend the Collatz problem to them, then all infinite songs are sung by a 2-adic number!
We are finally ready to discuss Fer’s abstraction. He focusses on numbers which he calls “nodes”. These are the numbers \(x = C(a) = C(b)\) for \(a \ne b\). It turns out that these are exactly the numbers of the form \(x = C(2n+1) = 6n + 4\).
Note that since \(6n + 4\) is always even, it will always be followed by \(3n + 2\). In fact, if you use the \(D\) function it will skip right over the \(6n+4\) values straight to the \(3n + 2\) ones (at least coming from odd values). Therefore, in order to work more clearly with my abstraction I will consider the \(n\)-th node to be \(3n+2\). These nodes are bijective to Fer’s, just multiply them by two to get back to his.
He classifies nodes into three categories based on how it reaches the next node:
Using my terminology above:
F
IF
II
(I know, ironic that the Starks sing only of Fire and Targaryen’s only of Ice! What sort of world is this?)
Fer defines a constellation as a sequence of Stark, Lannister and Targaryen tiles. So we can now see that every constellation corresponds directly to a song.
For example, the constellation SSSLLLL
corresponds to the song FFFIFIFIFIF
. And this song is sung by all numbers \(2^{11} k + 455\) with
If we force the starting point to be a “node” (of form \(3n + 2\)) then we can rewrite this as:
\[3 (2^{11} k + 151) + 2 = 2^{11} (3k) + 455 \xmapsto{FFFIFIFIFIF} 3^7 (3k) + 488 = 3 (3^7 k + 162) + 2\]In other words: This constellation/song maps nodes \(2^{11} k + 151\) to nodes \(3^7 k + 162\). (Remember we are calling node \(n\) the number \(3n + 2\))
Fer defines a streak as a constellation with only one repeated tile. So the streaks are \(S^m\), \(L^m\) and \(T^m\) for various lengths \(m\). These correspond to the songs \(S^m = F^m\), \(L^m = (IF)^m\) and \(T^m = I^{2m}\). Using my song of ice and fire terminology, we can see that a natural extention of the idea of a streak would be any repeated song, ex: \((FFI)^m\). I’ll call these generalized streaks.
Streaks seem to mostly be of interest because they can allow us to specify the behavior of an entire class of constellations/songs. So:
And we can use the same sort of tricks for some generalized streaks, like:
\[8^m k - 5 \overset{(FFI)^m} \mapsto 9^m k - 5\]To compare these formulas to Fer’s, we need to constrain ourselves to nodes again, then we get:
Fer writes this as \(a_0 = 2^m b + 2^m - 1\) and \(a_m = 3^m b + 3^m - 1\) which is the same equation, just with \(k = b + 1\) (presumably he chose this version so that all values \(b \ge 0\) result in valid \(a > 0\)).
Both my Lannister and Targaryen streak notations are the same as Fer’s. As Fer notes, you do not need to be afraid of the \(\frac{2}{3}\) factor in the Targaryen streak since \(4^m - 1\) is always a multiple of 3!
Finally, if we consider these rules to all take \(a_0 \to a_m\), Fer writes these equations out for \(a_m\) in terms of \(a_0\) (removing the \(k\)). So (note that the \(\lambda, \sigma, \tau\) superscripts are just labels here, not exponents):
Using this notation seems useful since it allows you to calculate the results of “multi streak drifting”. So we can see what happens when we apply \(S^m L^r\) by setting the \(a_0^\lambda = a_m^\sigma\), resulting in:
\[a_r^\lambda = (\frac{3}{4})^r [ (\frac{2}{3})^m (a_0^\sigma + 1) - 1 ]\]We have now come to a dramatic moment in Fer’s argument: Section 4.2 in the paper or minute 29 in the video: “Infinite multi-streaks constellations require convergence for infinite sums of integers”. This is the part where Fer claims to have found a proof that we cannot have infinite constellations!
Now, let’s start by saying that infinite constellations correspond to infinite songs and as we discussed above: there are infinite songs that are sung. In fact every starting number leads to an infinite song (because you can always apply the function \(D\) again). Likewise, starting at every node, you get an infinite constellation simply by repeatedly applying the Stark, Lannister and Targaryen rules. So we know that infinite constellations exist.
As far as I can tell, Fer’s argument goes like this: Let’s say we have an infinite constellation and let’s evaluate the equations for all the finite prefixes of that constellation. So as we discussed in the last section, let’s say that the infinite constellation starts with \(S^m L^r \dots\), then we know that the equation for this prefix is:
\[a_{m+r} = (\frac{3}{4})^r [ (\frac{2}{3})^m (a_0 + 1) - 1 ] = e^{r(\ln 3 - 2 \ln 2) + m(\ln 2 - \ln 3)} a_0 + \beta\]then \(\lim_{m \to \infty} a_m\) cannot converge because this would require an infinite series of integers to converge. But we already know that \(\lim_{m \to \infty} a_m\) won’t converge. This is a sequence of integers, so the only way for it to converge is if it becomes eventually constant. And to be eventually constant, it would mean that it reached a fixed point of \(D\) and the only two fixed points of \(D\) are \(D(0) = 0\) and \(D(-1) = -1\) which cannot be reached from positive numbers.
Instead, there are two possibilities, either the sequence \(a_m\) eventually cycles or it grows forever. In both cases the sequence doesn’t converge.
At this point, I must admit that I cannot exactly put my finger on what Fer’s argument is. I have made a good faith effort here to try and understand it and show the fallacy, but it is possible that I am missing what Fer really meant. As an example, rather than looking at \(a_m\) which (as we discussed) clearly doesn’t converge. We could look at what values \(a_0\) can take as we increase the size of the prefix. As I discussed in the “Which Infinite Songs are Sung?” section, for some infinite songs, the starting point will diverge. Or, in other words, there will be no finite number which sings all the finite prefixes of this infinite song. But this is not true for all songs, as mentioned in that section, the songs which convert to binary sequences which are eventually all 0 each correspond to an infinite song that is sung.
One way to think about Fer’s abstraction is that it defines a new Collatz-like function. I will call it the Westeros function:
\[\begin{array}{l} W & : & 2k+1 & \mapsto & 3k+2 \\ & : & 4k & \mapsto & 3k \\ & : & 4k+2 & \mapsto & k \\ \end{array}\]These three cases are exactly the three tiles:
and the new conjecture is: starting at all \(n \ge 0\), does \(W^m(n) = 0\). In other words, if you keep applying \(W\) do you eventually reach 0.
Now it should be clear the analogy between my “Songs of Ice and Fire” and Fer’s “Constellations of Stark, Lannister and Targaryen”. They are the same concept applied to a different Collatz-like function.
Is it helpful to abstract to the Westeros function? As far as I can tell, it is not. This is a more complicated function, it requires three different cases (instead of the two from the \(D\) function) and I think that in general it makes most of the equations more complicated as well. And furthermore, I have not seen any advantages that compensate for this complexity. If you are interested in following this line of reasoning with respect to the Collatz, I’d recommend using the “Songs of Ice and Fire” abstraction instead as I’ve described throughout this article. But I look forward to being proven wrong when someone makes a great discovery using the Westeros function abstraction :)
Finally, I thought it would be nice to end this post with a fun result. Specifically about how we can use the “Song of Ice and Fire” abstraction to find all cycles of a given length.
A number \(n\) starts a cycle of length \(k\) if and only if \(D^k(n) = n\). So we can find all cycles of length \(k\) by computing \(D^k\) (like we did above for \(D^2\) and \(D^3\)) and solve the linear equations. For example, the cycles of length 1 are:
\[\begin{array}{l} n = 2k & = D(2k) & = k & \to & k = 0 & \to & n = 0 \\ n = 2k+1 & = D(2k+1) & = 3k+2 & \to & k = -1 & \to & n = -1 \\ \end{array}\]Which are the \(0 \overset{I} \mapsto 0\) and \(-1 \overset{F} \mapsto -1\) cycles.
Remember that
\[\begin{array}{l} D^2 & : & 4k & \mapsto & k \\ & & 4k+1 & \mapsto & 3k+1 \\ & & 4k+2 & \mapsto & 3k+2 \\ & & 4k+3 & \mapsto & 9k+8 \\ \end{array}\]so the cycles of length 2 are:
\[\begin{array}{l} n = 4k & = D(4k) & = k & \to & k = 0 & \to & n = 0 \\ n = 4k+1 & = D(4k+1) & = 3k+1 & \to & k = 0 & \to & n = 1 \\ n = 4k+2 & = D(4k+2) & = 3k+2 & \to & k = 0 & \to & n = 2 \\ n = 4k+3 & = D(4k+3) & = 9k+8 & \to & k = -1 & \to & n = -1 \\ \end{array}\]So, here we find the only known positive integer cycle:
\[1 \overset{F} \mapsto 2 \overset{I} \mapsto 1\]which also shows up starting at 2:
\[2 \overset{I} \mapsto 1 \overset{F} \mapsto 2\]and for cycles of length 3 we get:
\[\begin{array}{l} n = 8k & = D(8k) & = k & \to & k = 0 & \to & n = 0 \\ n = 8k+1 & = D(8k+1) & = 9k+2 & \to & k = -1 & \to & n = -7 \\ n = 8k+2 & = D(8k+2) & = 3k+1 & \to & k = -\frac{1}{5} \\ n = 8k+3 & = D(8k+3) & = 9k+4 & \to & k = -1 & \to & n = -5 \\ n = 8k+4 & = D(8k+4) & = 3k+2 & \to & k = -\frac{2}{5} \\ n = 8k+5 & = D(8k+5) & = 3k+2 & \to & k = -\frac{3}{5} \\ n = 8k+6 & = D(8k+6) & = 9k+8 & \to & k = -2 & \to & n = -10 \\ n = 8k+7 & = D(8k+7) & = 27k+26 & \to & k = -1 & \to & n = -1 \\ \end{array}\]which finds the known negative cycle of length 3 (3 times):
\[-5 \overset{F} \mapsto -7 \overset{F} \mapsto -10 \overset{I} \mapsto -5\]Note that the rows where \(k\) is not an integer mean that those cycles are impossible.
Of course, this search is rather inefficient since you must compute \(D^k\) and consider each of its \(2^k\) cases separately.
]]>I am calling this a “pentation-level” TM because its score cannot be expressed using only one tetration operation. As far as I know this is the first pentation-level TM discovered through search.^{1}
Let’s call this TM p3
. It is:
1RB3RB5RA1LB5LA2LB_2LA2RA4RB1RZ3LB2LA
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
A | 1RB | 3RB | 5RA | 1LB | 5LA | 2LB |
B | 2LA | 2RA | 4RB | 1RZ | 3LB | 2LA |
I calculate that this TM halts with a score of precisely:
\[\begin{array}{l} \sigma(\text{p3}) & = & 2 g^B(6) + 6 \\ B & = & \frac{2 g^A(6) + 3}{5} \\ A & = & \frac{2 g^3(6) - 2}{5} \\ g(n) & = & 6 \cdot 2^n \\ \end{array}\]Which is approximated by:
\[\sigma(\text{p3}) > 10 \uparrow\uparrow 10 \uparrow\uparrow 10^{10^{115}}\]These rules can all be verified by direct simulation:
\[\begin{array}{l} 00 & <A & 212 & 22^n & 55 & & && \to & <A & 212 & 22^{n+2} \\ \\ 00 & <A & 212 & 22^n & & 2 & 55 && \to & <A & 212 & & 55^{n+2} & 2 \\ \\ 0^5 & <A & 212 & 22^n & & 52 & 5555 && \to & <A & 212 & & 55 & 2 & 55^{n+3} & 52 \\ 00 & <A & 212 & 22^n & & 2 & 52 & 5 &\to & <A & 212 & & 55^{n+2} & 52 \\ \end{array}\]Repeating the first rule above we get:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^n & 55^k & \to & 0^\infty & <A & 212 & 22^{n+2k} \\ \end{array}\]which let’s us prove Rule 2:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^n && 2 & 55 & \to & 0^\infty & <A & 212 & & 55^{n+2} & 2 \\ & & & && & & \to & 0^\infty & <A & 212 & 22^{2n+4} & & 2 \\ \end{array}\]Repeating Rule 2 we get:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^n && 2 & 55^k & \to & 0^\infty & <A & 212 & 22^{(n+4) 2^k - 4} && 2 \\ \end{array}\]which let’s us prove Rule 3:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^n && 52 & 5^5 & \to & 0^\infty & <A & 212 & & 55 & 2 & 55^{n+3} & 52 & 5 \\ & & & && & & \to & 0^\infty & <A & 212 & 22^2 && 2 & 55^{n+3} & 52 & 5 \\ & & & && & & \to & 0^\infty & <A & 212 & 22^{6 \cdot 2^{n+3} - 4} && 2 && 52 & 5 \\ & & & && & & \to & 0^\infty & <A & 212 & & 55^{6 \cdot 2^{n+3} - 2} & 52 \\ & & & && & & \to & 0^\infty & <A & 212 & 22^{6 \cdot 2^{n+4} - 4} && 52 \\ \end{array}\]Let
\[f(n) = 6 \cdot 2^{n+4} - 4\]Repeating Rule 3 we get the Tetration Rule:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^n && 52 & 5^{5k} & \to & 0^\infty & <A & 212 & 22^{f^k(n)} && 52 \\ \end{array}\]This rule will be the main contributor to the score since \(f^k(n) > 2 \uparrow\uparrow k\). In fact, this rule will apply 3 times, which is how we end up with 3 tetrations in the final score (\(> 10 \uparrow\uparrow 10 \uparrow\uparrow 10\uparrow\uparrow 3\)).
With these high-level rules, we are now ready to describe the halting trajectory for this TM starting from a blank tape:
\[\begin{array}{l} 0^\infty & <A & 0^\infty & \xrightarrow{191} & 0^\infty & <A & 212 & 22^2 & 52 & 5^{13} & 2 & 0^\infty \end{array}\]This is our first application of the Tetration Rule. Here calculating the remainder is trivial:
\[\begin{array}{l} A_1 & = & 13 & = & 5 k_1 + r_1 \\ r_1 & = & 3 \\ k_1 & = & \frac{A_1 - r_1}{5} & = & 2 \\ \end{array}\]continuing the trajectory:
\[\begin{array}{l} \dots & \to & 0^\infty & <A & 212 & 22^{f^2(2)} & & 52 & 5^{3} & 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & & 55 & 2 & 55^{f^2(2) + 4} & 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^2 & & 2 & 55^{f^2(2) + 4} & 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^{6 \cdot 2^{f^2(2) + 4} - 4} && 2 & & 2 & 0^\infty \\ & = & 0^\infty & <A & 212 & 22^{f^3(2) + 1} && & & & 0^\infty \\ & \to & 0^\infty & <A & 212 & & 55 & 52 & 5^{2 f^3(2) + 5} & 2 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^2 & & 52 & 5^{2 f^3(2) + 5} & 2 2 & 0^\infty \\ \end{array}\]This is our second application of the Tetration Rule. Here calculating the remainder requires using Euler’s totient theorem (as described in BB(6, 2) > 10↑↑15):
\[\begin{array}{l} A_2 & = & 2 f^3(2) + 5 & = & 5 k_2 + r_2 \\ r_2 & = & 4 \\ k_2 & = & \frac{A_2 - r_2}{5} & = & \frac{2 f^3(2) + 1}{5} \\ \end{array}\]continuing the trajectory:
\[\begin{array}{l} \dots & \to & 0^\infty & <A & 212 & 22^{f^{k_2}(2)} & & 52 & 5^{4} & & 2 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & & 55 & 2 & 55^{f^{k_2}(2)+3} & 52 & 2 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^2 & & 2 & 55^{f^{k_2}(2)+3} & 52 & 2 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^{6 \cdot 2^{f^{k_2}(2)+3} - 4} && 2 & & 52 & 2 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & & 55^{6 \cdot 2^{f^{k_2}(2)+3} - 1} & 52 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^{6 \cdot 2^{f^{k_2}(2)+4} - 2} & & 52 & 0^\infty \\ & = & 0^\infty & <A & 212 & 22^{f^{k_2 + 1}(2) + 2} & & 52 & 0^\infty \\ & \to & 0^\infty & <A & 212 & & 55 & 52 & 5^{2 f^{k_2 + 1}(2) + 13} & 2 & 0^\infty \\ & \to & 0^\infty & <A & 212 & 22^2 & & 52 & 5^{2 f^{k_2 + 1}(2) + 13} & 2 & 0^\infty \\ \end{array}\]This is our third and final application of the Tetration Rule. Here calculating the remainder requires a minor arithmetic miracle (see next section):
\[\begin{array}{l} A_3 & = & 2 f^{k_2 + 1}(2) + 13 & = & 5 k_3 + r_3 \\ r_3 & = & 2 \\ k_3 & = & \frac{A_3 - r_3}{5} & = & \frac{2 f^{k_2 + 1}(2) + 11}{5} \\ \end{array}\]finishing the trajectory:
\[\begin{array}{l} 0^\infty & <A & 212 & 22^{f^{k_3}(2)} & 52 & 5^{2} & 2 & 0^\infty & \to & 0^\infty & 141 & Z> & 2^{2 f^{k_3}(2) + 8} & 152 & 0^\infty \\ \end{array}\]And we see that it halts with a score of
\[\sigma(\text{p3}) = 2 f^{k_3}(2) + 14\]Calculating the remainder
\[2 f^{k_2 + 1}(2) + 13 \pmod{5}\]is no simple task given that this is a power tower with height \(k_2 > 10^{10^{100}}\) (a googolplex) and that the Euler’s totient theorem method for computing remainders is worse than linear on power tower heights!
But, as it turns out, there is a miraculous shortcut to this computation in this specific case!
The miracle can be summarized succinctly by the following two facts:
\[4 | f(n) \;\; \text{ and } \;\; 2^4 \equiv 1 \pmod{5}\]Specifically:
\[\begin{array}{l} f^2(n) & = & 6 \cdot 2^{f(n)+4} - 4 \\ & = & 6 \cdot 2^{4x} - 4 \\ & \equiv & 6 - 4 \equiv 2 \pmod{5} \\ \end{array}\]and since this is true for all \(n\), we have:
\[f^{k_2 + 1}(2) \equiv 2 \pmod{5}\]and this remainder becomes trivial to compute!
Collecting together all the relevent definitions, we have the precise number of non-zero symbols on the tape at halting time expressed by this formula:
\[\begin{array}{l} \sigma(\text{p3}) & = & 2 f^{k_3}(2) + 14 \\ k_3 & = & \frac{2 f^{k_2 + 1}(2) + 11}{5} \\ k_2 & = & \frac{2 f^3(2) + 1}{5} \\ f(n) & = & 6 \cdot 2^{n+4} - 4 \\ \end{array}\]But we can simplify this notation a bit. First of all, we can define:
\[g(n) = 6 \cdot 2^n\]and notice that
\[g(n+4) = f(n) + 4 \implies g^k(n+4) = f^k(n) + 4\]rewriting we get
\[\begin{array}{l} \sigma(\text{p3}) & = & 2 g^B(6) + 6 \\ B = k_3 & = & \frac{2 g^A(6) + 3}{5} \\ A = k_2 + 1 & = & \frac{2 g^3(6) - 2}{5} \\ g(n) & = & 6 \cdot 2^n \\ \end{array}\]In fact, we could even rewrite it as:
\[h(n) = 2^{6n} = 64^n\]and notice
\[g^k(6) = 6 h^k(1) = 6 (64 \uparrow\uparrow k)\]so, we can rewrite the score again to:
\[\begin{array}{l} \sigma(\text{p3}) & = & 12 (64 \uparrow\uparrow B) + 6 \\ B & = & \frac{12 (64 \uparrow\uparrow A) + 3}{5} \\ A & = & \frac{12 (64 \uparrow\uparrow 3) - 2}{5} \\ \end{array}\]and thus we can compute this lower bound (which appears pretty tight):
\[\sigma(\text{p3}) > 64 \uparrow\uparrow 64 \uparrow\uparrow 64 \uparrow\uparrow 3\]and we can directly compute that \(64^{64} > 10^{115}\) so:
\[\sigma(\text{p3}) > 10 \uparrow\uparrow 10 \uparrow\uparrow 10^{10^{115}}\]Although there are certainly previous examples of hand-designed pentation-level TMs. For example, Milton Green’s \(BB(11, 2) > 3 \uparrow\uparrow\uparrow 3^{31}\)) and Daniel Nagaj’s BB(16, 2) > Graham’s number. ↩
Let’s call this TM t2048
. It is:
1RB0LB1RZ3LA_0LC3RB3RC1LB_2RB2LA3RA1LC
0 | 1 | 2 | 3 | |
---|---|---|---|---|
A | 1RB | 0LB | 1RZ | 3LA |
B | 0LC | 3RB | 3RC | 1LB |
C | 2RB | 2LA | 3RA | 1LC |
And the precise number of nonzeros it leaves on the tape are:
\[\sigma(\text{t2048}) = g^{2^{11}}(19) + 2\]where
\[g(n) = 2^n + 2\]and where \(g^{2^{11}}(19)\) means repeatedly applying the function \(g\), starting with 19 and iterating \(2^{11} = 2048\) times.
or, alternatively this can be written (using my Extending Up-arrow Notation) as:
\[\sigma(\text{t2048}) = 4 (16 \uparrow\uparrow (2^{11} - 1) [\uparrow 2^{17}]) + 4\]Since 16 and \(2^{17}\) are both > 10, we can see that
\[\sigma(\text{t2048}) > 10 \uparrow\uparrow 2^{11} = 10 \uparrow\uparrow 2048\]Consider the general config:
\[B(a, b, c, d) = \;\; 0^\infty \;\; 33^a \;\; \text{ B> } \;\; 33^b \;\; 2 \;\; 1^c \;\; 3^d \;\; 2 \;\; 0^\infty\]Once this TM enters a config like this it never leaves. Specifically we can prove by direct TM simulation the following rules (for all \(a, b, c, d \ge 0\)):
\[\begin{array}{l} B(a, b+1, c, d) & \to & B(a+2, b, c, d) \\ B(a, 0, c+1, d) & \to & B(1, a, c, d) \\ B(a, 0, 0, d+2) & \to & B(1, 1, 2a+1, d) \\ B(a, 0, 0, 0) & \to & B(1, 1, 16, 4a+3) \\ B(a, 0, 0, 1) & \to & \text{Halt}(2a+6) \\ \end{array}\]Now, as usual, we can iterate the above rules to prove that:
\[\begin{array}{l} B(a, b, c, d) & \to & B(a+2b, 0, c, d) \\ B(a, 0, c+1, d) & \to & B(2a+1, 0, c, d) \\ \end{array}\]because if \(h(a) = a+2\) then \(h^b(a) = a+2b\)
because if \(h(a) = 2a+1\) then \(h^c(a) = (a+1) 2^c - 1\)
Where
\[f(n) = 4 \cdot 2^{2n+1} - 1 = 2^{2n+3} - 1\]Finally, This TM enters config \(B(1, 1, 8, 0)\) at step 103. So we can see that the trajectory from this is:
\[\begin{array}{l} B(1, 1, 8, 0) & \to & B(3, 0, 8, 0) \\ & \to & B(4 \cdot 2^{8} - 1, 0, 0, 0) \\ & \to & B(1, 1, 16, 16 \cdot 2^{8} - 1) \\ & \to & B(3, 0, 16, 16 \cdot 2^{8} - 1) \\ & \to & B(4 \cdot 2^{16} - 1, 0, 0, 16 \cdot 2^{8} - 1) \\ & \to & B(f^{8 \cdot 2^{8} - 1}(4 \cdot 2^{16} - 1), 0, 0, 1) \\ & \to & \text{Halt}(2 f^{8 \cdot 2^{8} - 1}(4 \cdot 2^{16} - 1) + 6) \\ \end{array}\]Simplifying a bit we get: \(\text{Halt}(2 f^{2^{11} - 1}(2^{18} - 1) + 6)\)
Iterating \(f(n) = 2^{2n+3} - 1\) is a bit cumbersome, we can simplify things in a couple different ways:
Let \(g(n) = 2^n + 2\), then note that \(g(2n+4) = 2 f(n) + 4\), so \(g^k(2n+4) = 2 f^k(n) + 4\) for all \(k\) and thus:
\[\sigma(\text{t2048}) = 2 f^{2^{11} - 1}(2^{18} - 1) + 6 = g^{2^{11} - 1}(2^{19} + 2) + 2 = g^{2^{11}}(19) + 2\]This \(g\) gives us insight into what the power tower looks like. Specifically:
\[\sigma(\text{t2048}) = g^{2^{11}}(19) + 2 = 2 + 2 + 2^{2 + 2^{2 + 2^{.^{.^{.^{2 + 2^{19}}}}}}}\]Alternatively, let \(h(n) = 16^n\), then \(4 h(n) + 2 = g(4n+2)\), so \(4 h^k(n) + 2 = g^k(4n+2)\) and so we get:
\[\sigma(\text{t2048}) = g^{2^{11} - 1}(2^{19} + 2) + 2 = 4 h^{2^{11} - 1}(2^{17}) + 4 = 4 (16 \uparrow\uparrow (2^{11} - 1) [\uparrow 2^{17}]) + 4\]Which has the advantage that we can express the value without need for defining a new custom function (only using “standard” extended up-arrow notation).
Note that this TMs behavior is not really “Collatz-like” in the sense that we can definitively prove that all configurations \(B(a, b, c, d)\) eventually halt!
Specifically, note that:
\[\begin{array}{l} B(a, b, c, 2k+1) & \to & B(a+2b, 0, c, 2k+1) \\ & \to & B((a+2b+1) 2^c - 1, 0, 0, 2k+1) \\ & \to & B(f^{k}((a+2b+1) 2^c - 1), 0, 0, 1) \\ & \to & \text{Halt}(2 f^{k}((a+2b+1) 2^c - 1) + 6) \\ \end{array}\]and
\[\begin{array}{l} B(a, b, c, 2k) & \to & B(a+2b, 0, c, 2k) \\ & \to & B((a+2b+1) 2^c - 1, 0, 0, 2k) \\ & \to & B(f^{k}((a+2b+1) 2^c - 1), 0, 0, 0) \\ & \to & B(1, 1, 16, 4 f^{k}((a+2b+1) 2^c - 1) + 3) \\ \end{array}\]And since \(4 f^{k}((a+2b+1) 2^c - 1) + 3\) is guaranteed to be odd, that also halts.^{1}
In fact, no matter what starting configurations \(B(a, b, c, d)\) we can apply the “tower-level” rule \(B(a, 0, 0, 2k+r) \to B(f^{k}(a), 0, 0, r)\) at most twice (once if \(d\) is odd, twice if \(d\) is even).
If this TM could have applied that rule even one more time it would have produced a score like \(2 \uparrow\uparrow 2 \uparrow\uparrow n\), if 4 times, then something like \(2 \uparrow\uparrow 2 \uparrow\uparrow 2 \uparrow\uparrow n\), if 100 times, then something like \(2 \uparrow\uparrow\uparrow 100\).
In other words, if we can find a TM with behavior similar to this one but which actually has Collatz-like behavior (and which gets lucky enough to iterate it’s “tower-level” rule a large number of times) then that TM will be “pentation-level”.
Given the fact that t2048
has such a simple analysis and the fact that neither Pavel nor I have the ability to detect such a “pentation-level” machine, I think there is a strong chance that one is lurking in the 3x4 domain!
Note: This is similar to the behavior for my short-reigning BB(6, 2) > \(10^{78913}\) champion, but with one extra “level” of rule iteration. ↩
Update(29 Apr 2023): Pavel strikes again! He announced a 2x6 TM running for > 10↑↑91 steps.
It’s approaching one year since the discovery that \(BB(6, 2) > 10 \uparrow\uparrow 15\) and I finally got a chance to update my code to actually simulate machines like this (where you must store integers as formula instead of directly in binary). Unsurprisingly, I don’t have any new BB(6, 2)
champions to share (Pavel searched well!), but I also did a search of BB(2, 6)
and found a couple exciting machines!
The two TMs in Standard Text format:
Name | TM | Score Bound |
---|---|---|
t70 |
1RB2LA1RA4LA5RA0LB_1LA3RA2RB1RZ3RB4LA |
\(> 10 \uparrow\uparrow 70.27\) |
t69 |
1RB2LB1RZ3LA2LA4RB_1LA3RB4RB1LB5LB0RA |
\(> 10 \uparrow\uparrow 69.68\) |
Written out fully these are: t70
:
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
A | 1RB | 2LA | 1RA | 4LA | 5RA | 0LB |
B | 1LA | 3RA | 2RB | 1RZ | 3RB | 4LA |
with precise score (number of non-zeros left on tape at halt):
\[\sigma(\text{t70}) = 14 + 2^{ -1 + 2^{ 2 + 2^{ 1 + 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 3 + 2^{ 2^{ 3 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ 3 + 2^{ 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 1 + 2^{ 1 + 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^8 } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }\]And t69
:
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
A | 1RB | 2LB | 1RZ | 3LA | 2LA | 4RB |
B | 1LA | 3RB | 4RB | 1LB | 5LB | 0RA |
with precise score:
\[\sigma(\text{t69}) = 14 + 2^{ -1 + 2^{ 2 + 2^{ 1 + 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 3 + 2^{ 2^{ 3 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ 3 + 2^{ 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ -1 + 2^{ 2^{ 1 + 2^{ 1 + 2^{ -1 + 2^{ 4 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^{ 2^{ 2 + 2^{ 2^{ -1 + 2^{ 2^{ 2 + 2^4 } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }\]The keep eyed observer will note that these scores are identical except for the very top exponent (which is 8 vs. 4). In fact, these two machine are just “permutation” of each other. That is to say, if you take the first machine and swap the two states and then put it into TNF you will get the second machine (and vice versa).
I happened to find and analyze t69
first, so I will use it’s state and symbol naming for this analysis. For t70
, I will consider it to be t69
started in state B
.
For this analysis, I break the tape up into a “left” and “right” side. The left side is always of the form \(0^\infty \; 3^n\) or \(0^\infty \; 1 \; 3^n\) and here are the rules for simulating the left side tape:
\[\begin{array}{l} 0^\infty & & 3^{n} & \text{<B} & \to & 0^\infty & 1 & 3^{n+1} & \text{B>} \\ 0^\infty & 1 & 3^{n} & \text{<B} & \to & 0^\infty & & 3^{n+1} & \text{B>} \\ \\ 0^\infty & & 3^{2k} & \text{<A} & \to & 0^\infty & 1 & 3^{4k} & \text{B>} \\ 0^\infty & & 3^{2k+1} & \text{<A} & \to & 0^\infty & & 3^{4k+2} & \text{B>} \\ \\ 0^\infty & 1 & 3^{n} & \text{<A} & \to & 0^\infty & 1 & 3^{4(2^n - 1)} & \text{B>} & 12 \\ \end{array}\]The right side is a bit more chaotic and I have not yet found any particularly useful abstraction for it. But, interestingly, we don’t need to provide any abstraction for the right side because using the above rules and then just manually simulating the right side we can simulate this TM to halting in only 175 iterations.
0 : 1 3^4 B> 121
1 : 1 3^124 B> 12231
2 : 3^125 B> 15511
3 : 3^254 B> 1231
4 : 1 3^255 B> 1511
5 : 1 3^~10^77.7 B> 12121
6 : 1 3^~10↑↑3.28 B> 1223231
...
173 : 1 3^~10↑↑69.28 B> 12515223232121231
174 : 1 3^~10↑↑70.28 B> 122125223232121231
HALT (14 + 2^(-1 + 2^(2 + 2^(1 + 2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(-1 + 2^2^(3 + 2^2^(3 + 2^2^(2 + 2^2^(-1 + 2^2^(-1 + 2^2^(2 + 2^2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(3 + 2^2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(-1 + 2^2^(-1 + 2^2^(4 + 2^2^(-1 + 2^2^(-1 + 2^2^(1 + 2^(1 + 2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(2 + 2^8))))))))))))))))))))))))))))))))))))))))
(See the end of this article for the full trajectory)
As a short explanation for this analysis: t70
starts in config \(0^\infty \; 1 \; 3^4 \; B> \; 121 \; 0^\infty\) at step 33. In order to simulate one iteration, we simulate the TM manually on the right side until it comes back to the left side (or halts). So, for example, the first iteration takes
Then I apply the appropriate left side rule from above. For example, the first iteration takes
\[0^\infty \; 1 \; 3^{5} \; \text{<A} \; \to \; 0^\infty \; 1 \; 3^{4(2^5 - 1)} \; \text{B>} \; 12\]Combining these together we get:
\[\begin{array}{l} 0^\infty & 1 & 3^{4} & \text{ B>} & 121 & 0^\infty & \to \\ 0^\infty & 1 & 3^{5} & \text{<A } & 231 & 0^\infty & \to \\ 0^\infty & 1 & 3^{4(2^5 - 1)} & \text{ B>} & 12 \; 231 & 0^\infty \\ \end{array}\]which is exactly the first iteration above. The trajectory for t69
is identical except that it starts with config 1 3^0 B> 121
at step 5.
This analysis is really different than most other BB champion analyses I’ve shared. Specifically, most of those analyses have basically reduced the TM to a simulation of Collatz-like rules and then the question of halting was simplified to whether or not the Collatz-like rules halt. Pascal Michel has written extensively about how almost all current and former Busy Beaver champions have Collatz-like Behavior.
For Pavel’s reigning BB(6, 2) champion, simulating these Collatz-like rules turned out to require non-trivial Mathematical theorems in order to evaluate \(3^n \pmod{2^m}\). In contrast, in order to simulate t70
you only need to know how to evaluate \(2^n \pmod{2}\)!
This TM does have one Collatz-like rule:
\[\begin{array}{l} 0^\infty & & 3^{2k} & \text{<A} & \to & 0^\infty & 1 & 3^{4k} & \text{B>} \\ 0^\infty & & 3^{2k+1} & \text{<A} & \to & 0^\infty & & 3^{4k+2} & \text{B>} \\ \end{array}\]And furthermore, I have not really provided any sort of theory to explain the behavior of this TM on arbitrary right sides. So perhaps there is more “Collatz-like behavior” on that side.
But overall, it doesn’t seem to me that it’s behavior is “driven” by Collatz-like behavior. Instead, to me, it seems that it simulates relatively chaotic behavior which occasionally applies the function \(n \mapsto 4(2^n - 1)\). That function is applied 69 times before the TM halts and so we end up with a score around \(10 \uparrow\uparrow 69\).
The full simulation trajectory for t70
is:
0 : 1 3^4 B> 121
1 : 1 3^124 B> 12231
2 : 3^125 B> 15511
3 : 3^254 B> 1231
4 : 1 3^255 B> 1511
5 : 1 3^~10^77.7 B> 12121
6 : 1 3^~10↑↑3.28 B> 1223231
7 : 3^~10↑↑3.28 B> 1551231
8 : 1 3^~10↑↑3.28 B> 151511
9 : 1 3^~10↑↑4.28 B> 1212511
10 : 1 3^~10↑↑5.28 B> 12232121
11 : 3^~10↑↑5.28 B> 15512121
12 : 3^~10↑↑5.28 B> 1223231
13 : 1 3^~10↑↑5.28 B> 1551231
14 : 1 3^~10↑↑6.28 B> 12151511
15 : 1 3^~10↑↑7.28 B> 122312511
16 : 3^~10↑↑7.28 B> 155112511
17 : 3^~10↑↑7.28 B> 1232121
18 : 1 3^~10↑↑7.28 B> 1512121
19 : 1 3^~10↑↑8.28 B> 12122121
20 : 1 3^~10↑↑9.28 B> 1223223231
21 : 3^~10↑↑9.28 B> 1551223231
22 : 1 3^~10↑↑9.28 B> 151551231
23 : 1 3^~10↑↑10.28 B> 1212551231
24 : 1 3^~10↑↑11.28 B> 12232151511
25 : 3^~10↑↑11.28 B> 15512151511
26 : 3^~10↑↑11.28 B> 122312511
27 : 1 3^~10↑↑11.28 B> 155112511
28 : 1 3^~10↑↑12.28 B> 121232121
29 : 3^~10↑↑12.28 B> 151512121
30 : 1 3^~10↑↑12.28 B> 12512121
31 : 1 3^~10↑↑13.28 B> 122122121
32 : 1 3^~10↑↑14.28 B> 12223223231
33 : 3^~10↑↑14.28 B> 15551223231
34 : 3^~10↑↑14.28 B> 125551231
35 : 3^~10↑↑14.28 B> 23125511
36 : 1 3^~10↑↑14.28 B> 51125511
37 : 1 3^~10↑↑15.28 B> 1212125511
38 : 1 3^~10↑↑16.28 B> 122323231231
39 : 3^~10↑↑16.28 B> 155123231231
40 : 1 3^~10↑↑16.28 B> 15151231231
41 : 1 3^~10↑↑17.28 B> 121251231231
42 : 1 3^~10↑↑18.28 B> 1223212231231
43 : 3^~10↑↑18.28 B> 1551212231231
44 : 1 3^~10↑↑18.28 B> 151515511231
45 : 1 3^~10↑↑19.28 B> 1212515511231
46 : 1 3^~10↑↑20.28 B> 12232125511231
47 : 3^~10↑↑20.28 B> 15512125511231
48 : 3^~10↑↑20.28 B> 122321511511
49 : 1 3^~10↑↑20.28 B> 155121511511
50 : 1 3^~10↑↑21.28 B> 121223121511
51 : 3^~10↑↑21.28 B> 151551121511
52 : 1 3^~10↑↑21.28 B> 12551121511
53 : 1 3^~10↑↑22.28 B> 122312323121
54 : 3^~10↑↑22.28 B> 155112323121
55 : 1 3^~10↑↑22.28 B> 15115123121
56 : 1 3^~10↑↑23.28 B> 121215123121
57 : 1 3^~10↑↑24.28 B> 1223231223121
58 : 3^~10↑↑24.28 B> 1551231223121
59 : 1 3^~10↑↑24.28 B> 151511223121
60 : 1 3^~10↑↑25.28 B> 1212511223121
61 : 1 3^~10↑↑26.28 B> 12232121223121
62 : 3^~10↑↑26.28 B> 15512121223121
63 : 1 3^~10↑↑26.28 B> 1515151551121
64 : 1 3^~10↑↑27.28 B> 12125151551121
65 : 1 3^~10↑↑28.28 B> 122321251551121
66 : 3^~10↑↑28.28 B> 155121251551121
67 : 3^~10↑↑28.28 B> 1223212551121
68 : 1 3^~10↑↑28.28 B> 1551212551121
69 : 1 3^~10↑↑29.28 B> 12122323123231
70 : 3^~10↑↑29.28 B> 15155123123231
71 : 1 3^~10↑↑29.28 B> 1255123123231
72 : 1 3^~10↑↑30.28 B> 12215151123231
73 : 1 3^~10↑↑31.28 B> 122231251123231
74 : 3^~10↑↑31.28 B> 155511251123231
75 : 1 3^~10↑↑31.28 B> 122323212123231
76 : 3^~10↑↑31.28 B> 155123212123231
77 : 1 3^~10↑↑31.28 B> 15151212123231
78 : 1 3^~10↑↑32.28 B> 121251212123231
79 : 1 3^~10↑↑33.28 B> 1223212212123231
80 : 3^~10↑↑33.28 B> 1551212212123231
81 : 1 3^~10↑↑33.28 B> 151515515151231
82 : 1 3^~10↑↑34.28 B> 1212515515151231
83 : 1 3^~10↑↑35.28 B> 12232125515151231
84 : 3^~10↑↑35.28 B> 15512125515151231
85 : 3^~10↑↑35.28 B> 122323121251231
86 : 1 3^~10↑↑35.28 B> 155123121251231
87 : 1 3^~10↑↑36.28 B> 1215151121251231
88 : 1 3^~10↑↑37.28 B> 12231251121251231
89 : 3^~10↑↑37.28 B> 15511251121251231
90 : 3^~10↑↑37.28 B> 123212121251231
91 : 1 3^~10↑↑37.28 B> 151212121251231
92 : 1 3^~10↑↑38.28 B> 1212212121251231
93 : 1 3^~10↑↑39.28 B> 12232232323212231
94 : 3^~10↑↑39.28 B> 15512232323212231
95 : 1 3^~10↑↑39.28 B> 1515512323212231
96 : 1 3^~10↑↑40.28 B> 12125512323212231
97 : 1 3^~10↑↑41.28 B> 122321515123212231
98 : 3^~10↑↑41.28 B> 155121515123212231
99 : 3^~10↑↑41.28 B> 1223125123212231
100 : 1 3^~10↑↑41.28 B> 1551125123212231
101 : 1 3^~10↑↑42.28 B> 1212321223212231
102 : 3^~10↑↑42.28 B> 1515121223212231
103 : 1 3^~10↑↑42.28 B> 125121223212231
104 : 1 3^~10↑↑43.28 B> 1221221223212231
105 : 3^~10↑↑43.28 B> 1551551551212231
106 : 3^~10↑↑43.28 B> 12312151515511
107 : 1 3^~10↑↑43.28 B> 15112151515511
108 : 1 3^~10↑↑44.28 B> 121212151515511
109 : 1 3^~10↑↑45.28 B> 1223232312515511
110 : 3^~10↑↑45.28 B> 1551232312515511
111 : 1 3^~10↑↑45.28 B> 151512312515511
112 : 1 3^~10↑↑46.28 B> 1212512312515511
113 : 1 3^~10↑↑47.28 B> 12232122312515511
114 : 3^~10↑↑47.28 B> 15512122312515511
115 : 1 3^~10↑↑47.28 B> 1515155112515511
116 : 1 3^~10↑↑48.28 B> 12125155112515511
117 : 1 3^~10↑↑49.28 B> 122321255112515511
118 : 3^~10↑↑49.28 B> 155121255112515511
119 : 3^~10↑↑49.28 B> 1223231232125511
120 : 1 3^~10↑↑49.28 B> 1551231232125511
121 : 1 3^~10↑↑50.28 B> 12151511232125511
122 : 1 3^~10↑↑51.28 B> 122312511232125511
123 : 3^~10↑↑51.28 B> 155112511232125511
124 : 3^~10↑↑51.28 B> 1232121232125511
125 : 1 3^~10↑↑51.28 B> 1512121232125511
126 : 1 3^~10↑↑52.28 B> 12122121232125511
127 : 3^~10↑↑52.28 B> 15155151512125511
128 : 1 3^~10↑↑52.28 B> 1255151512125511
129 : 1 3^~10↑↑53.28 B> 12231212512125511
130 : 3^~10↑↑53.28 B> 15511212512125511
131 : 3^~10↑↑53.28 B> 123232122125511
132 : 1 3^~10↑↑53.28 B> 151232122125511
133 : 1 3^~10↑↑54.28 B> 1212232122125511
134 : 3^~10↑↑54.28 B> 1515512122125511
135 : 1 3^~10↑↑54.28 B> 125512122125511
136 : 1 3^~10↑↑55.28 B> 12231223223231231
137 : 3^~10↑↑55.28 B> 15511223223231231
138 : 1 3^~10↑↑55.28 B> 1511551223231231
139 : 1 3^~10↑↑56.28 B> 12121551223231231
140 : 1 3^~10↑↑57.28 B> 122323151551231231
141 : 3^~10↑↑57.28 B> 155123151551231231
142 : 1 3^~10↑↑57.28 B> 15151151551231231
143 : 1 3^~10↑↑58.28 B> 121251151551231231
144 : 1 3^~10↑↑59.28 B> 1223212151551231231
145 : 3^~10↑↑59.28 B> 1551212151551231231
146 : 3^~10↑↑59.28 B> 12232312551231231
147 : 1 3^~10↑↑59.28 B> 15512312551231231
148 : 1 3^~10↑↑60.28 B> 121515112551231231
149 : 1 3^~10↑↑61.28 B> 1223125112551231231
150 : 3^~10↑↑61.28 B> 1551125112551231231
151 : 3^~10↑↑61.28 B> 12321212551231231
152 : 1 3^~10↑↑61.28 B> 15121212551231231
153 : 1 3^~10↑↑62.28 B> 121221212551231231
154 : 1 3^~10↑↑63.28 B> 1223223232151511231
155 : 3^~10↑↑63.28 B> 1551223232151511231
156 : 1 3^~10↑↑63.28 B> 151551232151511231
157 : 1 3^~10↑↑64.28 B> 1212551232151511231
158 : 1 3^~10↑↑65.28 B> 12232151512151511231
159 : 3^~10↑↑65.28 B> 15512151512151511231
160 : 3^~10↑↑65.28 B> 122312512151511231
161 : 1 3^~10↑↑65.28 B> 155112512151511231
162 : 1 3^~10↑↑66.28 B> 121232122151511231
163 : 3^~10↑↑66.28 B> 151512122151511231
164 : 1 3^~10↑↑66.28 B> 12512122151511231
165 : 1 3^~10↑↑67.28 B> 122122122151511231
166 : 1 3^~10↑↑68.28 B> 1222322322312511231
167 : 3^~10↑↑68.28 B> 1555122322312511231
168 : 3^~10↑↑68.28 B> 12555122312511231
169 : 3^~10↑↑68.28 B> 2312555112511231
170 : 1 3^~10↑↑68.28 B> 5112555112511231
171 : 1 3^~10↑↑69.28 B> 121212555112511231
172 : 3^~10↑↑69.28 B> 151515223232121231
173 : 1 3^~10↑↑69.28 B> 12515223232121231
174 : 1 3^~10↑↑70.28 B> 122125223232121231
HALT (14 + 2^(-1 + 2^(2 + 2^(1 + 2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(-1 + 2^2^(3 + 2^2^(3 + 2^2^(2 + 2^2^(-1 + 2^2^(-1 + 2^2^(2 + 2^2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(3 + 2^2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(-1 + 2^2^(-1 + 2^2^(4 + 2^2^(-1 + 2^2^(-1 + 2^2^(1 + 2^(1 + 2^(-1 + 2^(4 + 2^2^(-1 + 2^2^(2 + 2^2^(2 + 2^2^(-1 + 2^2^(2 + 2^8))))))))))))))))))))))))))))))))))))))))
Skelet #10 is a double binary counter, but with two twists:
I believe this “synchronization” criterion is why CTL methods have not been able to prove it yet. And I think it’s a good candidate for an Irregular TM (TM that cannot be proven using CTL (Regular Language) methods).
The TM I will be discussing here is Skelet #10 which he describes with the notation C1L A0L H1L C0L D0R A1L B1L E1R D1R E0R
. Converted into Tree Normal Form (TNF) and using Standard Text format this is:
1RB0RA_0LC1RA_1RE1LD_1LC0LD_---0RB
0 | 1 | |
---|---|---|
A | 1RB | 0RA |
B | 0LC | 1RA |
C | 1RE | 1LD |
D | 1LC | 0LD |
E | — | 0RB |
It is TM #3,810,716 on bbchallenge.org.
For the rest of this article, I will use this TNF state naming.
Let me first define Fibonacci notation. Fibonacci notation is a place-value notation like Binary notation, but instead of the n-th place representing \(2^n\), it represents \(F_{n+2}\) (the \(n+2\)-nd Fibonacci number).^{2} So, for example, consider the notation 10100
. In standard, big-endian binary notation this represents the number \(1 \cdot 2^4 + 1 \cdot 2^2 = 16 + 4 = 20\). In (big-endian) Fibonacci notation it represents the number \(1 \cdot F_{4+2} + 1 \cdot F_{2+2} = 8 + 3 = 11\).
Every natural number (non-negative integer) can be represented in “at least” one way in Fibonacci notation. But unlike Binary notation, there can be two different Fibonacci notations for the same number. For example, both 11
and 100
represent the number 3!
However, it turns out that we can identify one “canonical” representation for every natural number by adding a single restriction: don’t allow any bit sequences to have any adjacent 1
s (i.e. don’t allow subsequence 11
). By Zeckendorf’s theorem this leaves a single unique representation for every natural number called the Zeckendorf representation.
Let me specifically define \(Z(n)\) to be the little-endian, Zeckendorf representation of \(n\). So \(Z(11) = 00101\). Furthermore, notice that adding trailing zeros does not change the representation, so really we can consider the Zeckendorf representation to have infinite 0
s to the right and so 00101
is sort-of a shorthand for 001010000...
.
Notice that since the Zeckendorf representation does not have any 11
s, every 1
must be followed by a 0
. So we can write any Zeckendorf representation as a sequence of 0
and 10
s. For our example 11 (00101
), that would look like 0 0 10 10
(note that I include one trailing 0
here).
What happens when we increment a number written in Zeckendorf representation? It turns out that there are some relatively simple rules for incrementing:
\[\begin{array}{ccrl} Z(n) & = & 0 & 10^k & 0 & w & \implies & Z(n+1) & = & 0^{2k} & 10 & w \\ Z(n) & = & 10 & 10^k & 0 & w & \implies & Z(n+1) & = & 0^{2k+1} & 10 & w \\ \end{array}\]Where \(10^k\) means k repetitions of 10
, \(0^k\) means k repetitions of 0
and \(w\) is an arbitrary (possibly empty) suffix of \(Z(n)\).^{3}
I leave proof of these as exercise to the reader. They follow directly from the facts that \(F_{n+2} = F_n + F_{n+1}\) and \(F_3 = F_2 + 1\).
We now have enough theory to describe the behavior of the right side counter. At the basic TM level, it obeys these rules:
\[\begin{array}{crl} \text{A>} & 0 & 10^k & 0 & \to & \text{<D} & 0^{2k} & 10 \\ \text{B>} & 10 & 10^k & 0 & \to & \text{<D} & 0^{2k+1} & 10 \\ \end{array}\]Do these look familiar? They are exactly the Zeckendorf increment rules! So we can restate these as:
\[\begin{array}{c} Z(n) = 0 \; w & \implies & \text{A>} & Z(n) & \to & \text{<D} & Z(n+1) \\ Z(n) = 1 \; w & \implies & \text{B>} & Z(n) & \to & \text{<D} & Z(n+1) \\ \end{array}\]Where by \(Z(n) = 0 \; w\) I mean that the least-significant bit in \(Z(n)\) is 0
.
Alas, the left side counter is not quite so easy to describe. In a way, we got very lucky that the right side counter used the exact same notation as our Zeckendorf representation!
For the left side counter, it is encoded with these differences:
10
from the Zeckendorf representation is encoded as 1010
on the tape, each 0
from Zeckendorf is encoded as 00
.Formally, let’s define \(T(w)\) and \(L(n)\) by:
So, \(T(w)\) reverses the order of \(w\) and applies the symbol transformation and \(L(n)\) takes that result and strips the least-significant (rightmost) 2 tape symbols. As an example:
0 0 10 10 0...
...00 1010 1010 00 00
...00 1010 1010 00
. So \(L(11) = ...001010101000\)Let’s consider 3 cases based upon the 3 possible values for the 2 least-significant bits in \(Z(n)\):
\(Z(n)\) | \(T(Z(n))\) | \(L(n)\) |
---|---|---|
\(00 \; w\) | \(T(w) \; 00 \; 00\) | \(T(w) \; 00\) |
\(0 \; 10^{k+1} \; 0 \; w\) | \(T(w) \; 00 \; 1010^{k+1} \; 00\) | \(T(w) \; 00 \; 10^{2k+1} \; 10\) |
\(10 \; 10^k \; 0 \; w\) | \(T(w) \; 00 \; 1010^{k+1}\) | \(T(w) \; 00 \; 10^{2k} \; 10\) |
And now let’s consider how increments affect this:
\(Z(n)\) | \(L(n)\) | \(Z(n+1)\) | \(L(n+1)\) |
---|---|---|---|
\(00 \; w\) | \(T(w) \; 00\) | \(10 \; w\) | \(T(w) \; 10\) |
\(0 \; 10^{k+1} \; 0 \; w\) | \(T(w) \; 00 \; 10^{2k+1} \; 10\) | \(0^{2k+2} \; 10 \; w\) | \(T(w) \; 10 \; 10 \; 00^{2k+1}\) |
\(10 \; 10^k \; 0 \; w\) | \(T(w) \; 00 \; 10^{2k} \; 10\) | \(0^{2k+1} \; 10 \; w\) | \(T(w) \; 10 \; 10 \; 00^{2k}\) |
Now, consider the following base TM rules:
\[\begin{array}{c} & & 00 & \text{<D} & \to & & & 10 & \text{B>} \\ 00 & 10^k & 10 & \text{<D} & \to & 10 & 10 & 00^k & \text{A>} \\ \end{array}\]Aha, these look just like the \(L(n)\) and \(L(n+1)\) cases above! And so:
\[\begin{array}{c} Z(n) = 00 \; w & \implies & L(n) & \text{<D} & \to & L(n+1) & \text{B>} \\ Z(n) \ne 00 \; w & \implies & L(n) & \text{<D} & \to & L(n+1) & \text{A>} \\ \end{array}\]Where by \(Z(n) = 00 \; w\) I mean that the two least-significant bits in \(Z(n)\) are 00
and by \(Z(n) \ne 00 \; w\) I mean the opposite case.
Bringing all the Fibonacci counter rules together we have:
\[\begin{array}{c} Z(n) = 0 \; w & \implies & \text{A>} & Z(n) & \to & \text{<D} & Z(n+1) \\ Z(n) = 1 \; w & \implies & \text{B>} & Z(n) & \to & \text{<D} & Z(n+1) \\ \end{array}\] \[\begin{array}{c} Z(n) = 00 \; w & \implies & L(n) & \text{<D} & \to & L(n+1) & \text{B>} \\ Z(n) \ne 00 \; w & \implies & L(n) & \text{<D} & \to & L(n+1) & \text{A>} \\ \end{array}\]Additionally, the TM starts in configuration \(L(0) \;\; \text{A>} \;\; Z(0)\). The only complexity remaining is to prove that the TM is in the correct A>
or B>
config at the right time so that these rules can be applied forever.
Theorem: Let \(D(n) = L(n) \;\; \text{<D} \;\; Z(n+1)\), then \(D(n) \to D(n+1)\)
Proof: Let us again consider the 3 cases for \(Z(n)\):
QED
The crux here is basically the fact that \(Z(n+1)\) starts with 1
if and only if \(Z(n)\) starts with 00
.
And finally, we can see that the TM starts in config \(L(0) \;\; \text{A>} \;\; Z(0)\) which proceeds to \(L(0) \;\; \text{<D} \;\; Z(1) = D(0)\) and thus, this TM is infinite.
Note: A few days after I posted this article, @Iijil shared an elegant proof for a (different) Irregular TM.
The proof that this TM is infinite in the last section depended on one specific detail: That the Fibonacci Counters on the left and right were synchronized (specifically that the right count was 1 ahead of the left count). This might be why CTL deciders have not been able to prove this machine yet.
I wrote about the theory behind CTL last summer and since then, there has been significant improvement among the bbchallenge.org community to develop the idea into extremely effective deciders. But let me restate the basic idea here:
A Closed Set proof consists of defining a set \(C\) of TM configurations and proving the following properties:
For example, my theorem above is a Closed Set proof (In fact, every proof I have ever seen of TMs being infinite is a Closed Set proof. This concept is very broad!).
A CTL proof is a Closed Set proof where the set \(C\) is a Regular Language (defined via Regular Expression or a Finite-State Machine or another equivalent method) and \(s = 1\) in the closure rule above (for all \(c \in C\) and \(c \to d\) in 1 step, then \(d \in C\)).
Regular Languages have turned out to be extremely powerful in constructing Closed Set proofs. But they have (at least theoretical) limitations. One open question that has come up again and again is: What is an example of an infinite TM which cannot be proven infinite using CTL (because there does not exist any regular language \(C\) with the Closed Set properties listed above). I will call such a TM Irregular … because, you know, it’s not Regular :)
I conjecture that Skelet #10 is an Irregular TM, but I don’t yet have a proof. But here are some facts that make me think it is:
0 A> 10
or 0 B> 0
).0 B> 0 -> Halt
in 3 steps, 0 A> 10 10 ... -> Halt
in a longer series of steps. However, for 0 A> 10 0 ...
it’s a little less clear what happens.So, in order to prove that this TM is Irregular, I think you’ll basically have to prove that any closed regular language \(C \supseteq \{L(n) \;\; \text{<D} \;\; Z(n+1)\}\) must also contain some halting configurations (like the ones I’ve listed).
This article is part of a series studying Skelet TMs:
Skelet #10: Double Fibonacci Counter
You can find his explanation on github although I haven’t been able to understand the details myself. ↩
I start this Fibonacci sequence with \(F_2 = 1\) and \(F_3 = 2\) so that each Fibonacci number is distinct. ↩
Note: these rules are similar to the Binary increment rule: \(B(n) = 1^n 0 w \implies B(n+1) = 0^n 1 w\) ↩