/machines/1RB1RF_1LC0LE_1RD0LB_1RA0RC_1RE1LB_0RD---/submission/proof.md · raw

1RB1RF_1LC0LE_1RD0LB_1RA0RC_1RE1LB_0RD---: never halts

This machine is a renamed copy of the machine 1RB0LD_1RC0RA_1RD1RF_1LA0LE_1RE1LD_0RB---, whose proof accompanies this one. Swapping two pairs of state names turns one transition table into the other, and every transition matches.

The two machines differ only in where they start. Started on a blank tape, this machine does exactly what the other machine does when that one is started in a different state. So the two runs are different runs of the same macro rules (each rule is an exact run of the machine from one configuration of a fixed shape to the next).

The proof for the other machine therefore applies with one part replaced: the finite warm-up. This machine takes 79,114 steps to reach the configuration where the invariant argument begins. From there on, its run is an endless chain of the same macro rules, each taking at least one step, so it never halts.

Machine, template and status

Notation

Summary

M is M_P with its states renamed by σ = (A C)(B D). M starts in A = σ(C), so M from the blank tape is M_P run from

0^inf C> 0^inf

That is a different orbit of the same macro map.

Everything in P§1–P§3 that is about the macro map carries over unchanged (§1). That covers the family K (now with head state C), the nine rules, the outside cases, the counter lemmas, the invariant INV+(e) and the period theorem.

Only the initial segment and the base E-start change (§2, in place of P§3.7). The base differs from M_P's in one number: the far q is 26, not 24. INV+(e) holds there, so no clause of the invariant changes.

The two orbits are coupled (§4). At every macro step, M's K and M_P's K_P have the same parameters except that M's far block is 2 longer, and both apply the same rule. This explains why nothing else changes, but the proof does not use it.

The .v is the .v for M_P with three changes (§5). Every proof script is unchanged.

0. The map

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

The renaming σ

σ:   A ↦ C,   B ↦ D,   C ↦ A,   D ↦ B,   E ↦ E,   F ↦ F

σ is an involution. M's row σ(s) equals M_P's row s with every target state t replaced by σ(t). Symbols and directions are unchanged.

For example, M_P's A1 = 0LD becomes 0Lσ(D) = 0LB, which is M's C1.

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 M_P      if and only if      σc → σc′ in M
c is halted        exactly when        σc is halted

So every M_P run c →ⁿ c′ gives an M run σc →ⁿ σc′ of the same length, and conversely.

Proof. The transition of M in state σ(s) reading b is M_P's transition in state s reading b, with its target state renamed by σ. F is undefined on 1 in both. ∎

Start

M's c0 is σ of M_P's configuration 0^inf C> 0^inf:

c0  =  0^inf A> 0^inf  =  σ(0^inf C> 0^inf)

M_P's own run starts in A. After two steps (A0 = 1RB, B0 = 1RC) it is at

0^inf 1 1 C> 0^inf

So M's run is M_P run from 0^inf C> 0^inf: M_P's run without the two 1s that its first two steps write. It is not M_P's run.

Halting cell

In M, only A1 enters F, and only D0 enters A. So M halts exactly when it reaches

D> 0 1 1

This is σ of M_P's B> 0 1 1.

1. What carries over unchanged

The family K

Throughout, K(h; P; T) denotes M's family. It uses the pair blocks [p,q,d] and the tails T of P§1:

[p,q,d]    := (10)^p (01)^q s(d),      s(1) = 0001,  s(0) = 0010
K(h; P; T) := 0^inf <C (10)^h 11001 [p_1,q_1,d_1] … [p_L,q_L,d_L] T 0^inf
T in { -,  T1(t) := (10)^t 1,  T2(k) := (101)^2 (01)^k }
V := sum_j d_j 2^(j-1)

P is the list of pairs (p_j, q_j, d_j), and L is its length. V is the counter of P§1, spelled by the digits d_j.

K is σ applied to M_P's family of P§1. That family has head state A, and it is written K_P(h; P; T) here:

K(h; P; T) = σK_P(h; P; T)        (the same words, with head state C)

What carries over

item of the write-up for M_P for M reason
P§1 family K_P(h; P; T) K(h; P; T): the same words, head state C Lemma R
P§2 rules Dec, DecMerge, DecMergeTail, DecMergeEmpty, End, EndLast, Ov, X1, X2 and outside cases (o1)–(o7) identical (block below), with <A read as <C; step counts unchanged Lemma R; also checked on M's own table (§6)
P§2 examples of halting outside cases (o1), (o3), (o6) their σ-images halt after the same 1,480 / 1,554 / 1,684 steps Lemma R
P§3.1 reduction (domain D, chain of rule applications) identical, with K0 replaced by K0′ (§2) uses only the rules
P§3.2 counter lemmas L1–L6 identical statements about the abstract map
P§3.3 cycles, classes, INV+(e) (stated in full in P§3.8.1) and the period theorem identical the statement and the proof read only (h, P, T) and the rules, never the start
P§3.4–3.5 and P§3.8.2–3.8.4 (one cycle pair, preservation) identical same
P§3.7 initial segment and base changed: §2 different start

The rules, for M

The rules below are in busycoq comment style. They use two abbreviations:

Z              := pairs 1..k-1, all with d = 0 and q >= 2
touch (p,q,d)  := (p+1, q-1, 1-d)
1RB1RF_1LC0LE_1RD0LB_1RA0RC_1RE1LB_0RD---       (= sigma of 1RB0LD_1RC0RA_1RD1RF_1LA0LE_1RE1LD_0RB---, sigma = (A C)(B D))

[p,q,d] := (10)^p (01)^q s(d),  s(1) = 0001, s(0) = 0010
K(h; P; T) := 0^inf <C (10)^h 11001 [p_1,q_1,d_1] ... [p_L,q_L,d_L] T 0^inf,   T in { -, (10)^t 1, (101)^2 (01)^k }

Dec            K(h; Z ++ (p,q+2,1) :: R; T)             -->+ K(h+4; touch Z ++ (p+1,q+1,0) :: R; T)
DecMerge       K(h; Z ++ (p,1,1) :: (p',q',d') :: R; T)  -->+ K(h+4; touch Z ++ (p+p'+3,q',d') :: R; T)
DecMergeTail   K(h; Z ++ [(p,1,1)]; (10)^t 1)           -->+ K(h+4; touch Z; (10)^(p+t+3) 1)
DecMergeEmpty  K(h; Z ++ [(p,1,1)]; -)                  -->+ K(h+4; touch Z; (10)^(p+2) 1)
End            K(h; Z ++ [(p,q+2,0)]; -)                -->+ K(h+4; touch Z ++ [(p+1,q+1,0)]; (10)^1 1)
EndLast        K(h; Z ++ [(p,1,0)]; -)                  -->+ K(h+4; touch Z; (10)^(p+4) 1)
X2             K(h; Z ++ [(p,q+2,0)]; (101)^2 (01)^(k+1)) -->+ K(h+4; touch Z ++ [(p+1,q+1,0); (3,k+1,1)]; -)
Ov             K(h; (p1+2,q1,0) :: Y; (10)^t 1)         -->+ K(2; (h+5,p1+1,0) :: ovp q1 Y t; -)
X1             K(h; (p1+2,q1,0) :: Y ++ [(pa+1,1,0); (pb,1,0)]; -)
                                                        -->+ K(2; (h+5,p1+1,0) :: ovpX q1 Y (pa+1); (101)^2 (01)^(pb+3))
               (Ov, X1: Y all d = 0, all p,q >= 1, q1 >= 1)
               ovp q [] t = [(q,t+1,1)],    ovp q ((p',q',_) :: Y) t = (q,p',1) :: ovp q' Y t
               ovpX q [] pa = [(q,pa,0)],   ovpX q ((p',q',_) :: Y) pa = (q,p',1) :: ovpX q' Y pa

start: c0 -->(1,088) K(2; (11,13,0); -) -->(78,026) K(2; (95,68,0),(34,33,1),(10,15,1),(1,26,1); -)

2. What changes: initial segment and base (in place of P§3.7)

The following is direct simulation of M from the blank tape (§6).

A canonical configuration is state C on a new leftmost cell, with the tape to its right parsing as a K.

Initial segment

M step M's K M_P step M_P's K_P
20 K(2; −; −), L = 0 8 K_P(0; −; −)
359 K(2; (9,1,0); −), in D: EndLast predicts the next one exactly 275 K_P(2; (7,1,0); −)
551 K(6; −; T1(13)), L = 0, outside D 451 K_P(6; −; T1(11))
1,088 K0′ = K(2; (11,13,0); −) 956 K0 = K_P(2; (11,11,0); −)

As for M_P, the run passes through L = 0 before K0′, so the argument starts at K0′.

From K0′ on, every canonical transition is the one the rules predict: 1,534 of 1,534 up to step 3·10⁷.

Base

The base is the E-start right after re-pairing 6:

B' = K(2; (95,68,0), (34,33,1), (10,15,1), (1,26,1); -)      at step 79,114
B  = K_P(2; (95,68,0), (34,33,1), (10,15,1), (1,24,1); -)    M_P's base, at step 78,710

INV+(e) at B′

Clause by clause, as stated in P§3.8.1 (with L = L* = 4, a regular start and θ = 5):

clause at B′
(a) h = 2, every block ≥ 1, p_1 = 95 ≥ 7; T = −, digits (0,1,1,1), far pair (p_4, q_4) = (1, 26) with p_4 ≥ 1 and q_4 ≥ 6
(b) q_1 + 1 = 69 ≥ 40, q_2 = 33 ≥ 20, q_3 = 15 ≥ 10
(c) p_j + d_j = 95, 35, 11, all odd
(d) L* = 4 ≥ 3
(e) p_1 + 1 = 96 ≥ 64 and p_2 = 34 ≥ 16

Only clause (a) reads q_4, and only as the lower bound q_4 ≥ 6. Every other number is M_P's.

3. The argument (complete)

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

  1. Initial segment. M runs from c0 to B′ in exactly 79,114 steps without halting. This is a finite exact computation (§2); in the .v it is init, one esx.

  2. Base. INV+(e)(B′) holds (§2).

  3. Transfer. The period theorem (statement P§3.8.1, proof P§3.8.4) says that from an E-start satisfying INV+(e):

Its statement and proof use only the rules of P§2 and arithmetic on (h, P, T). By Lemma R, each rule instance of M_P is an M run of the same length, since K = σK_P:

M_P: K_P(h; P; T) →⁺ K_P(h′; P′; T′) M: K(h; P; T) →⁺ K(h′; P′; T′) (same length)

So the theorem holds verbatim for M's configurations K(h; P; T).

  1. Conclusion. By induction from B′, M's run is an infinite chain of rule applications, each taking at least one step, so it never halts. This is the reduction of P§3.1 with K0 and B replaced by K0′ and B′.

A rule application never presents the halting cell D> 0 1 1, because each rule is an exact computation from one K to the next. ∎

What the argument uses from M_P's orbit

The argument for M_P depends on M_P's own orbit only through its initial segment and base (P§3.7, and the base values quoted in P§3.3 and P§3.8.1). Here §2 replaces them.

The orbit statistics in P§3.3 and P§5 (r values, merge counts, X1 count) are evidence, not premises.

4. How M's orbit relates to M_P's (explanation, not a premise)

Observation

From the first canonical configuration on, the canonical configurations of M and of M_P correspond one to one.

At each of them, M's K and M_P's K_P have the same parameters except that exactly one exponent of M's is larger by 2. From K0′ on, the two orbits apply the same rule at every macro step.

The larger exponent is always in the far block:

where the +2 sits when
q_L, the far pair's q regular E-starts and through the E-cycle
p_L, the last pair's p (t₀ in P§3.4) L-starts, until EndLast
t in T1(t) after EndLast / DecMergeTail, until Ov
k in T2(k) after X1, until X2, whose new pair (3, k, 1) puts it back on q_L
h only at step 20, where M has h = 2 and M_P has h = 0; at step 359 it is already on p_1 = p_L

Each cycle has the same rule sequence and the same number of decrements in both orbits (§6 gives the range checked).

Lemma C (a corollary of P§3.4)

Statement. Take an E-start X = K_P(h; P; T) of M_P that satisfies INV+(e), and let X⁺ be X with q_L (or k, at a T2 start) raised by 2. Then the cycle pair from X⁺ applies the same rules as the one from X, and it ends at M_P's next E-start after X with q_L raised by 2.

In the E-cycle. The far pair (or the pair X2 appends, whose q is k) gets exactly two touches (P§3.4 S1: q_L ≥ 6, or k ≥ 4, and it loses 2). Its q is at least 3 at each touch from X, so also from X⁺.

The only branch either touch reads is "q = 1 or q ≥ 2":

The Ov then copies q_L into the new last pair's p.

In the L-slot. That p (t₀) is never compared. It enters only additively, with coefficient 1, in these places:

t and k likewise enter only additively:

Ov's last-pair q  =  t + 1
X2's new q        =  k

So the +2 never changes a branch, and it never reaches an interior pair. This is why INV+(e) needs no change.

Step lag and tape size

This also accounts for the small size difference at 10⁹ steps (§6). M lags M_P by a slowly growing number of steps: 132 steps at K0′ and 404 at the base, because every sweep over the far block is 4 cells longer.

So the trajectories are not identical, but they are coupled exactly.

5. The .v file, and how it differs from the .v for M_P

Where each section lives in the .v

section in the .v
§0 tm
§1, family K (head state C), RP, RT
§1, sweeps the 14 sweep lemmas Start, PassR, Borrow, PassL, EndPh, EndT, EndLastT, MergeB, MergeE, OvT, OvL, OvEnd, X1Sw, X2T; the list-sweep lemmas PassesR, PassesL, OvPasses
§1, rules the macro rules Dec, DecMerge, DecMergeTail, DecMergeEmpty, EndR (End), EndLast, X2, Ov, X1
§2 init0 (K0′), base and init (B′), J_base
§3 J, Jstep, nonhalt

The changes

The .v is the .v for M_P (1,303 lines) with the following changes. Outside comments, there are no others.

  1. TM_from_str "1RB1RF_1LC0LE_1RD0LB_1RA0RC_1RE1LB_0RD---".

  2. The state names in the statements of the 14 sweep lemmas, of the list-sweep lemmas PassesR, PassesL and OvPasses, and of K are renamed by σ, simultaneously:

M_P's .v never names C, E or F.

Every es proof is M_P's text, unchanged: by Lemma R, the symbolic run on M's table is M_P's run with the states renamed.

The induction proofs of PassesR, PassesL and OvPasses are M_P's text too; they only chain PassR, PassL and OvL.

  1. The start:
  1. J_base keeps M_P's script (cbn …; repeat split; lia). At B′ only two clauses of J read q_4:

26 satisfies both.

  1. J, Jstep, every ob_* and inv_* lemma, and nonhalt are M_P's text, unchanged.

The comments (the header, the closing rule-table comment, and the comments with step counts) describe M.

Side by side

item M_P's .v this .v
table TM_from_str "1RB0LD_…" TM_from_str "1RB1RF_…"
family (§1) K with {{A}} K with {{C}}
14 sweep lemmas (§1) {{A}}, {{B}}, {{D}} {{C}}, {{D}}, {{B}}; the same es proofs
list-sweep lemmas PassesR, PassesL, OvPasses (§1) {{B}}; {{D}}; {{D}} {{D}}; {{B}}; {{B}}; the same induction proofs
macro rules (§1) Dec, DecMerge, DecMergeTail, DecMergeEmpty, EndR, EndLast, X2, Ov, X1 unchanged text, now for head state C
K0 / K0′ (§2) init0, K 2 [(11,11,false)] TN, 956 steps init0, K 2 [(11,13,false)] TN, 1,088 steps; a cross-check, not used by nonhalt
base (§2) base, last pair (1,24,true); init, 78,710 steps base, last pair (1,26,true); init, 79,114 steps
invariant at the base (§2) J_base the same script
§3 steps 3–4 J, Jstep, nonhalt (multistep_nonhalt with init, then progress_nonhalt_cond with P := J) unchanged

What the .v proves, and what the prose is for

Like the .v for M_P, this .v does not prove the period theorem as one lemma. It proves the per-step invariant J described in P§4, which contains INV+(e) in projected form at E-starts.

Lemma R is not used in the .v either: each sweep lemma is proved by es on M's own table, and Lemma R explains why the same proof scripts close.

The result rests on the .v alone; the prose here and in P§3 explains it.

6. Numerical sanity checks

These checks are independent of the .v. "Simulation" means direct simulation of the transition table.

The renaming

The rules

The start and the base

From the blank tape, simulation gives:

INV+(e) holds at B′ clause by clause. The clauses of J evaluate to true at B′, and also at M_P's base B. B′ and B differ only in q_4.

The orbit from B′

On M's orbit from B′ to L* > 300 there are 542 cycle pairs, with 245 L-slot merges and x = 3, 4 and 5 all occurring (x as in P§3.4). On it:

The coupling of §4 (one exponent larger by 2, in the far block, same rules) holds:

Tape size at 10⁹ steps

At 10⁹ steps, M's tape spans 67,347 cells (−67,163..183), with 33,668 nonzero cells. M_P's spans 67,343 cells, with 33,665 nonzero cells.

Checks of the abstract map

The start-independent checks of P§5 (exhaustive small starts, random chains, the far-end table of P§3.4) test only the abstract macro map, so they apply to M unchanged.

AI assistance: this proof sketch, the scripts and the checks were produced with the help of Claude (Anthropic).