BB(6) hunt
Machines / W5-8c

1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA

W5-8clocal proof 29Kill claimedBouncer + Chaotic Edgebbchallenge ↗Explorerparent: W5-8

How we proved it never halts

W5-8's proof, from a different start

W5-8's tape is mostly five long blocks of 1s with short words between them; their lengths follow exact rules through 12-trip stretches and collisions of the short words, into a double cycle that repeats forever. W5-8c is W5-8's table with its state letters renamed (no mirror), started in the state that is W5-8's E instead of A. So it shows W5-8's picture the right way round: the same 43-cell pattern at the left end, the same blocks, short words and collisions.

New state names change nothing about what the machine does, so every rule of W5-8 holds here unchanged. What is new is the opening. After 6,950,830 steps the run falls into the five-block pattern with lengths 2,583, 70, 76, 43 and 18. From there its collisions come in an order of their own: nine collisions, with 12-trip stretches between them, each inside the range where its rule is proved.

They reach a start of W5-8's double cycle at step 163,638,058, with a second block of 220 cells where W5-8's run has 212. The cycle's conditions (an odd first block, and a second block of at least 52 that leaves remainder 4 when divided by 8, with the other three blocks set by it) hold there. So the cycle repeats forever, the second block growing 220, 252, 284 and so on, and the missing transition is never used.

The Rocq proof keeps W5-8's rules and double cycle word for word, for W5-8's table. It replays that table's 6,950,830-step opening from state E in ten pieces, chains the nine collisions, and uses busycoq's renaming lemma to turn a halt of W5-8c into a halt of that run.

#29local proof number
458lines of Rocq
8 sto compile
6/6automatic checks
space-time diagram, first 10,000 steps from blank
The first 10,000 steps from a blank tape. Time runs down; white is 1.
About this picture

The standard picture (bbchallenge.org's Default view): each row is the whole tape at one step, time runs downward, and the head's path draws the pattern.

bbchallenge-defaultStart blankRows steps 0 → 10,000, top to bottomWindow cells −200..199, left to rightColors 1 0 or unvisited

Overview

In one sentence

Bouncer. Every round trip starts at a fixed 43-cell gadget G. Beyond it are five 1-blocks n, a, b, c, d with four short particles between them, and a particle turns the head back. (submission/README.md, Mechanism)

parent W5-8 (740 line 214), KILLED_NONHALT 2026-10-13 (check_kill PASS, sha256 beef54a5..cf48, independently re-verified); mirrored sibling W5-8b (740 line 418) also KILLED_NONHALT

Upstream
Kill claimed · PR #27merged 2026-10-16 07:09 UTC by ccz181078 · PR_BouncerChaoticEdge.v · TM2 · on Submissions →
Rocq proof
check_kill PASS · first Oct 13 06:33
458 lines · 15 KB .v · compile 7.8 s · coqchk pass · 0 axioms · PASS Oct 13 06:33
· the .v file
Automatic review
6 of 6 checks passtemplate: W5-8's kill file (kill 27) (twin: parent kill's .v) · details in Proof →
Class
Bouncer + Chaotic Edge
On the list
not on BB6_holdouts_663.txt (line 636 of the previous list) · historical 740 line 636
eqv ×1sim 1e15UBRRBA
Derived from
1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LFW5-8 Kill claimed
Your calls on file 1
next
post (Dennis): after W5-8 (214) and W5-8b (418), as a reply; first fix their drafts' '636 not formalized' sentences

Mechanism

What to check here: the pictures show the mechanism that the rule table describes.

No observation of its own: sibling of W5-8: W5-8's table with states renamed sigma = A->E, B->C, C->D, D->F, E->A, F->B (no mirror; the only map of 720 x 2), started in W5-8's state E; this run = sigma of the parent's table run from 0^inf E> 0^inf on the same tape (Lemma R). Below are W5-8's figures, rules and history. W5-8's Checkpoint A questions (3) are on its page.

Figures

Fig 1 · bbchallenge default view, 10,000 steps

The site's view. A bouncer: the head sweeps the whole tape, and the right side is ragged from the start.

bbchallenge default view, 10,000 steps
bbchallenge-defaultStart blankRows 10,000 steps squeezed into 500 px rowsWindow cells -200..199, 1 px = 1 cellColors 1 0 or never visited head after a right/left move
Rows: 1 px row = 20 steps, the site's bilinear squeeze
Fig 2 · One double cycle: Even(212) to Even(244)Q1

Rows go down in time. Follow the dotted diagonal to the wall at left; compare the two halves.

One double cycle: Even(212) to Even(244)
bbchallenge-defaultStart mid-run: step 153,126,993Rows left recordsWindow cells -519..0, 1 px = 1 cellColors 1 0 or never visited
Start: fed as its exact tape K(12,863, 212, 144, 35, 18), head F at the left end · Rows: the start, then one row per new leftmost cell (2 per round trip); 1,674 records = 837 round trips, steps 153,126,993..241,393,559, ending on K(16,215, 244, 160, 35, 18) · Window: counted from the right edge (each row's rightmost visited cell is pinned to the last column); G and the body are off-picture to the left · Colors: the head is at the far left, off-picture
Fig 3 · Right edge to 1e10 stepsQ2

One row per 12 trips. Each tooth is one run; look for any tooth that breaks the two-kind alternation.

Right edge to 1e10 steps
customStart blankRows one per 12 round tripsWindow cells -1199..0, 1 px = 1 cellColors 1 0 left of the visited span
Rows: the first left record of trips 5, 17, 29, ..., 26,501 (2,209 rows, steps 3,849..9,995,948,407) · Window: counted from the right edge (each row's rightmost visited cell is pinned to the last column) · Colors: grey: first rows only
More figures (1)Fig 4: Default view, 99,999 steps, wide window
Fig 4 · Default view, 99,999 steps, wide window

The bouncer's shape: span grows like the square root of time; the right edge carries the particles.

Default view, 99,999 steps, wide window
bbchallenge-defaultStart blankRows 99,999 steps squeezed into 500 px rowsWindow cells -600..599, 1 px = 3 cellsColors 1 0 or never visited head after a right/left move
Rows: 1 px row = 200 steps, the site's bilinear squeeze · Window: the site squeezes a 1,200-cell width into 400 px
Rules (8/8 validated)exact tape rewrites the proof will formalize, each re-checked by simulation
rulefrom ⟶ tocasesstepschecked
Sea, right pass
C> 12k
⟶ (10)k C>
any k >= 02k✓200/200
Sea, left pass (composite 11 C>0)
0 (10)k 1 1 C> 0
⟶ 0 1 1 C> 0 12k
any k >= 0; the cell left of the block is 012k✓200/200
Sea, left pass (composite B>000)
0 (10)k B> 0 0 0
⟶ 0 B> 0 0 0 12k
any k >= 0; used on the other trip phase12k✓200/200
S: 12 round trips
0∞ <F G 1n 0 1a 0 12 0 1b 06 1c 0 12 0 14 06 1d 0 12 02 12 0 13 0∞
⟶ 0∞ <F G 1n+48 0 1a-8 0 12 0 1b+4 06 1c 0 12 0 14 06 1d+4 0 12 02 12 0 13 0∞
n odd >= 1; a even >= 10; b even >= 6; c odd >= 7; d even >= 2 (each bound is the smallest value that works; tested up to 2,000)84n+84a+77b+70c+63d+13628✓300/300
TE: P1 hits the wall (even to odd run)
0∞ <F G 1n 0 14 0 12 0 1b 06 135 0 12 0 14 06 1d 0 12 02 12 0 13 0∞
⟶ 0∞ <F G 1n+556 0 1b-86 0 12 0 182 06 1d+51 0 12 0 14 06 118 0 12 02 12 0 13 0∞
n odd; b even, 88..3,000; d even, 20..2,000 (plus a 25 x 32 grid over b 100..676, d 20..392)966n+952b+812d+455332 (138 round trips)✓150/150
TO: P1 hits the wall (odd to even run)
0∞ <F G 1n 0 12 0 12 0 1b 06 1c 0 12 0 14 06 1d 0 12 02 12 0 13 0∞
⟶ 0∞ <F G 1n+588 0 1b+c-91 0 12 0 1d+62 06 135 0 12 0 14 06 118 0 12 02 12 0 13 0∞
n odd; b even >= 82; c odd >= 37; d even >= 18 (half the tests on the reachable line c = b+11, d = b-64, half random)1029n+1001b+987c+882d+458476 (147 round trips)✓150/150
Double cycle
Even(n, x) = 0∞ <F G 1n 0 1x 0 12 0 1(x+76)/2 06 135 0 12 0 14 06 118 0 12 02 12 0 13 0∞
⟶ Even(n+12x+808, x+32)
x = 4 mod 8, x >= 52, n odd. Tested: every x in 52..252, 16 random x up to 5,620, and all 16 even-run starts of the real run up to 1e10S^((x-4)/8), TE, S^((x-52)/8), TO: 3x+201 round trips✓42/42
Opening
blank tape, state A
⟶ Even(12863, 212) = 0∞ <F G 112863 0 1212 0 12 0 1144 06 135 0 12 0 14 06 118 0 12 02 12 0 13 0∞
direct simulation; it is the first left record of round trip 3,209153126993✓1/1
Compressed historythe tape as 0∞ <F 02 12 0 14 0 12 0 16 0 12 0 15 02 12 0 15 0 12 02 1n 0 1a 0 12 0 1b 06 1c 0 12 0 14 06 1d 0 12 02 12 0 13 0∞ at 35 moments: where the rules are read off
0∞ <F 02 12 0 14 0 12 0 16 0 12 0 15 02 12 0 15 0 12 02 1n 0 1a 0 12 0 1b 06 1c 0 12 0 14 06 1d 0 12 02 12 0 13 0∞
stepnabcd
4,097,8971,95934684518
18,629,2654,35146868918
70,933,0378,6751108613318
123,039,28511,5031348215718
153,126,99312,8632121443518
198,114,31114,6671628217318
241,393,55916,2152441603518
303,350,07718,2111948218918
363,208,09319,9512761763518
445,948,08322,1392268220518
526,157,92324,0713081923518
633,882,72926,4512588222118
738,604,52128,5753402083518
875,902,55931,1472908223718
1,009,683,50333,4633722243518
1,181,530,26136,2273228225318
1,349,304,62938,7354042403518
1,561,062,66741,6913548226918
1,768,151,80344,3914362563518
2,025,570,75347,5393868228518
2,277,683,07350,4314682723518
2,586,899,63953,7714188230118
2,890,130,63156,8555002883518
3,257,668,58960,3874508231718
3,618,500,81363,6635323043518
4,051,271,01167,3874828233318
4,476,574,09970,8555643203518
4,981,874,45774,7715148234918
5,478,905,11378,4315963363518
6,064,420,62382,5395468236518
6,640,822,62386,3916283523518
7,314,625,34990,6915788238118
7,978,429,54194,7356603683518
8,748,978,61999,2276108239718
9,508,602,923103,4636923843518
nlast 103,463
1e51,9594.1e69.5e9log xstep 4097897: n = 1959step 18629265: n = 4351step 70933037: n = 8675step 123039285: n = 11503step 153126993: n = 12863step 198114311: n = 14667step 241393559: n = 16215step 303350077: n = 18211step 363208093: n = 19951step 445948083: n = 22139step 526157923: n = 24071step 633882729: n = 26451step 738604521: n = 28575step 875902559: n = 31147step 1009683503: n = 33463step 1181530261: n = 36227step 1349304629: n = 38735step 1561062667: n = 41691step 1768151803: n = 44391step 2025570753: n = 47539step 2277683073: n = 50431step 2586899639: n = 53771step 2890130631: n = 56855step 3257668589: n = 60387step 3618500813: n = 63663step 4051271011: n = 67387step 4476574099: n = 70855step 4981874457: n = 74771step 5478905113: n = 78431step 6064420623: n = 82539step 6640822623: n = 86391step 7314625349: n = 90691step 7978429541: n = 94735step 8748978619: n = 99227step 9508602923: n = 103463
alast 692
692344.1e69.5e9log xstep 4097897: a = 34step 18629265: a = 46step 70933037: a = 110step 123039285: a = 134step 153126993: a = 212step 198114311: a = 162step 241393559: a = 244step 303350077: a = 194step 363208093: a = 276step 445948083: a = 226step 526157923: a = 308step 633882729: a = 258step 738604521: a = 340step 875902559: a = 290step 1009683503: a = 372step 1181530261: a = 322step 1349304629: a = 404step 1561062667: a = 354step 1768151803: a = 436step 2025570753: a = 386step 2277683073: a = 468step 2586899639: a = 418step 2890130631: a = 500step 3257668589: a = 450step 3618500813: a = 532step 4051271011: a = 482step 4476574099: a = 564step 4981874457: a = 514step 5478905113: a = 596step 6064420623: a = 546step 6640822623: a = 628step 7314625349: a = 578step 7978429541: a = 660step 8748978619: a = 610step 9508602923: a = 692
blast 384
384684.1e69.5e9log xstep 4097897: b = 68step 18629265: b = 86step 70933037: b = 86step 123039285: b = 82step 153126993: b = 144step 198114311: b = 82step 241393559: b = 160step 303350077: b = 82step 363208093: b = 176step 445948083: b = 82step 526157923: b = 192step 633882729: b = 82step 738604521: b = 208step 875902559: b = 82step 1009683503: b = 224step 1181530261: b = 82step 1349304629: b = 240step 1561062667: b = 82step 1768151803: b = 256step 2025570753: b = 82step 2277683073: b = 272step 2586899639: b = 82step 2890130631: b = 288step 3257668589: b = 82step 3618500813: b = 304step 4051271011: b = 82step 4476574099: b = 320step 4981874457: b = 82step 5478905113: b = 336step 6064420623: b = 82step 6640822623: b = 352step 7314625349: b = 82step 7978429541: b = 368step 8748978619: b = 82step 9508602923: b = 384
clast 35
397354.1e69.5e9log xstep 4097897: c = 45step 18629265: c = 89step 70933037: c = 133step 123039285: c = 157step 153126993: c = 35step 198114311: c = 173step 241393559: c = 35step 303350077: c = 189step 363208093: c = 35step 445948083: c = 205step 526157923: c = 35step 633882729: c = 221step 738604521: c = 35step 875902559: c = 237step 1009683503: c = 35step 1181530261: c = 253step 1349304629: c = 35step 1561062667: c = 269step 1768151803: c = 35step 2025570753: c = 285step 2277683073: c = 35step 2586899639: c = 301step 2890130631: c = 35step 3257668589: c = 317step 3618500813: c = 35step 4051271011: c = 333step 4476574099: c = 35step 4981874457: c = 349step 5478905113: c = 35step 6064420623: c = 365step 6640822623: c = 35step 7314625349: c = 381step 7978429541: c = 35step 8748978619: c = 397step 9508602923: c = 35
dlast 18
18184.1e69.5e9log xstep 4097897: d = 18step 18629265: d = 18step 70933037: d = 18step 123039285: d = 18step 153126993: d = 18step 198114311: d = 18step 241393559: d = 18step 303350077: d = 18step 363208093: d = 18step 445948083: d = 18step 526157923: d = 18step 633882729: d = 18step 738604521: d = 18step 875902559: d = 18step 1009683503: d = 18step 1181530261: d = 18step 1349304629: d = 18step 1561062667: d = 18step 1768151803: d = 18step 2025570753: d = 18step 2277683073: d = 18step 2586899639: d = 18step 2890130631: d = 18step 3257668589: d = 18step 3618500813: d = 18step 4051271011: d = 18step 4476574099: d = 18step 4981874457: d = 18step 5478905113: d = 18step 6064420623: d = 18step 6640822623: d = 18step 7314625349: d = 18step 7978429541: d = 18step 8748978619: d = 18step 9508602923: d = 18
Template comparisonTranslatedBellv5.v TM1: partly applies · the nearest solved proof, what carries over, and the transitions that differ
01
A1RB1LD
B0RC1RC
C1LA1RE
D---1LE
E1RF0RC
F0RB0LF
file
TranslatedBellv5.v:9
module
TM1
machine
1RB0LA_1LC1LA_0RD0LB_0RE1RC_1LB0RF_1RD--- (11 transitions apart)
diff
different table, same proof architecture. The nearest proved table by transitions is 1RB0LA_1LC1RD_0RB0LC_1LA1RE_1LF0RD_---1LE (distance 3, RWL_mod_v5.v, a decider certificate with no macro rules to reuse)
note
TranslatedBellv5 TM1 proves block-macro rules with ES_v3's symbolic executor (es' a b c d e over word^^n tapes), repeats them with ind, chains them with follow, and ends with progress_nonhalt_cond. Ours needs the same tools for different rules: es' for S (5 variables), TE (3) and TO (4); ind for S^m; follow for the double cycle. The final step is progress_nonhalt_simple over x, since no extra invariant is needed. Bouncer_v2 TM1 shows es' handling a one-variable bouncer BigStep; Bouncer_v3's multistep_c' runs a long opening with nested small counters. New here: the es' calls must cover 12-, 138- and 147-trip stretches.

Proof & checks

6/6 automatic checks pass

Kill 29 · Bouncer + Chaotic Edge · the kill file 1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v: 458 lines, 51 items · the package submission/

✓ 6/6 automatic checks pass · Checkpoint B: no note from Dennis yet · template (twin: parent kill's .v): W5-8's kill file (kill 27) · 64% of our lines identical · vs W5-8: same table, started in W5-8's E; different orbit
1What is provedCheck: the string, the theorem and every check_kill line are green, and the .v on disk is the one that was checked (same sha256).
Machine
1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA
vs holdout list
✓ byte-exact: the .v literal (L35) == 2026-10-07_778.txt line 672 (41 bytes, via tools/holdouts.py)
Theorem
✓ Lemma nonhalt: ~halts tm c0. L415
check_kill
✓ PASS · 17/17 checks pass · compile 7.84 s · coqchk pass (64.86 s) · assumptions: 0 (closed) · 2026-10-13 13:33:44 UTC · submission/check_kill.txt
Checked .v
sha256 8c597d875a112513…
✓1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v8c597d875a112513… = checked
✓submission/1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v8c597d875a112513… = checked
Status
✓Killed: never halts updated 2026-10-13
✓ args✓ input✓ framework✓ framework_build✓ forbidden✓ structure✓ tm_text✓ theorem_text✓ coq✓ names✓ compile✓ tm_rocq✓ theorem_rocq✓ isolation✓ assumptions✓ coqchk✓ integrity
All 17 check_kill checks with their one-line results
✓args6x2 machine, framework module Individual62, mode nonhalt
✓input15468 bytes, 458 lines, 251 sentences
✓frameworkHEAD 0940bb9cf434ba68f0c025dabfde45a219999973 == pin; no tracked changes under verify/
✓framework_build17 needed framework .vo files present and fresh, with native code no older than the .vo
✓forbiddennone of 30 forbidden patterns occur (ground rule 1's words: anywhere; command words: outside comments and strings; comments never split a token)
✓structure6 Require name(s) allowed; no top-level Variable/Context; no shadowing; Module/Section balanced
✓tm_textline 35: TM_from_str "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA" == <tm> (41 bytes)
✓theorem_textline 415: nonhalt : ~halts tm c0
✓coqcoqc 8.20.1 (<opam-switch>/bin/coqc)
✓nameshalts, c0, TM_from_str resolved inside Individual62
✓compilecompiled in 7.8s with all appended checks
✓tm_rocqBB6Kill.Candidate.tm = BusyCoq.Individual62.TM_from_str "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA" by eq_refl (in-file and isolated)
✓theorem_rocqnonhalt : ~ halts (TM_from_str "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA") c0 with absolute names (in-file and isolated)
✓isolationonly stock proof plugins loaded; guard/positivity/universe checking on, definitional UIP off
✓assumptions0 assumption(s), all in the baseline
✓coqchkcoqchk -norec BB6Kill.Candidate ok (64.9s); its context summary lists nothing of the file's own
✓integrityinput sha256 and framework HEAD/cleanliness identical before and after
2Same machine as W5-8?Check: every row of the table is ✓ under the computed renaming (or the listed differences are what status.json's relation says), the two pictures show the same bands, and the trajectory numbers agree with the claimed relation (a twin keeps a fixed small offset; a sibling's gap grows).

status.json names W5-8 as the parent (1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF); label: “W5-8c”; relation: “sibling of W5-8: W5-8's table with states renamed sigma = A->E, B->C, C->D, D->F, E->A, F->B (no mirror; the only map of 720 x 2), started in W5-8's state E; this run = sigma of the parent's table run from 0^inf E> 0^inf on the same tape (Lemma R)”; parent_note: “W5-8 (740 line 214), KILLED_NONHALT 2026-10-13 (check_kill PASS, sha256 beef54a5..cf48, independently re-verified); mirrored sibling W5-8b (740 line 418) also KILLED_NONHALT”. Everything below is computed from the two machine strings, not read from notes.

✓ Identical to W5-8's table under the renaming A→E, B→C, C→D, D→F, E→A, F→B (W5-8's state → this machine's), no mirror. This machine starts in W5-8's state E (W5-8 itself starts in A). The only such map.

W5-8W5-8's row (read 0, read 1)σpredicted row: renamed by σthis machine's actual row
A1RB 1LD→ E1RC 1LF1RC 1LF✓start of W5-8
B0RC 1RC→ C0RD 1RD0RD 1RD✓
C1LA 1RE→ D1LE 1RA1LE 1RA✓
D--- 1LE→ F--- 1LA--- 1LA✓
E1RF 0RC→ A1RB 0RD1RB 0RD✓start of this machine
F0RB 0LF→ B0RC 0LB0RC 0LB✓

Rows aligned by σ: each of W5-8's states X sits next to this machine's state σ(X). ✓ = the actual row equals W5-8's row with every target state renamed by σ; --- (halt) must stay ---. Searched: all 720 renamings × with/without mirror.

Fig P1 · bbchallenge default view: W5-8 and this machine, first 10,000 steps

Same view, same settings on both sides. Look for the same band structure: it starts in W5-8's state E, not A, so the first steps differ; the numbers below read: different orbit, so expect the same kind of bands, not the same picture.

W5-8 (parent), from blank in its A
default view of 1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF
this machine (W5-8c), from blank in its A = W5-8's E
default view of 1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA
bbchallenge-defaultStart blankRows steps 0 → 10,000, top to bottomWindow cells −200..199, left to rightColors 1 0 or unvisited
tools/diagram.py <tm> --as-site (the site's 400×500 canvas)
Fig P2 · Long run, Blaze (speed): W5-8 and this machine, 100 million steps

The macro behaviour, identical settings on both sides: each picture is its machine's own visited span stretched to 800 px, so compare the shape and order of the bands, not their absolute width. Speed mode samples one cell per column, so a one-cell shift can swap orange and white inside a band; compare band edges, not colours.

W5-8 (parent), from blank in its A
blaze view of 1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF
763 rows of 131,072 steps · 1,349 columns, every 8th cell · nonzeros 6,621 at 1e8
this machine (W5-8c), from blank in its A = W5-8's E
blaze view of 1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA
763 rows of 131,072 steps · 1,351 columns, every 8th cell · nonzeros 9,228 at 1e8
bbchallenge-blazeStart blankRows steps 0 → 1e8Window the visited spanColors 1 0 at the sampled cell
Rows: one snapshot per row (Blaze time blocks), stretched to 500 px · Window: every k-th cell sampled, stretched to 800 px
tools/diagram.py <tm> --mode blaze --speed --as-site --steps 1e8

Trajectory numbers, from blank (C core)

○ different orbit: 0.056% narrower at 1e9 (34,023 vs 34,042 cells; nonzeros 20,452 vs 23,290); not a fixed offset: the cell gap reaches -19

stepscells visited (hi − lo + 1)nonzeros
W5-8thisratio (Δ)W5-8thisratio (Δ)
1e53153311.0508 (+16)2852030.7123 (-82)
1e61,0781,0871.0083 (+9)5919321.5770 (+341)
1e73,4423,4290.9962 (-13)2,3503,3811.4387 (+1,031)
1e810,78410,7941.0009 (+10)6,6209,2271.3938 (+2,607)
1e934,04234,0230.9994 (-19)23,29020,4520.8781 (-2,838)

Each machine from blank in its own start state, sim.py C core. Trajectory twin = cells and nonzeros stay within 16 of the parent's at every checkpoint (a fixed offset from a different start, not a growing gap). Cached in img/vs-parent.json (2026-10-16 10:29 PDT); --force recomputes.

3Where it came fromCheck: the template is the one you expect, and the measured reuse (tiles, the reuse figure, diff) agrees with what the README says was kept and changed (quoted).
twin: parent kill's .v W5-8's kill file (kill 27) machines/1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF/1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF.v · detected from status.json
64%of our lines identical to the template
31changed lines
101added lines (ours only)
25template lines dropped
23 / 16 / 12items identical / adapted / new
What the package README says it reused and changed (submission/README.md line 18, Template and what changed), quoted:

The template is the parent's kill file (adapted from busycoq's verify/TranslatedBellv5.v, Module TM1, ending with progress_nonhalt_simple as in verify/Bouncer_v2.v). Its macro rules, S_iter and DC are kept word for word on the parent's table, renamed tmP. New here: the opening init from E;; tape0 (ten cconfig_step pieces cut at left records), opening with its own 18 follows, and the renaming bridge of verify/Skelet15.v: perm : Perm tm tmP phi with busycoq's perm_halts (no flip, since there is no mirror). The file has 458 lines, every lemma top level.

Fig P3 · Reuse of the template, line by line and by name

Top two bars: non-blank lines after the TM string is replaced by <TM> and whitespace is collapsed. Bottom bar: our Definitions/Lemmas/… by name.

ours 364 lines
64% identical · 31 changed · 101 added
template 288 lines
81% kept verbatim · 25 not in ours
our items 51
23 identical · 16 adapted · 12 new · 0 template-only
identicalchanged / adaptedours only (new)template only
Template part: whole file, lines 21–361 (leading comment left out). Ours: lines 27–458 (header comment 1–26 left out). Line diff: Python difflib SequenceMatcher; inside a replaced block, line pairs at least 75% alike count as changed, the rest as removed + added.

Other references found:

Side-by-side diff: template (288 lines) vs ours (364 lines), 157 lines differ; runs of identical lines and long template-only runs folded
identicalequal once each TM string is <TM>changedours onlytemplate only
templateours
22From BusyCoq Require Import Individual62.28From BusyCoq Require Import Individual62.
24Require Import ZArith Lia.30Require Import ZArith Lia.
⋯ 2 identical lines (template 25–26, ours 31–32)
27From BusyCoq Require Import ES_v3.33From BusyCoq Require Import ES_v3.
29Definition tm := Eval compute in (TM_from_str "1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF").35Definition tm := Eval compute in (TM_from_str "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA").
31Notation "c -->* c'" := (c -[ tm ]->* c') (at level 40).
37(** tmP: the parent table. All configurations below are tmP's, in its coordinates. *)
32Notation "c -->+ c'" := (c -[ tm ]->+ c') (at level 40).
38Definition tmP := Eval compute in (TM_from_str "1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF").
40Notation "c -->* c'" := (c -[ tmP ]->* c') (at level 40).
41Notation "c -->+ c'" := (c -[ tmP ]->+ c') (at level 40).
34(** G: the fixed 43-cell gadget at the left end.43(** G: the fixed 43-cell gadget at the left end.
35 Kr n a b c d = K(2n+1, 2a, 2b, 2c+1, 2d): F reads the 0 just left of G. *)44 Kr n a b c d = K(2n+1, 2a, 2b, 2c+1, 2d): F reads the 0 just left of G. *)
⋯ 80 identical lines (template 36–133, ours 45–142)
134 all: lia_refl.143 all: lia_refl.
135Qed.144Qed.
137(** ** Opening (write-up 5)146(** ** Opening (write-up 2)
139 4,097,897 steps from the blank tape to K(1959,34,68,45,18), then 20 macro steps
148 tmP from E;; tape0: 6,950,830 steps to K(2583,70,76,43,18) = Kr 1291 35 38 21 9,
140 to Even(12863,212) = Ev 6431 20.
149 then 18 macro steps to Even(13299,220) = Ev 6649 21 (its own chain, write-up 2.2).
142 The direct run is cut at five left records (where the tape is short in run-length151 The direct run is cut at nine left records (where the tape is short in run-length
143 form), so that no single computation is too large for the kernel. cc_steps runs152 form), so that no single computation is too large for the kernel. cc_steps runs
144 busycoq's list configurations (cconfig_step); cc_steps' nests two counters as153 busycoq's list configurations (cconfig_step); cc_steps' nests two counters as
⋯ 3 identical lines (template 145–147, ours 154–156)
148| O => Some x157| O => Some x
149| S n0 =>158| S n0 =>
150 match cconfig_step tm x with159 match cconfig_step tmP x with
151 | Some x0 => cc_steps n0 x0160 | Some x0 => cc_steps n0 x0
152 | None => None161 | None => None
⋯ 6 identical lines (template 153–159, ours 162–168)
160 induction n; cbn[cc_steps]; intros x H.169 induction n; cbn[cc_steps]; intros x H.
161 - inverts H. apply evstep_refl.170 - inverts H. apply evstep_refl.
162 - pose proof (cconfig_step_spec tm x) as HE.171 - pose proof (cconfig_step_spec tmP x) as HE.
163 destruct (cconfig_step tm x) as [x0|]. 2: congruence.172 destruct (cconfig_step tmP x) as [x0|]. 2: congruence.
164 eapply evstep_step; eauto.173 eapply evstep_step; eauto.
165Qed.174Qed.
⋯ 36 identical lines (template 167–207, ours 176–216)
208 cbn [Str_app]. rewrite !Str_app_assoc. reflexivity.217 cbn [Str_app]. rewrite !Str_app_assoc. reflexivity.
209Qed.218Qed.
211(** Left record at step 694,884. *)220(** Left record at step 694,787. *)
212Definition W1 : list (nat*nat) :=221Definition W1 : list (nat*nat) :=
213 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,746);(2,20);(12,47);(1,20);(6,2);(2,4);(6,2);(1,2)])%nat.
222 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,750);(1,2);(2,18);(2,34);(2,6);(1,2);(1,18);(1,2);(1,20)])%nat.
215(** Left record at step 1,397,500. *)224(** Left record at step 1,378,765. *)
216Definition W2 : list (nat*nat) :=225Definition W2 : list (nat*nat) :=
217 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1102);(1,2);(1,38);(1,2);(7,35);(1,22);(2,4);(1,2);(2,2);(2,4);(1,2)])%nat.226 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1094);(3,50);(2,4);(1,49);(1,20)])%nat.
219(** Left record at step 2,099,620. *)228(** Left record at step 2,077,151. *)
220Definition W3 : list (nat*nat) :=229Definition W3 : list (nat*nat) :=
221 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1374);(2,132);(6,2);(2,4);(6,7);(1,2);(1,2);(1,2)])%nat.230 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1362);(1,2);(2,4);(2,4);(6,71);(1,2);(1,54);(2,20);(1,2);(1,4);(1,2);(3,4);(1,2)])%nat.
223(** Left record at step 2,790,296. *)232(** Left record at step 2,768,045. *)
224Definition W4 : list (nat*nat) :=233Definition W4 : list (nat*nat) :=
225 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1599);(1,94);(1,2);(7,35);(1,20);(2,20);(1,2);(1,4);(1,2);(3,4);(1,2)])%nat.234 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1586);(3,48);(2,4);(1,103);(1,29);(1,2);(1,7)])%nat.
227(** Left record at step 3,493,040. *)236(** Left record at step 3,469,055. *)
228Definition W5 : list (nat*nat) :=237Definition W5 : list (nat*nat) :=
229 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1798);(1,2);(2,58);(2,60);(2,44);(1,2);(1,4);(1,2);(1,4);(6,8);(3,6);(1,2)])%nat.238 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1787);(2,14);(2,126);(2,58);(1,2);(1,4);(1,2);(1,4);(6,4);(11,4);(1,2)])%nat.
240(** Left record at step 4,155,515. *)
241Definition W6 : list (nat*nat) :=
242 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1971);(2,170);(2,4);(6,19);(1,6);(1,2);(2,2);(2,8);(1,2)])%nat.
244(** Left record at step 4,854,845. *)
245Definition W7 : list (nat*nat) :=
246 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2139);(2,142);(2,44);(2,26);(1,2);(1,7)])%nat.
248(** Left record at step 5,552,637. *)
249Definition W8 : list (nat*nat) :=
250 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2295);(1,118);(1,2);(1,52);(6,43);(1,2);(1,4);(6,4);(11,4);(1,2)])%nat.
252(** Left record at step 6,254,851. *)
253Definition W9 : list (nat*nat) :=
254 ([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2442);(3,92);(6,62);(2,2);(2,46);(3,2);(2,2);(2,10);(1,2);(1,6);(2,2);(2,4);(1,2)])%nat.
231Lemma init1:256Lemma init1:
232 c0 -->* LR W1.
257 E;; tape0 -->* LR W1.
233Proof.258Proof.
234 change c0 with (cconfig_to_config ([], [], 0, A)).259 change (E;; tape0) with (cconfig_to_config ([], [], 0, E)).
235 unfold LR.260 unfold LR.
236 apply (cc_steps'_spec 694 1000 884).261 apply (cc_steps'_spec 694 1000 787).
237 vm_compute.262 vm_compute.
238 reflexivity.263 reflexivity.
⋯ 3 identical lines (template 239–242, ours 264–267)
243Proof.268Proof.
244 unfold LR.269 unfold LR.
245 apply (cc_steps'_spec 702 1000 616).270 apply (cc_steps'_spec 683 1000 978).
246 vm_compute.271 vm_compute.
247 reflexivity.272 reflexivity.
⋯ 3 identical lines (template 248–251, ours 273–276)
252Proof.277Proof.
253 unfold LR.278 unfold LR.
254 apply (cc_steps'_spec 702 1000 120).279 apply (cc_steps'_spec 698 1000 386).
255 vm_compute.280 vm_compute.
256 reflexivity.281 reflexivity.
⋯ 3 identical lines (template 257–260, ours 282–285)
261Proof.286Proof.
262 unfold LR.287 unfold LR.
263 apply (cc_steps'_spec 690 1000 676).288 apply (cc_steps'_spec 690 1000 894).
264 vm_compute.289 vm_compute.
265 reflexivity.290 reflexivity.
⋯ 3 identical lines (template 266–269, ours 291–294)
270Proof.295Proof.
271 unfold LR.296 unfold LR.
272 apply (cc_steps'_spec 702 1000 744).297 apply (cc_steps'_spec 701 1000 10).
273 vm_compute.298 vm_compute.
274 reflexivity.299 reflexivity.
275Qed.300Qed.
277Lemma init6:302Lemma init6:
278 LR W5 -->* Kr 979 17 34 22 9.
303 LR W5 -->* LR W6.
304Proof.
305 unfold LR.
306 apply (cc_steps'_spec 686 1000 460).
307 vm_compute.
308 reflexivity.
309Qed.
311Lemma init7:
312 LR W6 -->* LR W7.
313Proof.
314 unfold LR.
315 apply (cc_steps'_spec 699 1000 330).
316 vm_compute.
317 reflexivity.
318Qed.
320Lemma init8:
321 LR W7 -->* LR W8.
322Proof.
323 unfold LR.
324 apply (cc_steps'_spec 697 1000 792).
325 vm_compute.
326 reflexivity.
327Qed.
329Lemma init9:
330 LR W8 -->* LR W9.
331Proof.
332 unfold LR.
333 apply (cc_steps'_spec 702 1000 214).
334 vm_compute.
335 reflexivity.
336Qed.
338Lemma init10:
339 LR W9 -->* Kr 1291 35 38 21 9.
279Proof.340Proof.
280 unfold LR.341 unfold LR.
281 rewrite Kr_cc.342 rewrite Kr_cc.
282 apply (cc_steps'_spec 604 1000 857).343 apply (cc_steps'_spec 695 1000 979).
283 vm_compute.344 vm_compute.
284 reflexivity.345 reflexivity.
285Qed.346Qed.
287Lemma init:348Lemma init:
288 c0 -->* Kr 979 17 34 22 9.
349 E;; tape0 -->* Kr 1291 35 38 21 9.
289Proof.350Proof.
290 follow init1.351 follow init1.
⋯ 2 identical lines (template 291–292, ours 352–353)
293 follow init4.354 follow init4.
294 follow init5.355 follow init5.
295 apply init6.
356 follow init6.
357 follow init7.
358 follow init8.
359 follow init9.
360 apply init10.
296Qed.361Qed.
298Lemma opening:363Lemma opening:
299 Kr 979 17 34 22 9 -->* Ev 6431 20.
364 Kr 1291 35 38 21 9 -->* Ev 6649 21.
300Proof.365Proof.
301 unfold Ev.366 unfold Ev.
302 follow (S_iter 4 979 0 31 19 8).367 follow (S_iter 8 1291 2 35 18 8).
303 follow (TO' 1075 1 4 8).368 follow (T6' 1483 13 4 16).
304 follow (S_iter 4 1369 2 45 14 8).369 follow (S_iter 7 1779 1 53 14 8).
305 follow (T6' 1465 15 0 8).
370 follow (TE' 1947 26 13).
306 follow (S_iter 6 1761 3 45 14 8).371 follow (S_iter 6 2225 2 38 45 8).
307 follow (T8' 1905 16 11).
372 follow (T6' 2369 12 31 12).
308 follow (S_iter 5 2175 2 40 41 8).
373 follow (S_iter 13 2665 3 49 14 8).
309 follow (T6' 2295 12 27 10).
374 follow (T8' 2977 34 25).
310 follow (S_iter 12 2591 3 47 14 8).375 follow (S_iter 10 3247 0 40 55 8).
311 follow (T8' 2879 30 23).
376 follow (TO' 3487 22 40 20).
312 follow (S_iter 9 3149 0 40 53 8).
377 follow (S_iter 18 3781 3 57 14 8).
313 follow (TO' 3365 20 38 18).
378 follow (T8' 4213 52 35).
314 follow (S_iter 17 3659 3 55 14 8).
379 follow (S_iter 14 4483 2 40 65 8).
315 follow (T8' 4067 48 33).
380 follow (T6' 4819 30 51 28).
316 follow (S_iter 13 4337 2 40 63 8).
381 follow (S_iter 23 5115 1 65 14 8).
317 follow (T6' 4649 28 49 26).
382 follow (TE' 5667 70 45).
318 follow (S_iter 22 4945 1 63 14 8).383 follow (S_iter 17 5945 2 38 77 8).
319 follow (TE' 5473 66 43).
384 follow (T6' 6353 34 63 34).
320 follow (S_iter 16 5751 2 38 75 8).
321 follow (T6' 6135 32 61 32).
322 finish.385 finish.
323Qed.386Qed.
325Lemma nonhalt: ~halts tm c0.388Lemma nonhaltP: ~halts tmP (E;; tape0).
326Proof.389Proof.
327 eapply multistep_nonhalt.390 eapply multistep_nonhalt.
328 1: { follow init. apply opening. }391 1: { follow init. apply opening. }
329 apply (progress_nonhalt_simple tm (nat*nat) (fun p => Ev (fst p) (snd p)) (6431,20)).392 apply (progress_nonhalt_simple tmP (nat*nat) (fun p => Ev (fst p) (snd p)) (6649,21)).
330 intros [N X].393 intros [N X].
331 exists (48*X+716+N, 4+X).394 exists (48*X+716+N, 4+X).
332 apply DC.395 apply DC.
333Qed.396Qed.
398(** ** The relation (write-up 1)
400 phi = sigma^-1 maps this machine's states to tmP's. Every cell (q, s) of tm is
401 tmP's cell (phi q, s) with every target state t replaced by phi t (same symbol,
402 same move), so tm and tmP are equal up to renaming, and phi A = E. *)
403Definition phi (q : Q) : Q :=
404 match q with
405 | A => E | B => F | C => B | D => C | E => A | F => D
406 end.
408Lemma perm: Perm tm tmP phi.
409Proof.
410 split.
411 - intros [] [] H; cbn in *; try discriminate; reflexivity.
412 - intros [] [] s' d q' H; cbn in *; inversion H; subst; reflexivity.
413Qed.
415Lemma nonhalt: ~halts tm c0.
416Proof.
417 intros H.
418 change (halts tm (A;; tape0)) in H.
419 exact (nonhaltP (perm_halts _ _ _ _ _ perm H)).
420Qed.
335(*422(*
3361RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF (only D0 undefined; D is entered only by A1 = 1LD)4231RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA (only F0 undefined; F is entered only by E1 = 1LF)
424 = tmP 1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF with its states renamed (no mirror)
425 sigma = A->E, B->C, C->D, D->F, E->A, F->B (phi = sigma^-1); start A = sigma(E)
427relation c --tmP--> c' iff sigma c --tm--> sigma c' (same tape and head, state q -> sigma q)
428 sigma (E;; tape0) = c0, so tm's run is sigma of tmP's run from E;; tape0
430below, configurations are tmP's (left records); tm sees the same tapes with state sigma q (K: B instead of F)
338G = 0^2 1^2 0 1^4 0 1^2 0 1^6 0 1^2 0 1^5 0^2 1^2 0 1^5 0 1^2 0^2 (43 cells)432G = 0^2 1^2 0 1^4 0 1^2 0 1^6 0 1^2 0 1^5 0^2 1^2 0 1^5 0 1^2 0^2 (43 cells)
339K(n,a,b,c,d) = 0^inf <F G 1^n 0 1^a 0110 1^b 0^6 1^c 0110 1111 0^6 1^d 0110 0110 111 0^inf433K(n,a,b,c,d) = 0^inf <F G 1^n 0 1^a 0110 1^b 0^6 1^c 0110 1111 0^6 1^d 0110 0110 111 0^inf
434sigma K = 0^inf <B G 1^n 0 1^a 0110 1^b 0^6 1^c 0110 1111 0^6 1^d 0110 0110 111 0^inf
340Even(n,x) = K(n, x, (x+76)/2, 35, 18)435Even(n,x) = K(n, x, (x+76)/2, 35, 18)
341Kr n a b c d = K(2n+1, 2a, 2b, 2c+1, 2d) Ev N X = Even(2N+1, 8X+52)436Kr n a b c d = K(2n+1, 2a, 2b, 2c+1, 2d) Ev N X = Even(2N+1, 8X+52)
438tmP's rules (tmP's coordinates):
343R1 C> 1 1 --> 1 0 C> 2 steps C1 E1439R1 C> 1 1 --> 1 0 C> 2 steps C1 E1
344R2b 0 1 0 B> 0 0 0 --> 0 B> 0 0 0 1 1 12 steps B0 C0 A0 B1 C0 A1 D1 E0 F1 F1 F1 F0440R2b 0 1 0 B> 0 0 0 --> 0 B> 0 0 0 1 1 12 steps B0 C0 A0 B1 C0 A1 D1 E0 F1 F1 F1 F0
⋯ 9 identical lines (template 345–355, ours 441–451)
356 n odd, x = 4 mod 8, x >= 52; 3x+201 trips452 n odd, x = 4 mod 8, x >= 52; 3x+201 trips
357 (Rocq: Ev N X -->+ Ev (48X+716+N) (X+4))453 (Rocq: Ev N X -->+ Ev (48X+716+N) (X+4))
359start c0 -->(4,097,897) K(1959,34,68,45,18) --(S^4 TO S^4 T6 S^6 T8 S^5 T6 S^12 T8 S^9 TO S^17 T8 S^13 T6 S^22 TE S^16 T6)-->
455start E;; tape0 -(6,950,830)-> K(2583,70,76,43,18) --(S^8 T6 S^7 TE S^6 T6 S^13 T8 S^10 TO S^18 T8 S^14 T6 S^23 TE S^17 T6)-->
360 Even(12863,212) at step 153,126,993; then DC forever (x = 212, 244, 276, ...)456 Even(13299,220) at step 163,638,058; then DC forever (x = 220, 252, 284, ...)
457 (the same for tm from c0, through sigma)
361*)458*)
4Proof outlineCheck: the new items (green) carry the argument; the names read like the proof.md rules.

51 items in 1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v (458 lines): 31 Lemma, 17 Definition, 3 Fixpoint. Tags against the template: identical = same name and same text once each file's own TM string is <TM> (marked "except the TM string" when that is the only difference); adapted = same name, different text; new = no item of that name in the template part.

#kindnamestatement (no proof body)linevs template
1Definitiontm
Definition tm := Eval compute in (TM_from_str "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA").
L35identicalexcept the TM string
2DefinitiontmP
Definition tmP := Eval compute in (TM_from_str "1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF").
L38new
3DefinitionG
Definition G : list sym :=
[0;0;1;1;0;1;1;1;1;0;1;1;0;1;1;1;1;1;1;0;1;1;0;1;1;1;1;1;0;0;1;1;0;1;1;1;1;1;0;1;1;0;0].
L45identical
4DefinitionKr
Definition Kr n a b c d :=
0inf <{{F}} G *> [1] *> [1;1]^^n *> [0] *> [1;1]^^a *> [0;1;1;0] *> [1;1]^^b
  *> [0;0;0;0;0;0] *> [1] *> [1;1]^^c *> [0;1;1;0;1;1;1;1;0;0;0;0;0;0] *> [1;1]^^d
  *> [0;1;1;0;0;1;1;0;1;1;1] *> 0inf.
L48identical
5LemmaS_step
Lemma S_step n a b c d:
Kr n (5+a) (3+b) (3+c) (1+d) -->+ Kr (24+n) (1+a) (5+b) (3+c) (3+d).
L59identical
6LemmaTE
Lemma TE n b d:
Kr n 2 (44+b) 17 (10+d) -->+ Kr (278+n) (1+b) 41 (35+d) 9.
L66identical
7LemmaTO
Lemma TO n b c d:
Kr n 1 (41+b) (18+c) (9+d) -->+ Kr (294+n) (14+b+c) (40+d) 17 9.
L73identical
8LemmaT6
Lemma T6 n b c d:
Kr n 3 (41+b) (17+c) (9+d) -->+ Kr (296+n) (13+b+c) (40+d) 17 9.
L80identical
9LemmaT8
Lemma T8 n b d:
Kr n 4 (44+b) 17 (10+d) -->+ Kr (270+n) (7+b) 43 (33+d) 9.
L87identical
10LemmaS_step'
Lemma S_step' n a b c d:
Kr n (5+a) (3+b) (3+c) (1+d) -->* Kr (24+n) (1+a) (5+b) (3+c) (3+d).
L93identical
11LemmaTE'
Lemma TE' n b d:
Kr n 2 (44+b) 17 (10+d) -->* Kr (278+n) (1+b) 41 (35+d) 9.
L97identical
12LemmaTO'
Lemma TO' n b c d:
Kr n 1 (41+b) (18+c) (9+d) -->* Kr (294+n) (14+b+c) (40+d) 17 9.
L101identical
13LemmaT6'
Lemma T6' n b c d:
Kr n 3 (41+b) (17+c) (9+d) -->* Kr (296+n) (13+b+c) (40+d) 17 9.
L105identical
14LemmaT8'
Lemma T8' n b d:
Kr n 4 (44+b) 17 (10+d) -->* Kr (270+n) (7+b) 43 (33+d) 9.
L109identical
15LemmaS_iter
Lemma S_iter k: forall n a b c d,
Kr n (4*k+1+a) (3+b) (3+c) (1+d) -->* Kr (24*k+n) (1+a) (2*k+3+b) (3+c) (2*k+1+d).
L114identical
16DefinitionEv
Definition Ev N X := Kr N (4*X+26) (2*X+32) 17 9.
L128identical
17Lemmaprog_eq
Lemma prog_eq c1 c2 c1' c2':
c1 -->+ c2 -> c1 = c1' -> c2 = c2' -> c1' -->+ c2'.
L130identical
18LemmaDC
Lemma DC N X:
Ev N X -->+ Ev (48*X+716+N) (4+X).
L134identical
19Fixpointcc_steps
Fixpoint cc_steps (n:nat) (x:cconfig) : option cconfig :=
match n with
| O => Some x
| S n0 =>
  match cconfig_step tmP x with
  | Some x0 => cc_steps n0 x0
… +3 lines
L155adapted
20Lemmacc_steps_spec
Lemma cc_steps_spec n x y:
cc_steps n x = Some y -> cconfig_to_config x -->* cconfig_to_config y.
L165adapted
21Fixpointcc_steps'
Fixpoint cc_steps' (n1 n2 n3:nat) (x:cconfig) : option cconfig :=
match n1 with
| O => cc_steps n3 x
| S n1 =>
  match cc_steps n2 x with
  | Some x0 => cc_steps' n1 n2 n3 x0
… +3 lines
L176identical
22Lemmacc_steps'_spec
Lemma cc_steps'_spec n1 n2 n3 x y:
cc_steps' n1 n2 n3 x = Some y -> cconfig_to_config x -->* cconfig_to_config y.
L186identical
23Fixpointrl
Fixpoint rl (xs : list (nat*nat)) : list sym :=
match xs with
| [] => []
| (z,o)::t => [0]^^z ++ [1]^^o ++ rl t
end.
L199identical
24DefinitionLR
Definition LR (xs : list (nat*nat)) : Q * tape := cconfig_to_config ([], rl xs, 0, F).
L206identical
25DefinitionKr_list
Definition Kr_list n a b c d : list sym :=
G ++ [1] ++ [1;1]^^n ++ [0] ++ [1;1]^^a ++ [0;1;1;0] ++ [1;1]^^b
  ++ [0;0;0;0;0;0] ++ [1] ++ [1;1]^^c ++ [0;1;1;0;1;1;1;1;0;0;0;0;0;0] ++ [1;1]^^d
  ++ [0;1;1;0;0;1;1;0;1;1;1].
L208identical
26LemmaKr_cc
Lemma Kr_cc n a b c d:
Kr n a b c d = cconfig_to_config ([], Kr_list n a b c d, 0, F).
L213identical
27DefinitionW1
Definition W1 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,750);(1,2);(2,18);(2,34);(2,6);(1,2);(1,18);(1,2);(1,20)])%nat.
L221adapted
28DefinitionW2
Definition W2 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1094);(3,50);(2,4);(1,49);(1,20)])%nat.
L225adapted
29DefinitionW3
Definition W3 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1362);(1,2);(2,4);(2,4);(6,71);(1,2);(1,54);(2,20);(1,2);(1,4);(1,2);(3,4);(1,2)])%nat.
L229adapted
30DefinitionW4
Definition W4 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1586);(3,48);(2,4);(1,103);(1,29);(1,2);(1,7)])%nat.
L233adapted
31DefinitionW5
Definition W5 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1787);(2,14);(2,126);(2,58);(1,2);(1,4);(1,2);(1,4);(6,4);(11,4);(1,2)])%nat.
L237adapted
32DefinitionW6
Definition W6 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,1971);(2,170);(2,4);(6,19);(1,6);(1,2);(2,2);(2,8);(1,2)])%nat.
L241new
33DefinitionW7
Definition W7 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2139);(2,142);(2,44);(2,26);(1,2);(1,7)])%nat.
L245new
34DefinitionW8
Definition W8 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2295);(1,118);(1,2);(1,52);(6,43);(1,2);(1,4);(6,4);(11,4);(1,2)])%nat.
L249new
35DefinitionW9
Definition W9 : list (nat*nat) :=
([(2,2);(5,2);(6,4);(6,4);(1,2);(1,4);(1,2);(2,2442);(3,92);(6,62);(2,2);(2,46);(3,2);(2,2);(2,10);(1,2);(1,6);(2,2);(2,4);(1,2)])%nat.
L253new
36Lemmainit1
Lemma init1:
E;; tape0 -->* LR W1.
L256adapted
37Lemmainit2
Lemma init2:
LR W1 -->* LR W2.
L266adapted
38Lemmainit3
Lemma init3:
LR W2 -->* LR W3.
L275adapted
39Lemmainit4
Lemma init4:
LR W3 -->* LR W4.
L284adapted
40Lemmainit5
Lemma init5:
LR W4 -->* LR W5.
L293adapted
41Lemmainit6
Lemma init6:
LR W5 -->* LR W6.
L302adapted
42Lemmainit7
Lemma init7:
LR W6 -->* LR W7.
L311new
43Lemmainit8
Lemma init8:
LR W7 -->* LR W8.
L320new
44Lemmainit9
Lemma init9:
LR W8 -->* LR W9.
L329new
45Lemmainit10
Lemma init10:
LR W9 -->* Kr 1291 35 38 21 9.
L338new
46Lemmainit
Lemma init:
E;; tape0 -->* Kr 1291 35 38 21 9.
L348adapted
47Lemmaopening
Lemma opening:
Kr 1291 35 38 21 9 -->* Ev 6649 21.
L363adapted
48LemmanonhaltP
Lemma nonhaltP: ~halts tmP (E;; tape0).
L388new
49Definitionphi
Definition phi (q : Q) : Q :=
match q with
| A => E | B => F | C => B | D => C | E => A | F => D
end.
L403new
50Lemmaperm
Lemma perm: Perm tm tmP phi.
L408new
51Lemmanonhalt
Lemma nonhalt: ~halts tm c0.
L415adapted
5What a maintainer readsCheck: the rule table below is what the .v proves, and proof.md / README read cleanly for a maintainer.
submission/proof.md line 123: 1.4 The parent's rules carry over

Each rule of the parent is an exact run of the parent's table: the shift rules R1 and R2b, the macro rules S, TE, TO, T6 and T8 (P§1, P§3). By Lemma R each is an exact run of this machine too, with the same domain and the same step count.

In particular the double cycle (P§4) holds here in the form

sigma Even(n, x)  -->  sigma Even(n + 12x + 808, x + 32)        (n odd, x = 4 mod 8, x >= 52)

From here on, configurations are written in the parent's coordinates, as members K(...) of the parent's table run from E. On this machine they are read through σ.

6FamilyCheck: related machines are killed together or have a reason to be left open.

3 machines, 3 killed, 0 not. Family links: status.json parent, same transition table with another start (tools/dashboard.py), targeting.md follow-on rows, ledger "= twin" notes. A machine string named in a .v header / proof.md / notes.md is listed but does not make a family.

whomachinestatusrelation to this kill
W5-8 kill 271RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF✓Killed: never haltsparent link; = W5-8c's table, run from state E; named in W5-8c's .v header; named in W5-8c's proof.md; named in W5-8c's notes.md · review · compared side by side above · mechanism
W5-8b kill 281RB1LE_1LC1RD_0LA1LA_---1RE_1LF0LA_0LC0RF✓Killed: never halts= W5-8c's table mirrored, run from state D; named in W5-8c's proof.md; named in W5-8b's notes.md · review
W5-8c kill 291RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA✓Killed: never haltsthis kill
7ChecklistCheck: every ✓ is computed; the two ○ are yours to decide; an amber ! is an optional check that did not finish.
  • ✓
    Machine string exact
    the .v literal == holdout list line 672 byte for byte
  • ✓
    Statement is ~halts tm c0
    parsed from the .v and confirmed by check_kill (theorem_text, theorem_rocq)
  • ✓
    No axioms beyond baseline
    0 assumption(s); tools/assumptions_baseline.txt allows only functional_extensionality_dep
  • ✓
    coqchk finished (optional)
    coqchk pass in 64.86 s
  • ✓
    .v hash matches the checked hash
    .v = checked sha256 8c597d875a11…; submission/ copy = checked sha256 8c597d875a11…
  • ✓
    No repo-local paths in the .v
    comments name no path of ours (vendor/, machines/, tools/, rocq/, scripts/, reports/, atlas/, data/, journal/, /home/); busycoq's own verify/X.v is fine: none in the .v or the submission/ copy
  • ✓
    Public write-up is clean
    tools/writeup_lint.py on submission/proof.md: 0 error(s)
  • ○
    proof.md reviewed by Dennis (Checkpoint B)
    no Checkpoint B note from Dennis found
    • notes.md L61: - Checkpoint B (Dennis, non-blocking).
    • proof.md L286: ## 8. Checkpoint B (Dennis)
  • ○
    Family posted together?
    2 other kill(s) in the family: W5-8, W5-8b; the Discord draft names 2 of them

Generated by tools/killreview.py at 2026-10-16 13:29 PDT in 0.0 s from the files linked above; nothing in this review is hand-written except the box “How we proved it never halts” (above), which quotes how_proved.md. Re-run: python3 -B tools/killreview.py 1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA

Files

machines/<tm>/: 11 entries · raw notes, status, scripts, images

namesizechanged
notes.md ↓9.0 KB2026-10-13 06:39
proof.md ↓17 KB2026-10-13 06:23
how_proved.md ↓1.6 KB2026-10-14 10:51
status.json ↓5.3 KB2026-10-16 10:28
1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v ↓15 KB2026-10-13 06:27
img/5 items2026-10-16 10:29
rocq/12 items2026-10-13 06:32
scripts/7 items2026-10-13 06:18
submission/6 items2026-10-14 09:18
work/13 items2026-10-13 06:23
check_proof.py ↓33 KB2026-10-13 06:13
status.json in full
{
 "tm": "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA",
 "label": "W5-8c",
 "status": "KILLED_NONHALT",
 "stage": "done",
 "updated": "2026-10-13",
 "reason": "check_kill PASS, independently re-verified",
 "confidence": "high",
 "parent": "1RB1LD_0RC1RC_1LA1RE_---1LE_1RF0RC_0RB0LF",
 "parent_note": "W5-8 (740 line 214), KILLED_NONHALT 2026-10-13 (check_kill PASS, sha256 beef54a5..cf48, independently re-verified); mirrored sibling W5-8b (740 line 418) also KILLED_NONHALT",
 "relation": "sibling of W5-8: W5-8's table with states renamed sigma = A->E, B->C, C->D, D->F, E->A, F->B (no mirror; the only map of 720 x 2), started in W5-8's state E; this run = sigma of the parent's table run from 0^inf E> 0^inf on the same tape (Lemma R)",
 "holdout_line_740": 636,
 "checks": {
  "byte_exact_740": "line 636, exactly once, no CR",
  "claims": "none: sheet Results row = class 'Bouncer + Chaotic Edge' only (no status/notes/sources/done-by), level-0 row status '-', classifications only in the 'Bouncer + Chaotic Edge' column; Discord only mxdys's UBRRBA_TODO list (data/discord/2026-08-24_mxdys_ubrrba_86.txt line 87, next to W5-8b (85) and W5-8 (86)), an acceleration to-do list, not a claim",
  "upstream_9cf9e88": "not proved: no .v in the 9cf9e88 verify tree contains any of the 1,440 renaming/mirror variants of the table; tools/holdouts.py solved: absent from verify/",
  "canon": "canon(this, start A) == canon(parent, start E) (check_proof REL and the scratchpad starts.py canon: 1LB0LC_0LD0RB_1RE1LA_0LC1LC_1LD1RF_---1RA for both)",
  "eqv_1590": "singleton group (line 1879 of 2026-10-07_eqv_1590.txt)"
 },
 "opening": "blank --(6,950,830 direct steps)--> sigma K(2583,70,76,43,18) (state B; first K-shaped left record, any state), then 18 macro steps by the parent's rules S^8 T6 S^7 TE S^6 T6 S^13 T8 S^10 TO S^18 T8 S^14 T6 S^23 TE S^17 T6 (own chain, not the parent's) -> sigma Even(13299,220) at step 163,638,058; from there the parent's double cycle (x = 220 + 32j; no adjusted invariant)",
 "proof_md": "proof.md (working delta proof); public write-up submission/proof.md (writeup_lint 0/0) + submission/parent-proof.md",
 "check_proof": {
  "result": "PASS",
  "claims": "83/83 seed 1 default (105 s), 83/83 seed 2 default (106 s), 83/83 seed 1 --full (373 s; orbit to 1e10: 30 even/odd run starts, 1,606 K-shaped left records all predicted); each re-ran the parent's check_proof.py in the same mode (196/196); DOC/OPEN/INV/PLAN re-run 39/39 after the last prose pass",
  "out": [
   "work/check_proof_seed1.log",
   "work/check_proof_seed2.log",
   "work/check_proof_full_seed1.log",
   "work/parent_check_proof_default_seed1.log",
   "work/parent_check_proof_default_seed2.log",
   "work/parent_check_proof_full_seed1.log",
   "work/check_proof_doc_after_prose.log"
  ],
  "teeth": "n=2585 in the opening start -> 9 checks FAIL (OPEN, PLAN, DOC); wrong sigma -> REL (4) + DOC fail; S^7 instead of S^8 in row 1 -> 6 OPEN checks fail; one wrong step number in proof.md -> DOC fails; one wrong follow argument -> PLAN fails",
  "cross_check": "C K-scanner (scripts/kscan.c) and an independent regex scan (lrec.c + Python) give the same 126 K-shaped left records up to 163,638,058 for the parent's table from E and for this machine from A; tools/sim.py events: first K-shaped left record at 6,950,830"
 },
 "open_lemmas": [],
 "next": "post (Dennis): after W5-8 (214) and W5-8b (418), as a reply; first fix their drafts' '636 not formalized' sentences",
 "workflow_name": "W5-8c",
 "template": "W5-8b's kill file (parent development on tmP + Perm bridge as verify/Skelet15.v), without flip",
 "kill": {
  "file": "1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_---1LA.v",
  "lines": 458,
  "sha256": "8c597d875a1125131e6a9f88fe63fc994b55df1ccecaba84b2c1d29909d00584",
  "route": "parent's kill file with its table as tmP; init E;; tape0 -->* Kr 1291 35 38 21 9 (6,950,830 steps, ten cconfig_step pieces at left records); opening = 18 follows to Ev 6649 21; nonhaltP by progress_nonhalt_simple; perm : Perm tm tmP phi + perm_halts (no flip)",
  "check_kill": "PASS round 1 (2026-10-13T13:28:27Z, rocq/check_kill_r1.log); audit PASS (2026-10-13T13:30:46Z); fresh PASS 2026-10-13T13:33:44Z (rocq/check_kill_final.log): compile 7.84 s native, coqchk -norec pass 64.86 s, 0 assumptions",
  "submission": "submission/ (.v, proof.md, parent-proof.md, check_kill.txt, README.md, discord.md; not posted)"
 },
 "alias_labels": [
  "W5-8e"
 ],
 "redispatch_2026-10-13": "re-dispatched as W5-8e (delta-proof task); already KILLED_NONHALT as W5-8c, nothing redone. Re-checked: byte-exact 740 line 636 (once, no CR); canon(this,A)==canon(parent,E)=1LB0LC_0LD0RB_1RE1LA_0LC1LC_1LD1RF_---1RA (E the only parent start that matches); .v sha256 8c597d87..0584 unchanged (= submission copy = rocq/check_kill_final.log PASS); check_proof logs 83/83 (seeds 1,2 default; seed 1 --full); upstream 9cf9e88 verify tree has no file with this string, the parent's or W5-8b's; no sheet/Discord snapshot newer than this status (newest 2026-10-09)",
 "pr": "https://github.com/ccz181078/busycoq/pull/27",
 "pr_state": "merged",
 "pr_file": "verify/M_1RB0RD_0RC0LB_0RD1RD_1LE1RA_1RC1LF_HHH1LA.v",
 "pr_opened": "2026-10-15T22:48:31Z",
 "pr_comments": 0,
 "pr_head_sha": "94903f626ae503be6be39ac40e53038ab98ac4d8",
 "posted": "2026-10-15 (Discord; user confirmed sent)",
 "pr_merged_at": "2026-10-16T07:09:03Z",
 "pr_merged_by": "ccz181078"
}