/machines/1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF1LB_---0RA/proof.md · raw

1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF1LB_---0RA (#28): non-halting argument (CONDITIONAL on L9; CRYPTID_CANDIDATE)

0. Picture in one paragraph

The tape is a binary counter W of 3-cell blocks on the left and tm10's unary run (blocks 011, with a 00 marker) on the right. Each round adds 1 to the counter and moves the marker one block left. When the marker reaches the counter, the machine eats. Two eat kinds (EAT1, EAT0z, the phi-eats) shift every counter block one cell right: 1 → f, 0 → 0, f → s. Read from the new phase, the old value is debris: a second number written in the f/0 blocks, with the s blocks as fillers. The next epoch's first increments carry through the debris and turn every s back into f (the flush). The machine is safe as long as every flush ends before the next eat (I3). The flush takes F = 2^(1+D_F) rounds, against an epoch of N rounds. Words that start with a digit 1 flush in time; words that start with f need L9. L9 bounds the weight of the filler blocks that pile up from flush to flush, and that weight is driven by exact carries PC = 2^D + (sparse).

1. The machine, and its conjugacy with #10

      0     1
 A   1RB   0RA
 B   1LC   0LD
 C   1LE   1LD
 D   0LB   0RE
 E   1RF   1LB
 F   ---   0RA

The only undefined transition is F reading 0. Every rule in §2 is an exact run that never executes it.

Conjugacy (scripts/conj10.py, scripts/conj10.json). Let σ map #28's states A, B, C, D, E, F to #10's E, A, B, F, C, D. For all 12 pairs (q, s), δ28(q,s) = (w, d, q') iff δ10(σq, s) = (w, -d, σq'). So #28 run from the blank tape is #10 mirrored, started in #10's state E. Lock-step simulation agrees for 3·10^6 steps.

Merge. #28's orbit and #10's orbit (from state A) differ at first: our epoch lengths are 2, 5, 6, 9, 10, 19, … and #10's are 2, 5, 6, 11, 12, 18, …. By epoch 350,328, our first-eat state is (n, c) = (4,193,605, [3,15,3,0,11,0,0,1]), which is #10's cascade state at its t = 350,272. The epoch map is the same, so from there on the two orbits coincide with an offset of 56 epochs. #10's skeptic run followed that orbit to 10^10 epochs with no unsafe eat; that run lives in #10's directory and is not re-run here.

2. Families and rules

Round start, with b the lowest counter cell: - RS(W,b,n,m) = 0^inf W b <E 11 (011)^n 00 (011)^m 0^inf - NM(W,b,n) = 0^inf W b <E 11 (011)^n 0^inf (no marker; written m = -1)

W is cut into 3-cell blocks from the right. Only four blocks occur: 1 = 100, 0 = 000, f = 010, s = 001.

rule from → to checked
R1 A-sweep (= BECv1 HR1) l A> 011 r → l 010 A> r (5 steps per block) 25/25
R2 marker (= HR2) l A> 011 00 011 r → l <B 00 011 011 r 25/25
R3 B-sweep (= HR3) l 010 <B r → l <B 011 r 25/25
INC0 RS(W,0,n+1,m) → RS(W,1,n,m+1), 8n+16 steps 100/100
CARRY RS(W,1,n+1,m) → RS(inc W,0,n,m+1) 100/100
CARRY_S at an s: X s Y → inc(incC X) f Y0 (recursive) 200/200
BIRTH NM(W,0,n+1) → RS(W,1,n,1), 8n+16 steps 100/100
BIRTHC NM(W,1,n+1) → RS(inc W,0,n,1) (never fires from blank) 100/100
EAT0f RS(W' d f^k 1^j,0,0,m) → RS(W',d,k-1,m+2+j), k ≥ 1, d ∈ {0,1} 100/100
EAT0z RS(W' 0 1^j,0,0,m) → NM(phi W',0,m+2+j) (W = 1^j: W' empty) 200/200
EAT1 RS(W,1,0,m) → NM(phi(inc W),0,m+1) 100/100

Initial segment. The first round start is NM([],0,1), at step 6.

What can go wrong. On words over {1,0,f} the rules are total and stay in the language (L0 below). A round start with no rule is an eat (n = 0) whose word still holds an s. So the machine never halts if (I3): no eat sees an s.

3. Notation for the epoch map

At a phi-eat, U is the s-free word before the shift (inc W for EAT1, W' for EAT0z), V = phi(U), and N is the new n, the epoch length in rounds. For U: - D = number of digit blocks; val(U) = its phase-0 value. - sigma(U) = Σ over the f blocks of 2^(digits right of the block). This is the debris weight. - PC(U) = val(U) + sigma(U); s(U) = sigma(U)/2^D is the normalized debris weight. - S1: U starts with a digit 1. S2: U starts with f. - L = ⌊log2 N⌋.

4. The flush (proved; scripts/flush_check.py, scripts/flush_random.py)

Checks: 19,236/19,236 random abstract U; 256/256 flushes on the real machine; every flush to 10^10 steps.

5. The chain case (proved, given L9; scripts/chain_check.py)

For S2, write e for the leading f-run, Y = val + sigma - e·2^D, c = Y div 2^D and P = Y mod 2^D, so that F = 2^(1+zeros(P)). τ_k = 0 means epoch k ends with EAT1 at its first eat (it is uncut).

State invariant INV(U, N): - N ≥ 2 val(U); - S1 ⟹ L9; - S2 ⟹ the shape f 1 …, c ≤ 2, and either N ≥ 2^(D+1) or (N = 2 val(U) and P ≠ 0).

INV implies F ≤ N. One epoch maps INV to INV, except possibly for L9 at an S1 successor. Checks: exhaustive to 9 blocks (758,058 states), 40,000 random states, and 1,000/1,000 whole epochs on the real machine. Proofs are in notes.md, "Funded stage (2026-10-10, close_chain)".

So (I3) follows from L9 at every S1 phi-eat.

6. Debris-weight lemmas (proved this stage; scripts/l9_check.py)

Let U be S1 at a phi-eat with L9, and put X = PC(U). Let T be the top bit of X, q = popcount(X), and Z0 = T + 1 - q (the zero bits of X). Write W_post for the first s-free round start of the epoch, and U' for the next phi-eat word. Define: - g(X) = Σ_{1-bits i of X} 2^(zeros of X below i); - h(U) = Σ_{f blocks of U at p} 2^(zeros of X below p), where p is the number of digits right of the block.

W1 (debris never grows after the flush). At round starts after the flush, s(W) is unchanged by INC0 and by CARRY without overflow, exactly halved by an overflow, and never raised by an eat. Proof. - Increments change digits only. - An overflow prepends a digit, which leaves sigma alone and doubles 2^D. - EAT0f takes W = W' d f^k 1^j to W', so sigma(W') = (sigma(W) - k 2^j)/2^(j+1) and D(W') = D(W) - j - 1. Hence s(W') = (sigma(W) - k 2^j)/2^(D(W)) ≤ s(W). - EAT0z (W = W' 0 1^j) keeps s. - EAT1 is an increment. ∎

W2 (debris after the flush). sigma(W_post) = g(X) + h(U), and digits(W_post) ∈ {Z0, Z0+1}. Proof. By L3, the f blocks of W_post are the 1-bits of X on U's digit positions, plus U's own f blocks in place, and the digits of W_post are the 0-bits of X. A block's weight in W_post is 2^(number of 0-bits of X below it). The +1 is a counter digit that the flush itself may prepend. ∎

Lemma G (arithmetic). g(X) = Σ_j 2^(i_j - j) ≤ q·2^(T+1-q) ≤ 2^T, where i_0 < … < i_{q-1} are the 1-bits. Since i_j - j ≤ Z0, also g(X) ≤ X. Checked for every X < 2^20.

W3 (successor bound). If U' is S1, then s(U') ≤ sigma(W_post)/2^max(L, Z0+1). Proof. - No eat comes before the first eat, at which the counter holds N ≥ 2^L, so the word there has at least L digits and the same f blocks as W_post. - The pattern's top block, bit T of X, is an f, because X ≥ val ≥ 2^(D-1). So U' is S1 only if some digit sits above it. - Such a digit was prepended, either by the flush (the case digits(W_post) = Z0 + 1) or later. Either way the word has had at least Z0 + 1 digits with the same f blocks. - Then use W1. ∎

W4 (cases). Let U and U' both be S1. Then: - (a) T = D-1 ⟹ s(U') < 1. Here g ≤ 2^(D-1) by Lemma G, h ≤ sigma, and sigma = X - val < 2^D - 2^(D-1), while L ≥ D. - (b) T = D and L ≥ D+1 ⟹ s(U') ≤ (2^D + sigma)/2^(D+1) = 1/2 + s(U)/2. - (c) X = 2^D ⟹ s(U') ≤ 1/2 + s(U)/2 ≤ 3/4. Here Z0 = D, h = sigma and sigma = 2^D - val ≤ 2^(D-1). - (H) T = D, L = D, q ≥ 2: the hard case. W3 only gives s(U') ≤ 2^(-popcount(Y)) + (g(Y) + h(U))/2^D with Y = X - 2^D, and that can exceed 1.

W5. s(U') < 1 implies L9 at U', since PC = val + sigma < 2^D + 2^D.

Reduction. Call an S1 phi-eat good if s < 1. By W4(a)–(c) and W5, a good S1 phi-eat whose epoch is not in case H has a good S1 successor, which satisfies L9. Starting values: s = 0 at the first phi-eat, U = 1. So L9 holds at every S1 phi-eat of the orbit unless an earlier epoch is in case H, or is an S2 epoch with an S1 successor, and leaves s ≥ 1 behind.

Checks (l9_check.py reduce 100000 2810): on 100,000 random S1 states with L9 (up to 31 blocks; N = 2 val, N < 2^(D+1), and N ≥ 2^(D+1)), W1, W2, W3, W4(a)–(c) and W5 have 0 violations. Of the S1 successors of case-H states, 1,836 of 34,699 have s ≥ 1.

7. L9 is open, and cannot be closed by a local invariant

L9 (OPEN). At every phi-eat of the orbit whose word starts with a digit 1, PC(U) < 2^(D+1). By §6, this is equivalent in practice to:

Lemma H (OPEN). On the orbit, every case-H epoch and every S2 epoch whose successor is S1 leaves s < 1.

Case H needs 2^D < val + sigma < 2^(D+1) and N < 2^(D+1). On the orbit, N < 2^(D+1) essentially means N = 2 val, i.e. right after an uncut epoch. W3's bound is then 2^(-popcount(Y)) + …, which is large only when Y = val + sigma - 2^D is sparse. That is an exact-carry coincidence between the counter value and the debris weight. This is the same kind of event as #10's cascades and super-cascades (P = 2^B).

A counter-family that satisfies the invariant (scripts/family10.py, scripts/family10.json). #10's family is σ0(B) = (n, c) = (3·2^(B-2) - 7, [3, 0^(B-6), 10, 0, 2]). Under the conjugacy it is #28's eat state RS(W, n mod 2, 0, n), where W holds n >> 1 and has c_j f blocks just right of its j-th digit. With #28's own rules, for every B = 8..18: - the first phi-eat satisfies all of INV, L9 included (PC/2^D = 1.875), with s ≈ 1.13–1.15; - one epoch later L9 fails (PC/2^D = 2.125), and it fails again at the next phi-eat (PC/2^D = 2.0); - three epochs later the word starts with f but has the wrong shape, and its flush is late (B = 8: F = 256 > N = 194). The next eat sees an s block, and no rule applies.

The phi-eat lengths for B = 8 are N = 186, 191, 192, 194, the same eats #10 reports for its TM.

TM confirmation on #28's table (scripts/tm_family.py 8, scripts/tm_family_B8.json). - Started from NM(phi U0, 0, 186), the real machine matches the abstract rules on all 779 round starts up to that eat. - At round 779 it meets the eat with an s block (W = fs11f100fffffff, b = 1, m = 206). - It then leaves the block alphabet for one round (a 110 block) and recovers. Phi-eats resume at N = 207, 208, 222, 233, … with no halt in 2.8·10^6 steps.

So the rule-level safety condition can fail, and here the machine survives it. That is not usable for a proof, but it means a failure would not by itself be a halt.

Consequence. - No invariant that the family's first state satisfies can prove L9. That includes INV and every strengthening that does not restrict s. - The stronger invariant s < 1 is preserved everywhere except in case H and S2 → S1 (§6), and case H breaks it on random states (1,836 times). - So a proof would have to show that the orbit's exact values never produce the coincidence pattern. #10's funded stage showed that the entry patterns form an infinite family and do not close into a finite list (#10 proof.md §5.8). By ground rule 6, #28 is flagged CRYPTID_CANDIDATE, with the same verdict as #10.

8. Heuristic evidence for non-halting

9. Evidence table

claim check result
rules R1–R3, INC0 … EAT1 validate.py, template_check.py all pass (25/25, 100/100, 200/200)
coverage from blank predict.py on rounds_1e10.tsv 1,008,130/1,008,130 rounds
flush L1–L3 flush_random.py 19,236/19,236 abstract; 256/256 TM
chain C0–C5 given L9 chain_check.py exh/rand/chainrand/tm 0 breaks outside L9; 1,000/1,000 TM epochs
conjugacy with #10 conj10.py 12/12 entries; 3·10^6 steps lock-step
W1–W5, Lemma G l9_check.py reduce/arith 100,000 states, 0 violations; X < 2^20
family σ0(B) breaks L9 from INV family10.py 8 18 6 every B = 8..18
family on the real machine tm_family.py 8 779/779 rounds match; eat with s at N = 194; machine recovers
orbit from blank l9_check.py blank 400000 0 violations; s < 1 at every S1 phi-eat (max 0.875)

10. Rocq plan (cryptid protocol)

Formalize the rule layer only, AntiHydra-style: the round rules of §2 as -->+ lemmas over RS/NM with block lists, CARRY_S as a relation on lists (as BECv7's RIncs), and the epoch map. Non-halting stays conditional on L9 (equivalently Lemma H). Low priority, as for #10.