/machines/1RB---_0LC1RF_1LE0RD_0RB1RC_1RD0LE_0RC1RA/work/submission-proof.pre-clean.md · raw

1RB---_0LC1RF_1LE0RD_0RB1RC_1RD0LE_0RC1RA: never halts (delta proof from kill #4)

Submission copy of the working proof.md, made 2026-10-10 after the kill. The mathematics is unchanged. Only these parts were updated: the title, the header (list and sheet lines, parent pointer, evidence, status, AI line), the §5 heading and its closing paragraphs, which now say how the plan was carried out, one file mention in §6, and §7. This is a delta proof: it cites the parent's informal proof as P§n. The parent's proof is in this folder as parent-proof.md, a verbatim copy of kill #4's submission proof.md with the same section numbers. The scripts it cites (check_proof.py, check_proof.out, check_proof_k15.out, and the parent's check_proof.py) live in the working directory and are not in this folder.

0. The map

twin state 0 1 = σ(parent state) parent 0 parent 1
A 1RB --- σ(F) 1RC ---
B 0LC 1RF σ(C) 0LD 1RE
C 1LE 0RD σ(D) 1LA 0RB
D 0RB 1RC σ(B) 0RC 1RD
E 1RD 0LE σ(A) 1RB 0LA
F 0RC 1RA σ(E) 0RD 1RF

The twin's row σ(s) is the parent's row s with every target state t replaced by σ(t); symbols and directions are unchanged. For example, parent C1 = 1RE becomes 1Rσ(E) = 1RF, which is twin B1. check_proof.py §S searches all 720 renamings, each with and without mirroring: σ is the only map that works.

Lemma R (relabelling). For a configuration c, let σc be c with its head state renamed by σ; the tape and the head position stay the same. Then c → c′ in the parent if and only if σc → σc′ in the twin, and c is halted exactly when σc is. So every parent run c →ⁿ c′ gives a twin run σc →ⁿ σc′ of the same length, and the converse also holds.

Start. The twin's c0 is 0^inf A> 0^inf = σ(0^inf F> 0^inf). - From F, the parent writes F0 = 1RC and is at 0^inf 1 C> 0^inf after one step. - From its own start A it does A0 = 1RB, B0 = 0RC and is at 0^inf 1 0 C> 0^inf after two steps.

These are different tapes, so the twin's run is the parent's machine on a different orbit, not the parent's run. §L checks the twin from blank against the relabelled parent from 0^inf F> 0^inf in lockstep for 2·10⁶ steps: identical at every step.

Halting cell. The twin's only undefined cell is A1 = σ(F1). By Lemma R, P§4's "Why F1 is never reached" becomes this: - The twin enters A only by F1 = 1RA (= σ of the parent's E1 = 1RF), inside FR3, FR4, FE1 and FE3. - Each time, A then reads a 0.

1. What carries over unchanged

parent item twin reason
P§1 words and families: C_k(n), A/B blocks, P(k,n,X,z), Q(k,n,x,y,z) the same words; the right-edge head state is B = σ(C), and the moving head is <E 001 / 001 F> (σ of <A 001 / 001 E>) Lemma R
P§3.1, the 21 shift rules identical, with the head states renamed; same step counts Lemma R; re-executed on the twin's own table: §A, exact
P§3.2 repeated rules (AL^a … D0R^t, CTR, OV, QC) and P§3.3 macro rules R1, R2, R3, R4, R5, R5o (R4o as a remark) identical, same step formulas and domains Lemma R; §A (ranges), §M (40 random instances per rule, simulated on the twin's table)
P§4 cycle states S(k,Y,Z), the cycle lemma with hypotheses (a)–(d), the hexagon R_N, (i)/(ii) and the parity remark (not a cryptid) identical the statements and proofs read only the rules and (k,Y,Z), never the start
P§4 progress (every macro rule contains ENDL) identical Lemma R
P§5 initial segment changed: §2 different start

The rules in busycoq comment style, for the twin:

1RB---_0LC1RF_1LE0RD_0RB1RC_1RD0LE_0RC1RA     (= sigma of 1RB0LA_0RC1RD_0LD1RE_1LA0RB_0RD1RF_1RC---, sigma = EDBCFA)

C_k(n): n in k bits MSB first, 1 -> 1010, 0 -> 0010;   A = 00111, B = 10111;  moving head <E 001 / 001 F>
P(k,n,X,z)   := 0^inf C_k(n) A^X B^z 00 B> 0^inf
Q(k,n,x,y,z) := 0^inf C_k(n) A^x 111 A^y B^z 00 B> 0^inf                    (x >= 1)

R1  P(k,n,X,z)      --> P(k,n+1,X,z+1)                     n+1 <= 2^k-1
R2  P(k,2^k-1,X,z)  --> Q(k+1,2^k+1,1,X-2,z+1)             X >= 2
R3  Q(k,n,x,y+2,z)  --> Q(k,n+3,x+2,y,z+1)                 n+3 <= 2^k-1
R4  Q(k,n,x,0,z)    --> P(k,n+z+2,x+z+1,0)                 n+z+2  <= 2^k-1
R5  Q(k,n,x,1,z)    --> P(k,n+2z+7,x+z+4,0)                n+2z+7 <= 2^k-1
R5o Q(k,n,x,1,z)    --> Q(k+1,2^k+1+3m,1+2m,x+z+2-2m,0)    m := n+2z+7-2^k >= 0,  x+z+2-2m >= 1,  3m <= 2^k-2
steps: R1 32X+32z+16t(n)+47,  R2 32X+32z+16k+61,  R3 96x+32y+32z+16(t(n)+t(n+1)+t(n+2))+197

cycle (N = 2^k):  S(k,Y,Z) := Q(k+1, N+1+3m, 1+2m, Y-2m, Z+m),  m = max(0,-Z)
  S(k,2j,Z)   -->+ S(k+1, 3j+Z,   N-3-4j-Z)
  S(k,2j+1,Z) -->+ S(k+1, 3j+3+Z, N-8-5j-2Z)
invariant (N >= 64):  8Y >= N, 8Y <= 3N, 3Z <= N, 8Z >= -N, 4Y+2Z >= N, 20Y+16Z <= 9N
start: c0 -->(16590) S(6,14,4) = Q(7,65,1,14,4)        [parent: c0 -->(17215) S(6,16,0)]

2. What changes: the initial segment (replaces P§5)

Direct simulation of the twin from the blank tape (§I). A canonical configuration is a right-edge visit in state B that parses as P or Q.

twin step twin configuration how it is reached parent step parent configuration
22 … 399 P(1,1,0,0), P(2,2,0,0), P(2,3,0,1), P(3,5,1,0), P(3,7,1,2) simulation; P(3,7,1,2) has X = 1, so R2 does not apply 110 P(2,3,1,0)
1,711 Q(5,20,3,1,0) simulation (exact) 1,507 Q(5,17,1,2,2)
3,047 P(5,27,7,0) R5 2,826 P(5,25,7,0) (R3, R4)
4,371 P(5,31,7,4) R1^4 4,996 P(5,31,7,6)
4,864 Q(6,33,1,5,5) = S(5,5,5) R2 5,553 Q(6,33,1,5,7) = S(5,5,7)
6,186 Q(6,39,5,1,7) R3^2 7,003 Q(6,39,5,1,9)
14,036 P(6,60,16,0) R5 (no overflow: 39+14+7 = 60 ≤ 63) — (parent: R5o with m = 0)
15,825 P(6,63,16,3) R1^3 —
16,590 S(6,14,4) = Q(7,65,1,14,4) R2 17,215 S(6,16,0) = Q(7,65,1,16,0)

The step numbers in the "how" column are both direct-simulation values and the parent's runner step sums from 1,711 (they agree exactly, §I). The argument needs only the first and last rows: the exact 16,590-step run and its end configuration.

From step 1,711 on, every canonical configuration of the twin's run is the one the rules predict, at the predicted step: 857 of 857 to 3·10⁷ (§C).

The base, clause by clause. In the parent's Rocq coordinates the base is CfgF 5 0 14 4 = Qc 7 (3·0 + (2^6+1)) (1+2·0) 14 4. Inv 5 0 14 4 holds:

Inv clause value
64 ≤ 2^6 64 ≤ 64
2^6 ≤ 8(y+2i) 64 ≤ 112
8(y+2i) ≤ 3·2^6 112 ≤ 192
3z ≤ 2^6 + 3i 12 ≤ 64
8i ≤ 8z + 2^6 0 ≤ 96
2^6 ≤ 4y + 6i + 2z 64 ≤ 64 (tight)
20y + 24i + 16z ≤ 9·2^6 344 ≤ 576

In proof.md's coordinates (N = 64, Y = 14, Z = 4), every facet of the hexagon holds, and 4Y+2Z ≥ N is tight (64 = 64). The parent's base S(6,16,0) is tight on the same facet. The cycle-lemma hypotheses also hold there: - (a) Y+2Z = 22 ≥ 1; - (b) 3⌊Y/2⌋ = 21 ≤ 62; - Y = 14 is even, so F(14,4) = (25, 29). Then (c) holds: 25 ≥ 0, 25+58 ≥ 1 and 36 ≤ 126; - (d) Z′ = 29 ≥ 1.

All of these also follow from P§4 (i), since the base is in R_64. check_proof.py §B checks each clause, and includes two negative controls: Inv 5 0 13 4 and Inv 5 0 14 3 fail.

3. The argument (complete)

Theorem. 1RB---_0LC1RF_1LE0RD_0RB1RC_1RD0LE_0RC1RA does not halt from the blank tape.

  1. Initial segment. The twin runs from c0 to σS(6,14,4) in exactly 16,590 steps without halting. This is a finite exact computation (§I); in Rocq it is one esx.
  2. Base. (Y,Z) = (14,4) is in R_64 (§2).
  3. Transfer. Take P§4's cycle lemma and the invariance of R_N under F_N (proved in P§4 (i)–(ii), with the vertex check in P§7 §5). Together they say: for k ≥ 6 and (Y,Z) ∈ R_N, the parent goes S(k,Y,Z) →⁺ S(k+1,F_N(Y,Z)), and F_N(Y,Z) ∈ R_2N. - Their statements and proofs use only the P§2 rules and arithmetic on (k,Y,Z). - By Lemma R, each parent run S →⁺ S′ is a twin run σS →⁺ σS′ of the same length. - So the same holds for the twin's configurations σS.
  4. Conclusion. By induction from the base, the twin's run is an infinite chain of runs σS(k,·) →⁺ σS(k+1,·), each at least one step long. So it never halts. This is P§4's conclusion paragraph with "the run reaches S(6,16,0)" replaced by "the run reaches S(6,14,4)"; both points are in R_64. A twin run never reads A1, because by Lemma R it is the image of a parent run, which never reads F1 (P§4). ∎

Nothing in the parent's argument depends on its own orbit except P§5. The orbit statistics in P§5 and P§7 §6 (the history rows, the rule tallies) are evidence, not premises.

In the parent's .v this is visible directly: - cycle_step : Inv k i y z -> exists k' i' y' z', CfgF k i y z -->+ CfgF k' i' y' z' /\ Inv k' i' y' z' does not mention the start. - Only init (c0 -->* CfgF 5 0 16 0) and the last goal of nonhalt (Inv 5 0 16 0) do. §5 replaces exactly those two.

4. How the twin's orbit relates to the parent's (explanation, not a premise)

There is no exact coupling here, unlike #25 and #3, where one far exponent is +2 at every step. The two machines just visit different points of the same contracting map. Both stay in the hexagon, and the branch sequences differ:

k twin S(k,Y,Z), step branch parent S(k,Y,Z) branch
6 (14, 4), 16,590 even (16, 0) even
7 (25, 29), 74,884 odd (24, 29) even
8 (68, 2), 252,898 even (65, 48) odd
9 (104, 115), 1,142,673 even (147, −8) odd
10 (271, 186), 4,947,035 odd (214, 155) even
11 (594, −31), 17,498,220 even (476, 438) even
12 (860, 888), 72,729,902 even (1152, 655) even
13 (2178, 1485), 314,863,727 even (2383, 1134) odd
14 (4752, 2348), 1,268,929,120 even (4710, −39) even
15 (9476, 4529), 5,039,089,135 even (7026, 7000) even

5. Formalization delta (done as planned)

Copy the parent's .v (sha256 51e3dea1f666153c9884283725e1d166428c79fc7d13216c101e567b398ee923, 504 lines) and change only the following: 1. The TM string. Change it in TM_from_str, the header and the closing comment block. 2. State names. Rename {{X}} simultaneously by σ: {{A}} → {{E}} (37 occurrences), {{C}} → {{B}} (6), {{E}} → {{F}} (35). The parent names no other state. Every es proof goes through unchanged by Lemma R. For readability, also rename <A, C> and E> in the comments. 3. init. init0 : c0 -->* 0inf <* d1 <* d0^^5 <* d1 <* bA <* <[1;1;1] <* bA^^14 <* bB^^4 <* <[0;0] {{B}}> 0inf, by esx (16,590 steps), and init : c0 -->* CfgF 5 0 14 4, by apply init0. 4. nonhalt. Start index (5,0,14,4)%nat. The final unfold Inv. cbn. lia. closes Inv 5 0 14 4; the tight clause is a <=. 5. Everything else verbatim: the counter, QC, Gad and its lemmas, Conv0/Conv1/Conv1o, Inv, cycle_step. Update the closing comment's start line.

Plan check. A script applied items 1–4 (checking the occurrence counts, and that the parent names only A, C and E), replaced the header comment with a "plan check" note and appended Print Assumptions nonhalt.. - Compiled with Coq 8.20.1 against unmodified busycoq 0940bb9, -native-compiler yes: 6.7 s, exit 0, "Closed under the global context". - Apart from state names, it differs from the parent's .v only in the header comment, the TM string (TM_from_str and the closing comment), init0/init, the start index, two comment lines and the appended Print Assumptions.

Done as planned (2026-10-10). The kill file is the plan-check code with a proper header and the state letters in the closing rule-table comment renamed by σ; a script built it from the parent's .v, asserting every substitution count. The σ-swap counts came out as predicted ({{A}} 37, {{C}} 6, {{E}} 35). Every es shift-rule proof, the gadget induction and cycle_step re-closed verbatim, and the final unfold Inv. cbn. lia. closes the tight facet. The file compiled on the first attempt, and check_kill (our checker) passed on the first run. After the σ-swap and outside comments, it differs from the parent's .v in four lines: the TM string, init0, init and the start index. Where each item lives in the .v:

item .v
§1 shift rules and repeated rules the 21 shift lemmas ENDL … FE4 (each es) plus D0R' (D0R with 01 carried along), their repeated forms ALs, BLs, ARs, BRs, D1Ls, D0R's, the counter ctr with CTR, OV, RT, OVRT, and QC, stated for head states E/F (moving head) and B (right edge)
§1 macro rules R1–R3, R4, R5, R5o R1, R1s, R2, R3, Pfin; one induction over Gad (ConvNo, PostOV, ConvOV) gives Conv0 (R4), Conv1 (R5) and Conv1o (R5o); all the parent's text, unchanged
§2 base S(6,14,4) at step 16,590 init0 (one esx) and init : c0 -->* CfgF 5 0 14 4
§3 steps 2–4 Inv, cycle_step (the parent's text, unchanged) and nonhalt (multistep_nonhalt + progress_nonhalt_cond from index (5,0,14,4))

Lemma R is not a premise of the formal proof: every rule is re-proved on the twin's own table by es, and Lemma R explains why those proofs re-close. So the kill rests on the .v alone; the prose here and in the parent's §3–§4 is the explanation. The proof is direct on the holdout string; Eqv_v2.v TM7 is not used.

6. Evidence (check_proof.py, 7 s, ALL CHECKS PASSED; output in check_proof.out)

The script loads the parent's check_proof.py read-only, for its abstract model: the rule words and step counts, the derivation runner, the families, S/F and the hexagon. Everything that depends on the machine or the start is run on the twin's own table.

§ kind what
S exact EDBCFA is the unique renaming (720 × {plain, mirror}); the twin's start A = σ(F); the halting cells are A1 = σ(F1). Eqv_v2 TM7's tm is #4 renamed by BCDAEF (started in #4's D), and its mirror is the 1590-file member.
L range Lockstep, 2·10⁶ steps: the twin from blank equals the relabelled parent from 0^inf F> 0^inf at every step.
A exact The 21 shift rules, renamed, executed on the twin's table: every step count as claimed, A1 never read, all 11 defined transitions used. AL/BL/AR/BR^a for a ≤ 12; CTR for all 502 (k,n) with k ≤ 9; OV for k ≤ 9.
M sample R1, R2, R3, R4, R5, R4o, R5o: 40 random instances each (k ≤ 10, block counts up to 200 or 2^(k−1)). In each, the parent's runner predicts the result and step count, and direct simulation of the twin from the renamed start agrees.
I exact Blank → σQ(7,65,1,14,4) at exactly step 16,590. Also blank → Q(5,20,3,1,0) at 1,711, then R5, R1^4, R2, R3^2, R5, R1^3, R2 to the base with runner step sum 14,879 = 16,590 − 1,711.
C range Every canonical right-edge visit of the twin from step 1,711 to 3·10⁷, against the rule runner started at Q(5,20,3,1,0): 857 of 857 identical, in configuration and step. The other 12 right-edge B visits are the start and mid-conversion edge touches.
B exact Inv 5 0 14 4 (the parent's Rocq predicate, transcribed); the base is in N·R with 4Y+2Z ≥ N tight; (a)–(d) hold; negative controls fail as they should.
H exact The parent's own section 5 (exact rational hexagon vertex check, min slack 3/128, max 2u+v = 27/32), re-run unchanged.
O range The twin's orbit from the base to S(14,4752,2348) at step 1,268,929,120. The runner's predicted cycle states (8/8) and every phase-boundary configuration (38) are hit by chained direct simulation of the twin at the exact predicted steps; all points are in R; R4o is never used.

python3 -B check_proof.py --kmax 15 extends §O one level, to S(15,9476,4529) at step 5,039,089,135: 9/9 cycle states and 43 boundaries, ALL CHECKS PASSED in 22 s (check_proof_k15.out).

7. Checkpoint B notes

None on file when this was packaged (2026-10-10).