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

1RB0LD_1RC0RE_1LD0RE_1LA0LA_1RB1RF_1RB---: never halts

This machine never halts. It is a binary counter: each time the head returns to the left edge of the tape, the tape spells out the counter's digits. From there the machine either adds 1 to the counter (a carry) or re-pairs the halves of every digit (an overflow).

Its transition table is the table of another machine, called the parent below, with four of its six states renamed. No symbol and no direction changes. So every window lemma, rule and step formula of the parent's proof carries over word for word, and so does the whole invariant argument.

Only the start differs. This machine starts in the state that corresponds to the parent's state D, so from the blank tape it follows a different orbit of the same macro map. The proof is a 687-step initial segment, a check that the parent's invariant holds where that segment ends, and the parent's induction.

Machine, parent and status

Notation

The notation is the parent's (P§1). This machine has head state D where the parent has C.

Head position

Head notation as in P§1:

X> w     the head is in state X, on the first cell of w
w <X     the head is in state X, on the last cell of w
<X w     the head is in state X, on the cell just left of w

The family K

At each return to the left edge, the tape is a K:

K(d_1..d_m; a, b) := 0^inf <D (01)^b 000 (01)^a d~_m .. d~_1 1001 0^inf

d~(u,0,v) := (10)^v 00 (01)^u
d~(u,1,v) := (10)^v (01)^u                    (d_m least significant)

Each digit is a triple (u, β, v) with bit β. The rules and the invariant are stated on these triples and on a, b.

Other symbols

symbol meaning defined in
σ, σc the state renaming; a configuration c with its head state renamed by σ §0
Lemma R runs of the parent and runs of this machine correspond under σ §0
re-reading, drop how a bit-1 digit with v = 0 is re-read: it drops P§1
U_j, R_j, R_tot, R1_j, ubar, vbar, V, S, T the derived quantities P§1
M, O the carry rule and the overflow rule P§2.2–2.3; restated in §1
M_k an M step with k = m − j* trailing bit-1 digits §1
INV = Common ∧ (A ∨ B ∨ C) the three-class invariant; A, B and C are its classes P§3; restated in §1
K-configuration state D on a blank cell with only blanks to its left, the tape to its right parsing as a K §2

Summary

This is the parent's binary counter, with head state D where the parent has C. There are two kinds of macro step:

The three-class invariant INV = Common ∧ (A ∨ B ∨ C) of P§3 is closed under M and O.

What carries over

σ is a pure renaming of states (Lemma R, §0). So every window lemma, rule, step formula and the whole invariant argument carry over word for word.

The invariant is not adjusted.

What changes

Only the start differs, because this machine starts in what is the parent's state D. From the blank tape it follows a different orbit of the same macro map, and reaches the INV state below:

this machine:   K((1,1,9); 8, 1)   (class A)   at step 687
the parent:     K((1,1,3); 4, 1)               at step 215

The proof is that 687-step initial segment, a base-case check, and the parent's induction.

0. The map

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

The renaming is

σ:   A ↦ B,   B ↦ C,   C ↦ D,   D ↦ A,   E ↦ E,   F ↦ F          (a 4-cycle on A–D)

The same table, mirrored

The parent's table is in turn the table of 1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD--- mirrored and renamed by (A,B,C,D,E,F) ↦ (B,C,D,A,E,F) (P§0).

So this machine is also that table mirrored, with states renamed by the composite (A,B,C,D,E,F) ↦ (C,D,A,B,E,F), and started in its state C.

P§0 lists the four holdouts with this table and their start states; this machine is the D row.

Relabelling

For a configuration c, let σc be c with its head state renamed by σ. The tape and the head position stay the same.

Lemma R (relabelling).

c → c′ under the parent     if and only if     σc → σc′ under this machine
c is halted                 exactly when       σc is halted

The second line holds because F1 is the only undefined cell, and σ fixes F. So every run c →ⁿ c′ of the parent gives a run σc →ⁿ σc′ here, of the same length, and conversely.

Proof. If the parent has δ(s, x) = (y, d, t), this machine has δ(σs, x) = (y, d, σt), by the table above. ∎

Start

This machine's c0 is

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

So its run is σ of the parent's table run from 0^inf D> 0^inf. This is not the parent's own run, which starts in A.

Halting cell

Only E1 = 1RF enters F, and F1 is ---, exactly as in the parent (σ fixes E and F). So the machine halts exactly when E reads 1 with a 1 to its right.

1. What carries over unchanged

Each row below is an item of the parent's proof, what it becomes for this machine, and why.

parent item this machine reason
P§1 family K(d_1..d_m; a, b) K(d_1..d_m; a, b) (formula in Notation): the parent's words with head state D, the same digits d~(u,0,v) and d~(u,1,v), the same re-reading (drops) and the same derived quantities (U_j, R_j, R1_j, ubar, vbar, S, T) Lemma R
P§2.1 window lemmas S1–S6, T1–T14 and digit lemmas Lb, Lf, Rb, Ro the same windows, results and step counts, with every state letter (in the lemma and in its transition list) renamed by σ; listed below Lemma R; each is also proved on this table in the .v
P§2.2–2.3 the chains for M and O; the rules M and O with their step formulas and domains, and O at m = 0 identical, with <C read as <D Lemma R
P§2.4 the failure mode identical it is a statement about triples
P§3 invariant INV = Common ∧ (A ∨ B ∨ C), facts F0–F3, coverage (P§3.2), closure (P§3.3) identical, word for word stated on the triples (u, β, v) and on a, b only; it never mentions a state name or the start
P§5 progress, and why F reading 1 is never used identical: E1 occurs only in T4, T9 and T13, and in each of them F then reads 0 Lemma R
P§4 initial segment and base replaced by §2 different start

Window lemmas

The window lemmas on this table, with their transitions (head notation as in P§1, see Notation):

      window lemma                 steps  transitions
S1    10<D       -> <D01             2    D0 A1                 one block of (10)^n <D -> <D (01)^n
S2    01<A       -> <A10             2    A1 D0                 one block of (01)^n <A -> <A (10)^n
S3    B>10       -> 01B>             2    B1 E0                 one block of B> (10)^n -> (01)^n B>
S4    E>01       -> 10E>             2    E0 B1                 one block of E> (01)^n -> (10)^n E>
S5    1011<A     -> 11<A01           6    A1 D1 A0 B0 C0 D1     one block of (10)^n 11 <A -> 11 <A (01)^n
S6    01<D0      -> <D001            6    D1 A0 B0 C0 D1 A1     one block of (01)^n <D 0 -> <D 0 (01)^n
T1    00<D       -> 10E>             3    D0 A0 B1              (on 0^inf)
T2    E>000      -> <D001            5    E0 B0 C0 D1 A1
T3    E>001      -> 110E>            3    E0 B0 C1
T4    E>10       -> 11B>             2    E1 F0
T5    B>01       -> 10E>             2    B0 C1
T6    B>00       -> <A01             3    B0 C0 D1
T7    11<A       -> <A00             2    A1 D1
T8    11011<A    -> <D00001          9    A1 D1 A0 B0 C0 D1 A1 D1 A1
T9    E>1001000  -> <D0001001       13    E1 F0 B0 C1 E0 B0 C0 D1 A1 D0 A1 D1 A1    (E> 1001 0^inf)
T10   11<D       -> <D00             2    D1 A1
T11   0<D        -> <A1              1    D0
T12   00011<A    -> 10110E>         13    A1 D1 A0 B0 C0 D1 A1 D0 A0 B1 E0 B0 C1    (0^inf 11 <A)
T13   E>101      -> 110E>            3    E1 F0 B1
T14   1011<D     -> <D0100           4    D1 A1 D0 A1

Digit lemmas

The digit lemmas of P§2.1 read the same with the head states renamed, with the step counts and side conditions of P§2.1:

Lb    E> (10)^v (01)^u              ->  11 (01)^(v−1) (10)^u E>
Lf    E> (10)^v 00 (01)^u           ->  11 <A (10)^(v−1) (01)^(u+1)
Rb    11 (01)^(v−1) (10)^u 11 <A    ->  11 <A (10)^(v−1) 00 (01)^u
Ro    11 (01)^(v−1) (10)^u <D       ->  <D 000 (01)^(v−1) 1 (01)^(u−1)

The rules M and O

The rules in busycoq comment style, for this machine:

1RB0LD_1RC0RE_1LD0RE_1LA0LA_1RB1RF_1RB---     (= sigma of 1RB0RE_1LC0RE_1LD0LD_1RA0LC_1RA1RF_1RA---, sigma = BCDAEF)

K(d_1 .. d_m; a, b) := 0^inf <D (01)^b 000 (01)^a d~_m .. d~_1 1001 0^inf
d~(u,0,v) := (10)^v 00 (01)^u,   d~(u,1,v) := (10)^v (01)^u        (d_m least significant)

start from K((1,1,9); 8, 1)                                   (step 687, section 2)

M  (carry; some bit is 0; j* = index of the LAST bit-0 digit, k = m - j*):
   K(.., (u,0,v), (u_j,1,v_j)_{j*<j<=m}; a, b) --> K(.., (u+1,1,v-1), (u_j,0,v_j-1)_{j*<j<=m}; a+1, b+2)
   steps 32 + 8a + 8b + 4v + sum_{j>j*} (8 u_j + 4 v_j);  needs v >= 1, u_j, v_j >= 1 (j > j*), a, b >= 0
   if v = 1, the digit (u+1,1,0) drops (re-reading, P section 1)
O  (overflow; all bits 1):
   K((u_1,1,v_1) .. (u_m,1,v_m); a, b) --> K((0,0,u_1), (v_1-1,0,u_2), .., (v_{m-1}-1,0,u_m), (v_m,1,a); b+3, 1)
   steps 89 - 4m + 8a + 20b + 4 sum u_j + 8 sum v_j;  needs m >= 1, all u_j, v_j >= 1, a >= 1, b >= 0
O at m = 0:  K(; a, b) --> K((1,1,a); b+3, 1)   in 89 + 8a + 20b steps (a >= 1); used only inside the initial segment

We write M_k for an M step with k = m − j* trailing bit-1 digits.

The invariant

The invariant, restated from P§3 (derived quantities as in P§1):

INV(d_1..d_m; a, b) := Common /\ (A \/ B \/ C)
Common: m >= 1; canonical (every v_j >= 1, every bit-1 u_j >= 1); a >= 1; b odd; a + R_tot even;
        S >= 0; T >= 0; vbar_m >= 1
A:      d_1 = (0,0,v) with v >= 2, or d_1 = (1,1,v); for all j, vbar_j >= 1 and ubar_j odd; S >= 1
B:      d_1 = (0,0,1); for all j, v_j + beta_j odd; for j >= 2, ubar_j >= 2^(j-1)
C:      for all j, v_j + beta_j odd and ubar_j >= 2^j; S >= 1; T >= 2

2. What changes: initial segment and base (replaces P§4)

A K-configuration is state D on a blank cell with only blanks to its left, with the tape to its right parsing as a K.

Direct simulation of this machine from the blank tape finds them exactly at these steps up to 687. (The parent's table run from 0^inf D> 0^inf gives the same list, as Lemma R says.)

step K-configuration in INV? next macro step
101 K((1,1,1); 2, 1) no: S = 0 (A needs S ≥ 1); not B (top is bit 1) and not C (ubar_1 = 1 < 2) O, 133 steps
234 K((0,0,1), (1,1,2); 4, 1) no: LSB vbar = 2 − 2 = 0 M_1 with the top falling, 92 steps
326 K((2,0,1); 5, 3) no: its only digit is bit 0 with v = 1, so LSB vbar = 1 − 1 = 0 M_0 with an LSB drop, 100 steps
426 K(; 9, 5) no: m = 0 O at m = 0 (P§2.3), 261 steps
687 K((1,1,9); 8, 1) yes, class A O, 245 steps, to K((0,0,1),(9,1,8); 4, 1) (class B)

The legs

Each leg is an instance of the rules of §1:

step 101 -> 234    O                 133 = 89 − 4 + 16 + 20 + 4 + 8
step 234 -> 326    M_1               92  = 32 + 32 + 8 + 4 + (8 + 8)
step 326 -> 426    M_0 (LSB drop)    100 = 32 + 40 + 24 + 4
step 426 -> 687    O at m = 0        261 = 89 + 72 + 100

Two legs use rule cases the invariant argument never needs (the LSB drop, and O at m = 0). That does not matter: the proof uses the 687-step run only as one finite computation, and the table only explains it.

For comparison, the parent's run has K-configurations at 82 (K(; 3, 1)) and 215 (K((1,1,3); 4, 1)) (P§4). P§0 lists the first INV K-configuration for all four start states of this table.

INV at the base

The base is K((1,1,9); 8, 1). Its quantities:

top (1,1,9):        bit 1,  u_1 = 1;   m = 1
V = 1               R_tot = R_1 = 0    R1_1 = 0
ubar_1 = 1 (odd)    vbar_1 = 9 ≥ 1     (also the LSB condition)
S = 8 + 0 − 2 = 6 ≥ 1
T = 1 − 1 = 0 ≥ 0                      (tight, as at the parent's base)
a = 8 ≥ 1           b = 1 odd          a + R_tot = 8 even

So Common holds, and class A holds: the top is (1,1,v), every vbar ≥ 1, every ubar is odd, and S ≥ 1.

The base in the .v

In the .v, INV is the parent's additive form. R = Rof ds is computed by structural recursion on the least-significant-first digit list, and the clauses carry no subtraction or division.

At ([d1 1 9], 8, 1), with m = 1 and 2^(m+1) = 4, its 12 clauses are:

ds ≠ []
a = 8 ≥ 1
b mod 2 = 1
(a + R) mod 2 = 0               with R = 0

a + R + 2 = 10 ≥ 4              (S ≥ 0)
b + 3 + 2R = 4 ≥ 4              (T ≥ 0)
LSBok:  v_m = 9 ≥ R + 1

class A:
  a + R + 1 = 9 ≥ 4             (S ≥ 1)
  PA (d1 1 9) 0 0, which is:    canonical (1 ≥ 1, 9 ≥ 1)
                                9 ≥ Rd + 1 = 1
                                ub = 1 odd
                                ub = 1 for the top digit

Compared with the parent's base K((1,1,3); 4, 1), only v_1 (9 against 3) and a (8 against 4) differ. Every clause that reads them is a lower bound, except the parity of a + R, which is even in both.

3. The argument (complete)

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

  1. Initial segment. The machine runs from c0 to K((1,1,9); 8, 1) in exactly 687 steps without halting. This is a finite exact computation (§2); in Rocq it is init, proved by solve_init.

  2. Base. INV([(1,1,9)], 8, 1) holds, in class A (§2).

  3. Transfer. P§3.2 (coverage) and P§3.3 (closure): every INV state has a macro step M or O, of at least 32 machine steps, to an INV state. - These statements are about the triples and a, b, and the macro steps are rule instances K → K′ of the parent. - By Lemma R, each such instance is a run σK →⁺ σK′ of this machine of the same length, and σK is the K of §1. - So coverage and closure hold verbatim for this machine's K-configurations.

  4. Conclusion. By induction from the base, the run is an infinite chain of macro steps, each of at least one machine step, so it never halts (progress_nonhalt_cond with P := INV, as in P§5). - No macro step reaches the halting cell: each is an exact computation from one K to the next, composed of window lemmas in which F reads only 0. ∎

The parent's invariant argument (P§3) never refers to the parent's own orbit, so it applies to this orbit unchanged.

4. How this orbit relates to the other starts of this table (remark, not used in the proof)

Coupling with 1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD---

In the shared triple notation, compare this machine's macro orbit with that machine's, which starts from its first INV state K((1,1,2); 8, 5) at step 483 (P§0). The two reach a fixed offset after 54 macro steps (step 25,718 here, 25,618 there).

Observed facts, checked on the two abstract macro orbits for 1,199,946 further macro steps (to t ≈ 3.7·10¹² machine steps, 93 overflows):

Where the +3 travels

This explains the tapes at 10⁹ steps:

run, at 10⁹ steps cells nonzero
this machine 77,691 38,839
1RB0LE_1RC0RC_1LD0RB_1LA0LE_1LD1LF_1LD--- 77,685 38,836

The 6 extra cells here are the three extra 10/01 blocks.

The parent's own run is a different orbit, with no such coupling (76,245 cells and 38,119 nonzero at 10⁹ steps).

5. The .v file

The .v is the parent's .v (671 lines, sha256 2dfa4337b76b3b5e7a7bd91a3260395836d1a7672c146a4e2496ee25a2ad8ff6) with exactly these changes:

  1. TM_from_str "1RB0LD_1RC0RE_1LD0RE_1LA0LA_1RB1RF_1RB---".
  2. σ applied to every state name {{X}}, simultaneously (details below).
  3. The base: Lemma init, and a change in nonhalt (details below).
  4. The header comment, the comments that name a head state, and five section banners (three cite the parent's write-up as P§n; two say the parent's lemmas renamed by sigma).

Change 2: the state renaming

{{A}} -> {{B}}     5 occurrences
{{C}} -> {{D}}    22 occurrences
{{D}} -> {{A}}    18 occurrences
{{E}}             18 occurrences, fixed

The parent's file names neither B nor F.

Change 3: the base

Lemma init: c0 -->* K [d1 1 9] 8 1.                          (687 steps)

in nonhalt:
  change (K [d1 1 9] 8 1) with (Kc ([d1 1 9], 8, 1)).

init is proved by the parent's unfold K, R0. cbn. solve_init. The base goal is closed by the parent's own tactic line, since every clause is linear arithmetic on constants (§2).

Everything else is the parent's text

Every other line is the parent's text:

The file imports only Individual62 from busycoq, has one TM_from_str, and has no Section, Module or Hypothesis.

Where each section lives

section lemma(s) in the .v
§0 the table tm
§1 window lemmas (P§2.1) one block each by es: S1_1..S6_1; then S1, S2, S6 by shift_rule_L, S3, S4 by shift_rule_R, and S5 by induction on n; T1..T14, each by es
§1 digit lemmas (P§2.1) Lb, Lf, Rb, Ro (by follow over the window lemmas; finisher fin with rot01, rot10)
§1 family (P§1) dg (d0 u v, d1 u v), dr (one digit), app_ds (digit list, least significant first), R0 = [1;0;0;1] *> 0inf, K ds a b
§1 chains for M and O (P§2.2–2.3) map1, map0, rw, LbS, RbS, ro_out, RoS, app_ds_app; chunkA (left-edge start, shared by M and O), chunkC (end of M), chunkO (end of O); Oz, Oout, Ozeq
§1 rules M_spec, Mdrop_spec (M with a drop: M_spec with v = 0, then a tape equality by lpow_add), O_spec
§1 invariant (P§3) bof, vof, Rof, Rd, ub, AllD, canon, PA, PB k (k = 0 is B, k = 1 is C), LSBok, INV, Kc
§1 facts F0–F3 (P§3.1) F0 Rof_bound, Rof_head1, Rof_head0; F1 F1, PA_touch0/1, PB_touch0/1, Rof_M, len_M, LSB_M; F2 Rel, PB_chain, PB_abs, F2chain, F2, LSB_drop; F3 Oz_len, Oz_R, Oz_AB (A → B), Oz_CA (C → A)
§1 coverage and closure (P§3.2–3.3) decomp; macro_step : INV s -> exists s', Kc s -->+ Kc s' /\ INV s'
§2 initial segment and base init : c0 -->* K [d1 1 9] 8 1; the base goal in nonhalt
§3 conclusion nonhalt: multistep_nonhalt with init, then progress_nonhalt_cond with P := INV

Lemma R in the formal proof

Lemma R is not a premise of the formal proof. Every window lemma, and through them every rule, is proved by es and follow on this machine's own table; Lemma R explains why the parent's scripts close on it.

The step counts are not part of the formal statement (the .v proves -->+ for each rule).

6. Numerical checks

These simulation checks are independent of the .v; the result rests on the .v alone.

Rules used in the real run, from step 687 to step 999,837,328:

O M_0 M_1 M_2 M_3 M_4 M_5 M_6 and above
53 9,639 4,846 2,422 1,209 602 298 262

Drops in that run: 30 of the top digit, 12 of a middle digit.

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