/machines/1RB0RA_0RC0LE_1LD1RF_1LB1RD_1LD1LE_---1RA/notes.md · raw

1RB0RA_0RC0LE_1LD1RF_1LB1RD_1LD1LE_---1RA

Label: H-3 (halting hunt). 740 list line 244. Class: Counter Class 3.

Family, checked here by exhaustive renaming and mirroring against CounterClass3v1 TM4 (1LB1LA_1LC1RB_0RD0LA_1LA1RE_---1RF_1RC0RF). In TM4's labels the three tables differ from TM4 only in D0:

line holdout string D0 in TM4 labels start (TM4 labels)
244 1RB0RA_0RC0LE_1LD1RF_1LB1RD_1LD1LE_---1RA 1LB F
216 1RB0RA_0RC0LD_1LA1RF_1LE1LD_1LB1RE_---1RA 1LF F
701 1RB1RA_1RC1LB_0LD0RA_1RF1LE_---1LF_1LC0LF 1LF A, mirrored

216 and 701 are one table from two starts. In 244's own labels the differing transition is C0. All three are claimed by claude in coord/claims.tsv (2026-10-13).

Halting hunt: exact model (2026-10-13)

Result: no halt to the horizon for all three machines (numbers in the results table below). The exact model reached these epochs:

The earlier cc3acc runs reached about epoch 11.

Two findings change the H-3 brief:

The model (scripts/rle.py, scripts/rle2.py)

Everything is in TM4's labels with the machine's own D0. The tape is run-length encoded with exact Python integers.

Plain model (rle.py). It uses three kinds of move:

l 0^(2n) <B 1^2 0 1^n r --> l <B 1^(2n+2) 0 1^n r 24*2^n - 6n - 24 steps

Batched model (rle2.py). It adds a word run U = (0 1^2), kept only in the left stack, and three batch rules. Each rule is a closed form of an iterated macro step that was derived from the table:

W  (wave, k >= 1, any L, R' starting with 0 or blank)
   L 0^2 <B 1^(2k+2) 0 1^k R'  -->  L U^k 0^2 <B 1^2 0 R'
   one iteration: L 0^2 <B 1^(2j+2) 0 1^j R' --> L U 0^2 <B 1^(2j) 0 1^(j-1) R'
   steps 24(2^k - 1) - 2k(k+1) - 9k

A  (absorption, x >= 1, c >= 1, any L, R'')
   L U^u <A:0 1^x 0 1^c R''  -->  L <A:0 1^(x+2u) 0 1^(c+u) R''
   steps 2ux + 2u(u-1) + 7u

P  (passes, g >= 3 zeros ending at the head, j <= b-1, any X, R)
   X 0^g <A:0 1^(2j+1) 0 1^b R  -->  X 0^(g-2p) <A:0 1^(2j+2p+1) 0 1^b R,
   with p = min(b - j, (g-1)//2) and g = infinity at the left end
   steps 24(2^(j+p) - 2^j) - 6p

Above 4000 bits, step counts are kept as log2 (steps_str prints ~10^x). Everything else stays exact.

Epoch structure. An epoch starts at 0^inf <A 1 0 1^b 0 1^c ... (the driver logs each one). It runs in four phases:

  1. Passes grow the left block to 2b+1.
  2. A wave turns b into U^b.
  3. The same pass/wave machinery recurses into c, d, ..., down to the right end, where D0 fires.
  4. Absorption folds the units back in. The next epoch starts with b' = 2b + 5 + (units made deeper down).

b roughly doubles per epoch.

Validation

How these machines would halt

The only halting transition is E0. E is entered only by D1, and D only by C0.

Halting needs exactly this: a wave has just consumed a block, and the next block has length 1:

<B 1^2 0^2 1^L 0   (just after W)   halts  iff  L = 1     (F0, C0, D1, E0)

TM4 halts this way, with tail [.., 16, 1].

This pattern catches every possible halt. C is entered by B0 (1LC) or F0 (1RC), and a B0 entry cannot reach E0:

So every E0 comes from F> 0 0 1 0. The F0 steps inside batch rules cannot halt, because each rule reaches its target configuration (derived, and checked on constructed tapes). Every other F0 is a single step at a macro boundary, and the census checks those. So the census misses no halt.

The census of L over the whole run:

machine smallest L L = 2 L = 3
244 2 6,969,750 68,135,398
216 5 0 0
701 4 0 0

These counts cover the whole C run. The Python census (driver3.py) agrees on the 64 epochs they share.

L = 1 never occurs.

Small counter blocks are made at the right end, where the right-end routines re-seed the last blocks. Right-end events have two forms:

(i)  U^k 0 1^2 0 1 0 <D:0          (a wave ate the last block)
(ii) 1^2 0 1 0 1^2 0^g 1 0 <D:0    (F erased a last block of length g+2)

Each routine is linear in k or g (scripts/endroutine*.py, k <= 24, g <= 39). Only two parameter values create a 1-block:

These two values really are the halting doors. Injecting them into real right-end configurations of the run, then continuing the exact model to the next epoch start, gives:

injection contexts halt before the next epoch start
g set to 4 in 244's (ii) events (scripts/g4test.py) 40 12
units removed (k = 0) in 216's (i) events (scripts/k0test.py) 40 38

Over 30,000 right-end events (scripts/endseq.py, with bigrams) the event sequence follows a rigid grammar, for example:

k1 -> g1 | k2 | big
k2 -> g2
g1 -> k9 | k10 | g8 | big
gX -> k1   (244)

The successor values are structural, not free:

o -> k4 -> k4* -> g3 -> o o -> k>15 -> ... -> g>15 -> o

701's startup alone shows k3, g2 and g6, once each. A nonhalting proof for 216/701 looks tractable along this line: the right end re-seeds from a fixed small seed (k = 4) or from big values only.

So the right end lives on a structured set that avoids the one halting value. Whether that holds forever is open. It is the natural nonhalting route, and the side upstream works on (CounterClass3v2).

Assessment

Results (C run work/c_run/, 2026-10-13)

machine epochs b at the last epoch start TM steps D0 firings post-wave L: min / L=2 / L=3 halts
244 108 728220738755644974829897585431960599 (10^35.86) about 10^(1.1e+35) 397,998,429 2 / 6,969,750 / 68,135,398 none
216 97 120860769075791407668089466898701 (10^32.08) about 10^(1.82e+31) 74,294,216 5 / 0 / 0 none
701 96 59946721306034064405925122421303 (10^31.78) about 10^(9.02e+30) 63,432,649 4 / 0 / 0 none

Right-end statistics over the whole run (work/c_run/bigrams_<line>.txt and the g_hist/k_hist fields):

Notes on the run:

Scripts and logs

All in scripts/:

The long run's logs are in work/c_run/ (epochs_<line>.jsonl). Logs of the Python runs are in work/rle2_run/ and work/rle3_run/ (epochs_<line>.jsonl, one line per epoch; checkpoint ckpt.pkl). work/anchors_long*.out and work/cmp12_*.out hold the anchor and comparison outputs. work/rle_run/ is the first plain-model run, stopped at epoch 15/16 because it was superseded.