/machines/1RB0LC_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD---/proof.md · raw

1RB0LC_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD---: informal proof (INCOMPLETE: invariant open)

     0    1
A   1RB  0LC        (parent: 0LE)
B   1RC  0RC
C   1LD  0RB
D   1LA  0LE
E   1LD  1LF
F   1LD  ---        halting transition: F reads 1

1. Notation and two exact facts

1.1 K-configurations

K(L; a, b) := 0^inf L (10)^a 0^3 (10)^b B> 0^inf          L an arbitrary finite word (the "left text")
digit d = (u, beta, v):   (u,0,v) := (10)^u 00 (01)^v      (u,1,v) := (10)^u (01)^v
K(d_1 .. d_m; a, b) := K(10 01 d_1 .. d_m; a, b)           as in the parent

1.2 Table facts (check 1)

1.3 Token machine (check 2)

Pair the cells in the head's parity: the head stands between tokens z = 00, o = 01, a = 10 and X = 11. Every visit of the head to a token starts and ends on a token boundary. So the machine is exactly the following 4-symbol machine, with 5 left-moving states and 2 right-moving states (C' is C entered from the left). Each entry lists the new token, the exit state and the direction. All 28 entries are checked against the cell machine.

left-moving (enters the token on its left)
E:  a->o E   z->X A   o->X D   X->HALT
D:  o->a D   X->a F   a->o C   z->a C' (turns right)
F:  a->o E   z->X A   o->HALT  X->HALT
A:  o->a D   X->o C'  z->o B   a->X B      (the last three turn right)
C:  a->o E   z->X A   o->z B   X->a B      (the last two turn right)
right-moving (enters the token on its right)
B:  o->a B   X->z B   z->o E   a->X A      (the last two turn left)
C': a->o C'  X->z C'  z->a D   o->X D      (the last two turn left)

The blank start is the entry (A, z): cell 0 is the right cell of its token. So the token machine describes the whole run. Halting therefore needs E to meet an X, or F to meet an o or an X, and F comes only from D meeting an X. "Misaligned" left text is not a special case for the machine. It only breaks the digit description. §3.6 states the same hazards in cell terms, at the one place where they can occur.

2. Window lemmas (checks 3, 4)

These are the parent's 20 lemmas (parent proof.md §2.1) under the twin's table, plus four new ones:

lemma window steps status in the twin
S1–S6, T1, T2, T4, T6–T8, T10, T11, T13, T14 as in the parent as in the parent verbatim (16)
T9 0^inf 1001 <E → 0^inf 1001000 B> 13 same window and result. The trace is E1 F0 D0 A1 C0 D0 A0 B1 C1 B0 C1 B1 C1: C0 replaces the parent's E0, because A1 now enters C
T3 100 <E → <C 011 3 exits C, not E
T5 10 <D → <C 01 2 exits C, not E
T12 C> 11 0^inf → <C 01101 0^inf 13 exits C, not E
S4c 10 <C → <E 01 2 new: C0 D1, the C-entry copy of S4's first block
T2c 000 <C → 100 B> 5 new: the C-entry copy of T2
T5b 110 <D → 010 B> 5 new: D0 A1 C1 B0 C1, the bounce
T3j 0100 <E → <D 1011 4 new: E0 D0 A1 C0, i.e. T3 followed by C reading 0

C0 = E0 = 1LD. So any window whose first step is E reading 0 has an exact copy entered in C, with the same steps and result. S4c and T2c are two such copies, and §3.5 uses the C-entry copies of T3 and T3j in the same way. The C exits of T3, T5 and T12 therefore differ from the parent only when the next cell read is a 1. F is entered only in T4, T9 and T13, each time reading 0 (check 3).

Composite lemmas: - Lb (twin, u ≥ 2): (10)^u (01)^v <E → <E (01)^u (10)^(v−1) 11, in 2u+2v steps (T4, S3^(v−1), T5, S4c, S4^(u−2)). It has the parent's shape and step count. - Lb1 (new, u = 1 with a 0 on its left): 0 10 (01)^v <E → 0 <C 01 (10)^(v−1) 11, in 2v+2 steps (T4, S3^(v−1), T5). The C that follows reads that 0, so it acts as E. - Lf, Rb, Ro: verbatim. They use no changed lemma. - Lt (new, the bounce on a bit-1 digit with u = 1 whose left neighbour cell is 1): 1 10 (01)^v <E → 01 (10)^(v−1) 000 B>, in 8v+1 steps (T4, S3^(v−1), T5b, S6^(v−1), T10). Check 4 runs it for v = 1..40 and checks the step sum.

3. Macro rules

3.1 M (carry): the parent's M, with a narrower domain

K(L, (u,0,v), (u_j,1,v_j)_{j*<j<=m}; a, b) --> K(L, (u+1,1,v-1), (u_j,0,v_j-1)_j; a+1, b+2)
steps 32 + 8a + 8b + 4v + sum_j (8u_j + 4v_j)
needs v >= 1, a >= 1, and u_j >= 2, v_j >= 1 for every trailing bit-1 digit; L arbitrary

The twin's chain, with X the never-read text left of d_{j*} = (u*,0,v*), Y = Π_i (10)^u_i (01)^v_i the trailing bit-1 digits, and Y' = Π_i (01)^u_i (10)^(v_i−1) 11, Y'' = Π_i (10)^u_i 00 (01)^(v_i−1) as in the parent:

                                                                                        steps
    X (10)^u* 00 (01)^v* Y (10)^a 000 (10)^b B> 0^inf
 Phase 1 (verbatim: T1 S4 T2 S1)                                                         4b+10
    .. Y (10)^(a+1) 0 (10)^(b+1) B> 0^inf
 Phase 2 (changed: T3 exits C, so S4c takes the last 10 of (10)^a)                       2a+2b+9+4v*+Σ(2u_i+2v_i)
T1  .. Y (10)^(a+1) 0 (10)^(b+1) <E 01                                                   3
S4  .. Y (10)^(a+1) 0 <E (01)^(b+2)                                                      2b+2
T3  .. Y (10)^a <C 011 (01)^(b+2)                                                        3
S4c .. Y (10)^(a−1) <E 01 011 (01)^(b+2)                                                 2      needs a >= 1
S4  X (10)^u* 00 (01)^v* Y <E (01)^a 011 (01)^(b+2)                                      2a−2
Lb  X (10)^u* 00 (01)^v* <E Y' (01)^a 011 (01)^(b+2)      (i = k down to 1)              Σ(2u_i+2v_i)   twin Lb, u_i >= 2
Lf  X (10)^(u*+1) (01)^(v*−1) C> 11 Y' (01)^a 011 (01)^(b+2)                             4v*+1
 Phase 3 (verbatim: Rb per digit, S5, T8, S1)                                            6a+2b+13+Σ(6u_i+2v_i)
    X (10)^(u*+1) (01)^(v*−1) Y'' (10)^(a+1) 000 (10)^(b+2) B> 0^inf

The step totals equal the parent's: S4c costs 2, like the S4 block it replaces. a ≥ 1 is needed because of S4c. With a = 0, the C after T3 would read the swept digit's last 1 and bounce. Checked on random K-configs with arbitrary left text (check 5).

3.2 O (overflow at the far left): the parent's O, with a narrower domain

K(d_1..d_m; a, b) → K((0,0,u_1), (v_1−1,0,u_2), .., (v_m,1,a); b+3, 1), in 89 − 4m + 8a + 20b + 4Σu + 8Σv steps. It needs all bits 1, every u_j ≥ 2, v_j ≥ 1, a ≥ 1, and the plain wall 0^inf 10 01. The chain is the parent's §2.3. Two phases change, with Y''' as in the parent:

 Phases 1–2 as in M (§3.1), with Lb on all m digits and no Lf                             (4b+10)+(2a+2b+8)+Σ(2u_i+2v_i)
    0^inf 10 01 <E Y' (01)^a 011 (01)^(b+2)
 Phase 3: T9 (twin trace, §2)                                                             13
 Phase 4: Ro per digit (verbatim)                                                         Σ(2u_i+6v_i−4)
 Phase 5 (changed: T12 exits C, so S4c takes the last 10 of (10)^(b+2))                   2a+8b+30
S1  .. Y''' (10)^a B> 011 (01)^(b+2)                                                      2a
T11 .. Y''' (10)^a 1 C> 11 (01)^(b+2)                                                     1
S5  .. Y''' (10)^a 1 (10)^(b+2) C> 11 0^inf                                               6b+12
T12 .. Y''' (10)^a 1 (10)^(b+2) <C 01101 0^inf                                            13
S4c .. Y''' (10)^a 1 (10)^(b+1) <E 01 01101                                               2
S4  .. Y''' (10)^a 1 <E (01)^(b+2) 01101                                                  2b+2
 Phases 6–7 (verbatim: T13 S4, then T2 S1 S6 T14)                                         (2a+1)+(2a+6b+27)

Checked in check 5. §3.5 shows that O is one case of a more general overflow O*, and that the wall condition v = 1 is not needed.

3.3 P (partial overflow): new

The leftward sweep meets its first bit-1 digit with u = 1, d_p = (1,1,v_p), and the left text L ends in 1. Then:

K(L, (1,1,v_p), (u_i,1,v_i)_{p<i<=m}; a, b)
  --> L[:-1] 01 (10)^(v_p-1) 00 (01)^u_{p+1} [(10)^(v_i-1) 00 (01)^u_{i+1}]_{p<i<m} (10)^v_m (01)^a (10)^(b+3) 000 10 B> 0^inf
      (k = 1:  L[:-1] 01 (10)^v_p (01)^a (10)^(b+3) 000 10 B> 0^inf)
steps 77 - 4k + 8a + 20b + 4 sum_{i>=p} u_i + 8 sum_{i>=p} v_i          (k = m - p + 1)
needs u_i >= 2 and v_i >= 1 for i > p, v_p >= 1, a >= 1

Read with L' = L[:-1] 01, the result is K(L', (v_p−1,0,u_{p+1}), .., (v_{m−1}−1,0,u_m), (v_m,1,a); b+3, 1). This is the parent's O output on the suffix d_p..d_m without its top digit (0,0,u_p) = (0,0,1).

Derivation as a chain. Check 6 confirms each link on the real machine, as the full tape, head and state after the cumulative step count, on a 405-case box plus 150 random cases. Here Y' = Π_{i>p} (01)^u_i (10)^(v_i−1) 11 and Y''' = Π_{i>p} (10)^(u_i−1) 1 (10)^(v_i−1) 000.

                                                                           cumulative steps
  L 10 (01)^v_p Y (10)^a 000 (10)^b B> 0^inf
phase 1 (T1 S4 T2 S1, as in M)        .. (10)^(a+1) 0 (10)^(b+1) B> 0^inf               4b+10
phase 2 (T1 S4 T3 S4c S4, Lb_i>p)     L 10 (01)^v_p <E Y' (01)^a 011 (01)^(b+2)         + 2a+2b+8 + Σ_{i>p}(2u_i+2v_i)
Lt on d_p (L ends in 1)               L[:-1] 01 (10)^(v_p−1) 000 B> Y' (01)^a 011 (01)^(b+2)   + 8v_p+1
Ro_i>p                                L[:-1] 01 (10)^(v_p−1) 000 Y''' B> (01)^a 011 (01)^(b+2)  + Σ_{i>p}(2u_i+6v_i−4)
phases 5-7 of O (§3.2)                the P result                                       + 6a+14b+58

The total equals the P formula. Compared with O on the suffix, "T9 + Ro on d_p + Lb on d_p" (13 + (6v_p−2) + (2v_p+2) steps) is replaced by Lt (8v_p+1), which is 12 steps cheaper.

What moves. P's leftmost read is the last cell of L, a 1, and Lt rewrites it as 0 1. So L' = L[:-1] 01 is one cell longer than L, and L[:-1] stays where it is on the tape. The right part grows by an odd number of cells: from step 283 to step 428 the text grows from 30 to 37 cells, and the leftmost 1 is at cell −12 at both steps. What flips is the parity of L[:-1] relative to the head and to the digits on its right.

3.4 What M, O and P leave out

To 10^9 there are 22,435 K→K transitions (check 8). M, O and P predict 22,390 of them exactly (M 22,349, P 35, O 6). The other 45 fall outside their domains:

reason M/O/P do not apply to 1e9 what it is under G (§3.5)
the carry reaches a bit-0 digit with v = 0 33 turn T2 (23: a junction (u,0,0), u ≥ 1, or the misaligned ..1 000), T3S2 (8: (0,0,0) after 11), Jc (2: (0,0,0) after a bit-0 digit, at the far left)
the sweep runs into non-digit left text 9 turn T2 on the blank (5: leading digit u ≥ 2, no wall), Lf on the blank (4: text 0^inf 1 .. = 0^inf 00 01 .., a bit-0 digit (0,0,1) whose 00 is blank)
the far-left wall is 10 (01)^v with v ≥ 2 3 turn T2 on the blank, after Lb1 on the wall digit (1,1,v)

So all 45 are single applications of one rule, with exact domains, outputs and step counts. They are not new local behaviour.

3.5 The general rule G (checks 8, 11)

Let K(L; a, b) with a ≥ 1.

Swept suffix. Read L from the right and peel off maximal digits (10)^u (01)^v (u, v ≥ 1, bit 1): - a digit with u ≥ 2 is swept by Lb, and peeling continues; - a digit with u = 1 and a 0 on its left (a blank counts as 0) is swept by Lb1, and peeling stops, because the cell on its left is 0 and not the end of a digit; - a digit with u = 1 and a 1 on its left is the bounce digit. It is not swept, and the turn is Lt.

What remains is the text X, so L = X d_p .. d_m with d_p .. d_m the swept digits (k = m − p + 1 ≥ 0). X does not end in 10 and does not end in a digit, by maximality.

Phases 1–2. As in M (§3.1). Phase 1 reads only the a/b block. Phase 2 sweeps the a block and then Lb or Lb1 on d_m, .., d_p. The head is then at X <E, or at X <C before a 0 after Lb1, which acts the same (§2).

Turn. On the last cells of X (or on the bounce digit), with X' never read:

turn the text becomes steps exits made of
Lf X' 00 (01)^v, v ≥ 1 X' 10 (01)^(v−1) C> 11 4v+1 C T4 S3^(v−1) T6 S2^(v−1)
T3S2 X' 1100 X' 01 C> 11 5 C T3 S2
Jc X' 00 (01)^v 00, v ≥ 1 X' 10 (01)^v C> 11 4v+5 C T3j S3^(v−1) T6 S2^(v−1) S2
T2 X' 000 X' 100 B> 5 B T2 (T2c after Lb1)
Lt X' 1 10 (01)^v (bounce digit) X' 01 (10)^(v−1) 000 B> 8v+1 B T4 S3^(v−1) T5b S6^(v−1) T10

Return and right end. - M* (C exit). Rb on d_p, .., d_m, then M's phase 3 tail (S5^a, T8, S1^(b+2)): K(X'·t, d_p..d_m; a, b) --> K(X'·w, (u_i,0,v_i−1)_{i=p..m}; a+1, b+2) steps 31 + 8a + 8b + c + Σ_i (8u_i + 4v_i) c = 4v+1 (Lf), 5 (T3S2), 4v+5 (Jc) (t, w) = (00 (01)^v, 10 (01)^(v−1)) for Lf, (1100, 01) for T3S2, (00 (01)^v 00, 10 (01)^v) for Jc Lf with X' = X'' (10)^u is M: the digit (u,0,v) becomes (u+1,1,v−1). T3S2 turns .. 1 1 00 into .. 0 1. Jc removes a junction (0,0,0) after a bit-0 digit (u,0,v) and flips that digit to (u+1,1,v) without spending a 01. - O* (B exit). Ro on d_p, .., d_m, then O's phases 5–7 (§3.2). Phase 6 sweeps left over (10)^(a−1) and turns (T2) in the 000 that the last Ro left, or that Lt left when there is no swept digit: T2: K(X' 000, d_p..d_m; a, b) --> K(X', (1,1,u_p), (v_p−1,0,u_{p+1}), .., (v_{m−1}−1,0,u_m), (v_m,1,a); b+3, 1) steps 81 − 4k + 8a + 20b + 4 Σ_{i>=p} u_i + 8 Σ_{i>=p} v_i, needs k >= 1 Lt: the P rule of §3.3 (k counts the bounce digit there) On the tape, the T2 result is X' 10 (01)^u_p (10)^(v_p−1) 00 (01)^u_{p+1} .. (10)^v_m (01)^a (10)^(b+3) 000 10 B>. T2 needs k ≥ 1. With k = 0 the turn leaves 100 where phase 6 expects 000 (class U0 below).

Special cases. - M is Lf with every swept digit u ≥ 2. - O is T2 with d_p = the wall digit (1,1,1) (swept by Lb1) and X' = 0^inf. The formula then gives O's output and O's step count. T9 is exactly "Lb1 on 10 01, T2c on the blank, Ro on (1,1,1)": its trace splits as E1 F0 | D0 A1 | C0 D0 A0 B1 C1 | B0 C1 B1 C1. - The far-left wall 10 (01)^v with v ≥ 2 is the same T2 case with d_p = (1,1,v). It gives K((v−1,0,u_1), ..) on a plain 10 01 wall. - P is Lt.

Derivation. Every piece is a composition of the windows of §2. - Phases 1–2 and the two right ends are those of §3.1 and §3.2. They read only the a/b block and the 000 next to it. - Lb, Lb1, Rb and Ro each read one digit. - Each turn reads only the cells in its row.

So G holds in every tape context left of X'. The step counts are the chain sums. Two checks confirm it: - Check 11: 400 random K-configs per turn, with random text left of the turn (X') and an optional Lb1 digit, give the exact tape, head, state and step count. - Check 8: G predicts every one of the 22,435 transitions to 10^9 exactly: Lf 22,353, T3S2 8, Jc 2, T2 37, Lt 35. A scratch run of the same code in this stage did the same for all 67,856 transitions to 10^10: Lf 67,757, T3S2 9, Jc 3, T2 44, Lt 43, with 0 unpredicted and 0 mismatches.

The halting example of §5 is predicted by G up to its last K-config (check 10).

3.6 Case analysis of the sweep (check 12)

The left-moving part of the table is a deterministic automaton. It reads one cell, writes, and moves one cell left; R means it turns right into B:

E: 0 -> 1, D    1 -> 1, F          D: 0 -> 1, A    1 -> 0, E          F: 0 -> 1, D    1 -> HALT
A: 0 -> 1, R    1 -> 0, C          C: 0 -> 1, D    1 -> 0, R          (C0 = E0)

Read right to left, (01)^v takes E to D (T4, S3), and (10)^u takes D to C (u = 1, T5) or to E (u ≥ 2, T5 S4c S4). From C, a 0 continues as from E, and a 1 is the bounce (T5b, i.e. Lt). So after the swept suffix the head is in E at the end of X, or in C before a 0. Since X ends neither in 10 nor in a digit, its ending falls in exactly one class:

class X ends in automaton path, right to left outcome
Lf 00 (01)^v E1 F0 (D1 E0)^(v−1) D0 A0 R G (M*)
T2 000 E0 D0 A0 R G (O*) if k ≥ 1
T3S2 1100 E0 D0 A1 C1 R G (M*)
Jc 00 (01)^w 0100 (= 00 (01)^(w+1) 00) E0 D0 A1 C0 (D1 E0)^w D0 A0 R G (M*)
H1 11 E1 F1 halts
H2 111 (01)^v E1 F0 (D1 E0)^(v−1) D1 E1 F1 halts
U1 011 (01)^v .. D1 E1 F0, then D goes on left not analysed
U2 10 (01)^w 0100 E0 D0 A1 C0 (D1 E0)^w D0 A1, then C goes on not analysed (C bounces on a 1, goes on over a 0)
U3 11 (01)^w 0100 E0 D0 A1 C0 (D1 E0)^w D1 E1, then F halts if the next cell is 1, else not analysed
U0 000 with k = 0 T2, then phase 6 meets 100 not analysed

(Lt is decided before X, in the swept suffix. The bounce digit is never part of X.)

Statement (relative to an invariant). For every K-configuration K(L; a, b) with a ≥ 1, exactly one of the following holds: - G applies, and its macro step, a composition of non-halting windows, ends in a K-configuration with a' = a+1 or a' = b+3, both ≥ 1; - the macro step halts (H1, H2); - X is in U0–U3.

So the run never halts if every reachable K-configuration is in one of the covered classes (Lf, T2 with k ≥ 1, T3S2, Jc, or Lt). That is the open §5.

Check 12 confirms three things: - the automaton against the table; - the partition on all 21,852 texts X of length ≤ 14 that end neither in 10 nor in a digit (H1 8,191, H2 1,359, Jc 694, Lf 2,744, T2 4,098, T3S2 2,047, U1 1,365, U2 677, U3 677); - the behaviour on 4,300 K-configs built from them: G is exact on Lf/T2/T3S2/Jc/Lt, and H1/H2 halt inside the macro step.

In token terms, H1 is the review's "E meets an X token". H2, U1 and U3 contain its "D meets an X, then F" step. F halts when it then reads a 1: always in H2, and in U3 when the next cell is 1. In the run to 10^10, no K-configuration is in H or U (check 8, and the 10^10 scratch run).

4. Initial segment (check 7)

0^inf A> 0^inf --142--> K((3,1,1); 2, 1) --O, 141--> K((0,0,3),(1,1,2); 4, 1)        (step 283)
               --P, 145--> K(1001000 (2,1,1)(2,1,4); 4, 1)                            (step 428)
               --O* (T2), 181--> K((1,1,2),(0,0,2),(4,1,4); 4, 1)                     (step 609)

5. Invariant: OPEN

What a proof still needs (sharper after §3.5–§3.6). A family F of K-configurations such that: 1. F contains the step-609 configuration (or a later one); 2. no member of F has a = 0 or a left text in H1, H2 or U0–U3; 3. G maps F into F.

Then, by induction over macro steps and §3.6, the machine never halts.

Why this is hard: - Shape alone fails (check 10). K((1,0,2); 2, 1) has a plain wall, a ≥ 1 and b odd, and it halts at step 2535. G predicts all 13 of its macro steps. Its last K-config (step 2384) is 1001 1101 0101 0010 1010 1 + (10)^19 000 (10)^13. Its swept suffix ends at X = 10011, which is H1: an all-ones sweep passes the u = 4 digit and E reads 11. In the box m ≤ 2, u, v ∈ 1..3, beta ∈ {0,1}, a, b ∈ 0..3, 807 of 5,472 canonical K-configs halt within 2·10^6 steps. So F has to carry quantitative constraints, as the parent's parities and 2^j bounds did. - X tokens are present in the left text. 5,259 of 22,436 K-configs to 10^9 have an X token in their left text, always with z or o to its right and never an a-run (review count). F must show that no sweep ever reaches one of them in a hazardous state: in E (H1), or in D followed by a 1 (H2, U3). - The parent's INV does not survive. The parent's class-A overflow (top (1,1,v)) is always a P in the twin. P and T2-turns realign the left text, so the family must allow left text at both parities, together with junctions (u,0,0), (0,0,0) and walls 10 (01)^v. - The left text is a hierarchical counter. These leads come from notes.md and from the R4 observation; check_proof.py does not check them: - The left edge barely moves (−69 at 10^9, −81 at 10^10). - The 6-token left prefix takes 113 shapes to 10^10, each reused in long runs with counts near 2^k or 2^k − 1. - R4 1RB0RE_1LC0RD_1LD0LD_1RA0LC_1RA1RF_1RA--- is this table mirrored and renamed. Its observation shows nested "fossil-K" walls whose fuel drops by exactly 1 per level-1 overflow, and walls that dissolve and re-form when the fuel runs out. In head-parity tokens (§1.3), a bit-0 digit (u,0,v) reads o^(u−1) z z a^(v−1), and the K block (10)^a 000 (10)^b reads o^(a−1) z z a^b. So a K block has the token shape of a digit (a,0,b+1). The deep digits look like frozen K blocks of a slower counter, and the T2/T3S2/Jc turns look like the places where a lower level hands a carry to a higher one.

Which turns the run uses, to 10^10: Lf 67,757, Lt 43, T2 44, T3S2 9, Jc 3. Lf is the ordinary carry into a bit-0 digit. The other 99 events are the turns at a junction, a bounce point or the blank, and these are where the invariant has to control the left text.

Suggested route (unchanged in spirit, now with exact rules): 1. Describe a configuration as a list of levels. Each level is a parent-style digit counter, delimited by a junction ((u,0,0), (0,0,0), 000) or by a bounce point (left cell 1 before a u = 1 digit). 2. For one level, lift the parent's F0–F3 arithmetic to G: Lf is the carry; Lt, T2, T3S2 and Jc are the level's overflows. 3. Find the inter-level invariant: what a level's overflow writes into the level above, and why that never produces an H or U ending. A solution here carries over to R4 by mirroring, as #33 did for #11.

Not assessed as a cryptid: no pseudo-random arithmetic has been seen, and the counts are powers of 2. Budget for this stage is used.

6. Halting unreachable, relative to the rules

About the coverage check (check 9). The window set contains 1–2-step windows (T11 = B0, S1–S4, S4c, T4, T7, T10). So a full greedy cover mostly says "did not halt", plus a few local bans: A0 is always followed by B1, and C0 D0 is never followed by A1. The review's own DP over the 23 windows also covers 1,024 of 1,342 random 150-step non-halting traces from random tapes. Check 9 shows only that the observed run uses no other local patterns. It is not evidence that unanalysed events are rule-like or safe, and not evidence for non-halting. The earlier sentence "any run that decomposes into these windows does not halt" was true but trivial, because F1 is in no window. The "other" events are now covered by the closed forms of §3.5, not by check 9.

7. Lemma plan: reuse of the parent's .v

The parent's .v is machines/1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD---/1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD---.v, 694 lines. - Verbatim (machine part): rot01, lshift, S1_1–S6_1, S1–S6, S5, T1, T2, T4, T6–T11, T13, T14, p01, p10, rot10, fin, Lf, Rb, Ro, chunkC, dg, dl, app_ds, app_ds_app, map0, rw, RbS, ro_out, RoS, Oz, Oout, Ozeq. T9 keeps its statement. Its proof only simulates 13 steps, so it should re-run unchanged on the twin's trace (§2). - Changed statement, same proof idea: - T3, T5, T12 with <{{C}} exits, plus S4c_1 : l <* [0;1] <{{C}} r -->* l <{{E}} [0;1] *> r (es). - Lb for u ≥ 2: [0;1]^^(S (S u)), proof follow T4. follow S3. follow T5. follow S4c_1. follow S4. - map1 becomes map2 := d1 (S (S u)) (S v), and LbS likewise. - chunkA needs [0;1]^^(S a). - chunkO puts S4c_1 before its first S4. - K takes a left side: K' l ds a b := app_ds l ds <* [0;1]^^a <* [0;0;0] <* [0;1]^^b {{B}}> 0inf, with K = K' L0. - M_spec, Mdrop_spec: the same proofs over K' l, since l is never read. - O_spec over map2. It becomes a corollary of G_T2 below. - New: - T5b : l <* [0;1;1] <{{D}} r -->* l <* [0;1;0] {{B}}> r (es; lists nearest cell first). - T3j : l <* [0;0;1;0] <{{E}} r -->* l <{{D}} [1;1;0;1] *> r (es), and the C-entry copies T2c, T3c, T3jc (same scripts: C0 = E0). - Lb1 (T4, S3, T5; exits C before a 0). - Lt v : l <* [1] <* [0;1] <* [1;0]^^(S v) <{{E}} r -->* l <* [1;0] <* [0;1]^^v <* [0;0;0] {{B}}> r (follow T4, S3, T5b, S6, T10). - Turns TT3S2 (T3, S2) and TJc v (T3j, S3, T6, S2, S2). - G_M (one lemma per C-exit turn: Lf, T3S2, Jc) and G_T2, G_Lt (= P_spec), each as phase12; LbS; [Lb1]; turn; RbS/RoS; tail. The O-type tails reuse chunkO and Ozeq (minus its top digit for Lt). - The class split of §3.6 as a lemma on the left list. It covers the G cases only; H and U are what the invariant must exclude. - init : c0 -->* K' ... by solve_init (609 steps, or as far as the family of §5 needs). - Abstract part: none reusable until §5 is solved. The parent's Rof, INV, F0–F3 lemmas are a template for one level only.

8. Evidence (from check_proof.py)

check_proof.py is self-contained: a Python simulator, plus two embedded C helpers (a K-config dumper and a batch halting checker) compiled with gcc into a temp dir. Run 2026-10-10 with the default seed and with --seed 2026 --n 1000 --quick (T2 = 10^8). Both print SUMMARY PASS 12/12 (times in the Review log). Results:

# check result
1 table: halting only F1, F entered only by E1, E only by D1 pass
2 token machine (§1.3): 28 entries against the cell machine 28/28
3 24 atomic windows (§2), exact finite runs; F entered only in T4/T9/T13, reading 0 24/24
4 Lt, v = 1..40, plus its chain step sum 80/80
5 M, O, P on random K-configs (arbitrary left text for M and P): exact tape, head, state 400/400 each (default seed)
6 P chain link by link (§3.3) 555/555
7 initial segment to step 609 (§4); 428→609 is O* with turn T2 pass
8 census to 10^9: M 22,349 / P 35 / O 6 / other 45, 0 mismatches; G: all 22,435 exact (Lf 22,353, T3S2 8, Jc 2, T2 37, Lt 35) pass
9 coverage by 23 windows (T3j left out): all transitions before 10^7 (1,810), all non-M to 10^9. Weak evidence only (§6) 0 uncovered steps
10 K((1,0,2);2,1) halts at step 2535; G predicts its 13 macro steps, last K-config (2384) in H1; box: 807 of 5,472 halt within 2·10^6 pass
11 G on random K-configs, per turn, random unread text left of the turn, optional Lb1 digit (§3.5) 400/400 per turn (default seed)
12 sweep automaton = table; partition of all 21,852 X of length ≤ 14 into the §3.6 classes; G exact / H halts on 4,300 K-configs pass

Gaps: §5 (the invariant). Everything in §1–§4 and §6 is derived from finite window runs or checked exactly. §3.5–§3.6 now give closed forms for every transition the run makes, with explicit domains.

Review log

Skeptic review, 2026-10-10. Verdict: not sound, with 1 fatal, 1 major and 3 minor gaps. The reviewer independently re-checked the finished parts with their own code: the 28 token entries; the 23 windows with exact traces; Lt for v = 1..30; M/O/P on 3,000 random configs; the K-configs at 142, 283, 428 and 609; their own C dumper and classifier to 10^9 (M 22,349 / P 35 / O 6 / other 45, 0 mismatches, no halt); the halt of K((1,0,2);2,1) at 2535; and the 807/5,472 box. All held.

# where gap resolution
1 (fatal) §5, so the whole non-halting claim No family closed under the macro step and no invariant, so nothing proves non-halting. The family must say what the left text looks like next to X tokens, so that no sweep reaches E-on-X, or F-on-o/X after D-on-X. Not fixed; narrowed. §3.5 and §3.6 reduce non-halting to one statement: every reachable K-configuration has its left text in a covered class (Lf, T2 with k ≥ 1, T3S2, Jc, Lt), i.e. never in H1, H2 or U0–U3. The review's E-on-X hazard is H1. D-on-X-then-F is H2, U1 and U3. The review's halting example ends in H1 (check 10). No family with that property was found in this stage. §5 lists what it must contain and a route. Status stays OPEN, stage STUCK.
2 (major) §3.4 45 transitions to 10^9 had no closed form, so the case analysis was incomplete. Fixed. All 45 are single applications of the general rule G (§3.5), whose domain is an explicit ending of the left text: turn T2 31, T3S2 8, Jc 2, Lf 4 (§3.4 table). G is derived from the §2 windows (one new window, T3j; one new composite, Lb1). It is checked per turn on random configs with random unread text (check 11), and on every transition of the run (check 8: 22,435 of 22,435 to 10^9; scratch run: 67,856 of 67,856 to 10^10). §3.6 adds the complete case analysis the review asked for. Every covered domain excludes the hazard entries, which are exactly H1/H2 (and the F step inside U1/U3).
3 (minor) §6, §3.4 The coverage evidence (check 9) is weak, and "any run that decomposes into these windows does not halt" is trivial. Fixed. §6 is reworded along the review's lines, and check 9's output says it is weak evidence. §3.4 no longer cites coverage as evidence.
4 (minor) §3.3 "Everything left of the bounce point moves one cell to the left" is wrong in absolute coordinates. Fixed with the review's wording. L[:-1] stays in place; the leftmost 1 is at cell −12 at steps 283 and 428, and the text grows from 30 to 37 cells. What flips is the parity relative to the head and digits.
5 (minor) §3.1, §3.2, §2 The twin's M and O chains were only stated as a delta, and T9 was listed as verbatim though its trace changes. Fixed. §3.1 writes M's phase 2 (T1 S4 T3 S4c S4^(a−1) Lb Lf). §3.2 writes O's phase 5 (T12 → S4c) and the phase-2 change. §2 gives T9's twin trace (C0 for E0), and §3.5 splits T9 into Lb1, T2c and Ro. §7's chunkA/chunkO/T9 items point to these.

Validations re-run after the revision (2026-10-10): check_proof.py default seed SUMMARY PASS 12/12 (79 s); --seed 2026 --n 1000 --quick SUMMARY PASS 12/12 (52 s). Scratch: G on the run to 10^10 (67,856 transitions) with 0 unpredicted and 0 mismatches.