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

1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE---: never halts (delta proof from W4-3)

This machine is W4-3, 1RB0RF_1RC0RB_1LD0RA_1LE0LD_1RB0LC_1LA--- (the parent), with its states renamed. It starts in the parent's state B instead of A. So it runs the parent's transition table, only from a different start.

The parent's proof is an induction over record exits. Its invariant C_r(e) fixes the left word, a window of the chain and the right region exactly. The deep part of the chain is free, apart from residues and minimums.

This start reaches a record exit in C_r5(2) after 2,629,088,387,088 steps. From there the parent's induction runs unchanged. The two runs differ in one deep chain gap, 4 cells longer here, and nothing in the parent's argument reads that gap's value.

1. The renaming

Write σ for the map from the parent's states to this machine's states, and φ for its inverse:

sigma:             A -> E,  B -> A,  C -> B,  D -> C,  E -> D,  F -> F
phi = sigma^-1:    A -> B,  B -> C,  C -> D,  D -> E,  E -> A,  F -> F

Row σ(q) of this table is the parent's row q, with every target state t replaced by σ(t). Symbols and directions are unchanged, so there is no mirror.

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

For example, the parent's C1 = 0RA becomes 0Rσ(A) = 0RE, which is this machine's B1. Among all 720 renamings, with and without the mirror, σ is the only map from the parent's table to this one.

Lemma R (relabelling). For a configuration c of the parent's table, let σc be c with its head state renamed by σ; the tape and the head cell stay the same. Then c → c′ in the parent's table exactly when σc → σc′ here. And c is halted exactly when σc is, since F1 is the only undefined cell of both tables and σ fixes F.

Start. This machine starts from 0^inf A> 0^inf, which is σ of 0^inf B> 0^inf. So its run is σ of the parent's table run from state B, step for step.

Halting cell. Here only E1 = 0RF enters F, and the machine halts only when F then reads 1. E1 is σ of the parent's A1 = 0RF, which occurs only in the wiggle of P§2.2. So a halt here is σ of the parent's halt: a rightward d = 1 event at a defect e with e + 1 also a defect.

From here on, configurations are written in the parent's state names. In particular the head state at a record exit is the parent's B, which is this machine's A.

2. The opening run

2.1 Records

The parent numbers its records by the moves of λ, the leftmost cell that has held 1 so far (P§3.1). A left record is a move of λ by 3 cells in 3 consecutive steps.

On this start, λ moves by 1 or 2 cells only during the start-up, at steps

1, 4-5, 18-19, 930-931, 7984, 17719-17720

Every other move is by 3 cells in 3 consecutive steps. The first sixteen such moves begin at steps

34, 75, 1042, 1265, 29525, 91614, 443229, 648082,
1213303, 4665524, 6953169, 12290878, 43671313, 65535690, 114514475, 398094148

So record n is the n-th 3-cell move, exactly as in the parent (whose small moves are at steps 1, 6-7, 838-839, 7820 and 17531-17532). The third start of this table, line 588, has one extra 3-cell move in its start-up; this one has none.

2.2 Record exits

P§3.3 defines the record exit of record n operationally. It is the first configuration after left record n in which

where h is the head cell, lo = λ - 1, and K = K0(r) + 2e for the class r = (n - 11) mod 6 and the epoch e = (n - 16) div 6.

On this start the record exits 16 to 28 are at these steps. Cells are numbered from the start cell 0.

n class K step here step in the parent head cell here
16 r5 3 398,095,384 398,090,000 1,156
17 r0 3 597,243,065 597,235,689 185
18 r1 4 1,041,324,370 1,041,314,994 12,172
19 r2 3 3,599,637,037 3,599,625,653 111
20 r3 4 5,399,938,718 5,399,921,502 1,158
21 r4 4 9,400,225,459 9,400,202,219 187
22 r5 5 32,438,633,112 32,438,603,840 12,174
23 r0 5 48,672,682,441 48,672,647,129 3,895
24 r1 6 84,694,260,570 84,694,207,762 111,894
25 r2 5 292,080,203,157 292,080,132,229 189
26 r3 6 438,267,588,230 438,267,499,174 12,176
27 r4 6 762,523,755,619 762,523,648,427 3,897
28 r5 7 2,629,088,387,088 2,629,088,227,408 111,896

None of these runs halts. The proof needs only the last line: the run from the blank tape to record exit 28 is one finite computation.

2.3 Record exit 28

At step 2,629,088,387,088 the configuration is:

lo = -94,    A = lo + 34 = -60,    B = 111,897,    hi = 2,961,840
head on cell B - 1 = 111,896, in state B (this machine's A), reading 1, moving right

The left word is the ten defects

A - 32, -27, -26, -21, -20, -15, -14, -9, -8, -4

The chain has K = 7 blocks in state U0, with these gaps (block 1 has m = 1, the others m = 3):

block inter gap before its digit digit gap separator gaps
1 – 1 –
2 5 1 4, 4
3 5 1 4, 4
4 5 1 4, 4
5 9 17 24, 44
6 37 37 36, 972
7 2737 8277 24912, 74808

Block 1's digit is at A + 2 and its separator at A + 3. The last separator of block 7 is at B - 2 = 111,895.

The right region, read from B, is

B  -224493-  x1  -673559-  x2  -7-  x3  -9841-  x4  -1942040-  x5  -3-  hi

Against the parent's record exit 28 (the example of P§3.4):

3. The invariant holds at record exit 28

Record 28 has class r5 and epoch e = 2, so u = 9^(e-2) = 1 and K = K0(r5) + 2e = 3 + 4 = 7. Take the four parts of C_r5(2) in P§3.3 in turn.

(L) Left word. lo = A - 34, and the defects left of A are exactly the ten of 2.3. Also λ = lo + 1 = -93 is the leftmost cell that has ever held 1, so this lo is the parent's lo.

(C) Chain. The defects in [A, B] are 4K - 2 = 26 defects forming K = 7 blocks in U0, with block 1 = (A+2; A+3) and the last separator at B - 2. Every gap has the residue and at least the smallest value of its role:

digit gaps      1, 1, 1, 1, 17, 37, 8277                      all 1 mod 4, all >= 1
separator gaps  4, 4, 4, 4, 4, 4, 24, 44, 36, 972, 24912, 74808   all 0 mod 4, all >= 4
inter gaps      5, 5, 5, 9, 37, 2737                           all 1 mod 4, all >= 5

Consecutive bases then differ by 2 mod 4, as (C) requires.

(W) Window. J(r5) = 3. The last three chain gaps and the right region are V_r5(1) of P§3.4:

chain window:  8316u - 39,  24948u - 36,  74844u - 36                       = 8277, 24912, 74808
right region:  224532u - 39,  673596u - 37,  7,  (19683u - 1)/2,  1942056u - 16,  3
            =  224493,  673559,  7,  9841,  1942040,  3

(H) Head. The head is on cell B - 1 in state B, the cell holds 1, and state B moves right.

So record exit 28 is in C_r5(2). Its deep chain (blocks 1 to 6 and the inter gap of block 7) differs from the parent's in one gap. (C) asks of the deep chain only residues and minimums, and those hold.

4. The argument

Theorem. 1RB0RA_1LC0RE_1LD0LC_1RA0LB_1RA0RF_1LE--- does not halt from the blank tape.

  1. Opening run. By Lemma R, the run of this machine is σ of the parent's table run from 0^inf B> 0^inf. That run reaches record exit 28 after 2,629,088,387,088 steps without halting (section 2).
  2. Base. Record exit 28 is in C_r5(2) (section 3).
  3. Induction. Lemma S (P§6) is the step:

C_r(e) -->+ C_(r+1)(e) for e >= 2, without halting C_r4(e) -->+ C_r5(e + 1)

Its only hypothesis is the invariant (P§7 for the halting part). The deep chain enters only through the residues and minimums of (C). 4. The deep chain is free. The parent's formal proof states Lemma S this way. Its invariant Inv lists the chain as gap variables, and the deep part of that list is arbitrary (P§10.3). 5. Conclusion. So the parent's table, run from B, passes through infinitely many record exits and never halts. By Lemma R this machine does the same, with its states renamed. ∎

Nothing in the parent's argument after its base case depends on the parent's own orbit. Its base case (P§8) and its twelve concrete steps 16 → 28 are not used here: the configuration at record exit 28 is reached directly.

5. Why the runs agree so closely (explanation, not a premise)

The record exits 16 to 27 of this start are in C_r(e) too, with exactly the parent's start-up windows (the values of the parent's Appendix C). In fact, at every record exit from 12 on (the earliest checked) the two runs differ in only one gap, 4 cells longer here.

At every record the new left digit joins the chain, so the parse moves one defect along. The extra 4 cells stay in one physical gap, whose index in the chain grows by one per record:

Its role cycles digit → separator → separator → inter → digit. The regrouping offsets of P§6.2 change it in the same way in both runs, so the difference stays exactly 4.

Over an epoch K grows by 2, so the chain gains 8 gaps, while the gap moves 6 places. It falls further behind the right end of the chain and stays in the deep part, where only residues and minimums matter. This is an observation (checked at record exits 16 to 28, and to 33 with --full); the induction in section 4 does not need it.

The start-ups differ before that: λ moves at different steps (2.1), and the extra 4 cells first appear somewhere before record exit 12.

6. Formalization delta

The .v in this directory proves Lemma nonhalt : ~ halts tm c0. along these lines. It is the parent's file with the following changes, and nothing else:

  1. Two tables. tm is this machine and tmP is the parent. The library part of the parent's file is copied byte for byte, with tm renamed tmP.

That part holds the simulator and its soundness, the chain and region lemmas, Lemma S, Inv and inv_step. 2. The base case: init28 : B;; tape0 -->* cfg28 for tmP, in 38 native_compute pieces of at most 500,000 simulator steps (18,571,902 in all). cfg28 is the record exit 28 of section 2.3. 3. L28 and nus28 are those of this run. inv28, base28 and the record-exit episode are the parent's text. In the gap variables (each block lists t, s, a, lp as (gap - minimum)/4, nearest block first):

this start: [18701; 6227; 2069; 683] [242; 8; 9; 8] [10; 5; 4; 1] [0; 0; 0; 0]^3 parent: [18701; 6227; 2069; 683] [242; 8; 9; 8] [10; 5; 3; 1] [0; 0; 0; 0]^3

The third block is block 5 of section 2.3, whose digit gap a = 1 + 4 x 4 = 17 against 1 + 4 x 3 = 13. 4. The conjugacy: perm_sib : Perm tm tmP phi by computation, and busycoq's perm_halts (Permute.v), give halts tm c0 -> halts tmP (B;; tape0). Then nonhalt_P : ~ halts tmP (B;; tape0) closes it.

check_proof.py S5 checks that cfg28, L28 and nus28 of the .v are the tape of the independent run of section 2 at record exit 28, and that the rest of the file is the parent's text. Whether it compiles is check_kill's verdict: PASS on sha256 ef701290f44d323062af1f5a08583de0158bdb2ba450fbd0c10ad7217e042296 (status line above).

7. Evidence

nice -n 10 python3 -B check_proof.py (default about 1 min; --full about 4 min). Output in check_proof.out and check_proof_full.out.

The opening run is computed by scripts/rlsim.py, a run-length simulator written for this stage. It is independent of the parent's defect model and of the Coq simulator, and it runs this machine's own table, not the renamed one.

§ what result
S1 line 512 of the 740 list byte-exact and once, parent line 341; holdouts.py contains; sheet row (class, no claim); not in busycoq PASS 4/4
S2 σ the only map (720 × 2), 12/12 cells; start = σ(B); F1 the only undefined cell, F entered only by E1; lockstep with the parent's table from B, 2·10⁶ steps; same tape as it after 10⁹ steps (tools/sim.py); rlsim = tools/sim.py at 7 step counts up to 10⁸ for both machines; rlsim's λ = direct simulation's PASS 7/7
S3 λ moves (start-up and 3-cell moves); record numbering as the parent's; operational record exits 12-28 (12-33 with --full) at the steps and head cells of the parent's defect-model snapshots for this start, for both runs; defect states equal to those snapshots PASS 6/6
S4 V table parsed from the parent's write-up; (L), (C), (H) at record exits 16-28 for both runs (an independent reading of P§3.3); C_r5(2) at 28 with V_r5(1) (C_r(2) with V_r(1) at 28-33 with --full); against the parent: from record exit 12 on one gap differs, by +4, with its index growing by one per record; from 16 on it is a deep chain gap, with the same K, window and right region; block 5's digit gap at 28 (17 vs 13) PASS 7/7 (8/8)
S5 the .v's cfg28 = the rlsim tape at record exit 28 (and the parent's cfg28 = the parent's), L28/nus28 decode, only nus28 block 3 differs; library and base-step text = the parent's with tm → tmP; tm, tmP, init28, phi, perm_sib, nonhalt present; 38 pieces, 18,571,902 simulator steps PASS 6/6
S6 (--full) the parent's own check_proof.py --only S10, including its claims for this start (line 512) PASS