BB(6) hunt

1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA

#7local proof 16Claimed by someone elseBell eats counterbbchallenge ↗Explorerparent: #30

How we proved it never halts

#30's proof in a mirror, from a different start

#30 keeps a binary counter fed by a marker that bounces through a run of budget blocks. Each epoch begins by tidying a messy leftover in the counter, and #30's proof shows that the tidying costs only about the square root of the budget, so the budget never runs out mid-cleanup. This machine is #30's table seen in a mirror, with the state letters renamed. So its tape is #30's reversed: the counter is left of the head, and right of it come budget blocks 110 110 … 110, the 0 marker and used blocks 011 011 … 011.

What differs is the start. From the blank tape this machine acts like #30's table started in its fifth state, so it takes a different opening. Its first four epochs fall outside #30's proof, and in two of them the machine eats an untidy counter that simply happens not to halt. The fifth begins cleanly: at step 1,114 it is a tidy epoch start with budget 17.

From there 687 epochs are computed exactly, until the budget reaches 17,724 and the condition that #30's proof carries from epoch to epoch holds. After that, #30's argument carries it forever, so the missing table entry (#30's own, seen in the mirror) is never reached.

The Rocq proof keeps #30's development word for word, as a proof about #30's table. New are the 1,114-step opening from #30's fifth state, by verified simulation, the 687-epoch computation, and the check of #30's condition at its end. busycoq's mirror and renaming theorems then carry the result over to this machine.

#16local proof number
1,790lines of Rocq
17 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

Claimed by someone else

We proved this machine locally, but our proof was still unsubmitted when we found it already covered upstream.

Submit completed proofs early. A local proof does not secure an upstream claim.

Upstream proof ↗ · Recorded timeline

What the timing evidence establishes

This describes upstream credit, not who first discovered the mathematics. The records do not establish adoption of our proof, first public push time, or whether an earlier submission would have secured credit.

Overview

In one sentence

BECv1 tm10 twin (E1 differs): spaced-digit counter eats a unary run; 7 rules validated, EatDigit open

Submitted mechanism The parent's table, from another start. Flip every direction (L↔R) and rename the states A, B, C, D, E, F to E, A, B, F, C, D, and you get the parent's table, all 12 entries. This is the only one of the 720 × 2 maps that does this. The machine starts in A, which is the parent's E, so it runs the parent's table from 0^inf E> 0^inf: a different orbit of the same epoch map. (submission/README.md, Mechanism)

Upstream
The blank-start machine never halts: PR_BEC.v.TM1 ↗. We also have a local proof. This upstream addition is separate from our merged submissions; adoption credit is not established.
Rocq proof
check_kill PASS · first Oct 11 00:08
1,790 lines · 90 KB .v · compile 17.3 s · coqchk pass · 0 axioms · PASS Oct 11 00:08 · from #30
· the .v file
Automatic review
6 of 6 checks passtemplate: #30's kill file (kill 15) (twin: parent kill's .v) · details in Proof →
Class
Bell eats counterours: Bell eats counter (sheet) · ours adds: BECv1 tm10 with a broken carry (spaced-digit binary counter + unary marker) · med confidence
On the list
not on BB6_holdouts_663.txt (line 381 of the previous list) · historical 740 line 381
#7eqv ×1sim 1e15
Derived from
1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC#30 Kill claimed
Your calls on file 4
2026-10-10 · closure_ctl
Make the next stage a closure stage (exhaustive L4 closure check plus a CTL certificate attempt), hand-derive the stale-1 cascade rules first, or park? (Dennis: go with all recommendations (2026-10-10))
2026-10-10 · flush_lemma
Fund one stage for the flush lemma (cap the digits right of the transient, bound the flush time by the counter length, show the unary outgrows it), or park? (auto-applied: Claude's recommendation, under Dennis's standing instruction 'do your recommendations and continuously orchestrate' (2026-10-10, while he was away). Override any time.)
2026-10-10 · struct_invariant
Fund one stage for a hand-written structural invariant (at most one transient, plus the cascade rules, checked exhaustively), run only a bigger background CTL sweep, or park? (auto-applied: Claude's recommendation, under Dennis's standing instruction 'do your recommendations and continuously orchestrate' (2026-10-10, while he was at lunch). Override any time.)
2026-10-11 · superseded
Keep #7 parked until #28's flush lemma is proved and then port it (value-form bound), fund a value-form flush stage here now, or park for good? (Superseded 2026-10-11: #7 is #30's table started in #30's state E; killed via a delta proof from kill #30 (check_kill PASS).)

Mechanism

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

How it works: 3 notes
  • Tape: a counter on the left, then a long run of 110 blocks holding a 2-cell 00 marker.
  • Each round: A sweeps right to the marker, moves it 1 block left, B sweeps back, counter +1 (same as BECv1 tm10).
  • Unlike tm10 (E1), digits are 111110 blocks spread through the 110 run; the marker eats the lowest digit on arrival.

Figures for Checkpoint A

Fig 1 · One row per left entry into EQ1viewer ↗

One row each time E is entered moving left. Follow one dark diagonal (the 00 marker) down the rows.

One row per left entry into E
bbchallenge-defaultStart blankRows every entry into state E moving leftWindow cells 0..435, 1 px = 0.5 cellsColors 1 0 or unvisited head (last move right/left)
Rows: 1,456 rows to step 300,000, 7 to 984 steps apart (median 45), so several rows per round · Window: (each cell 2x2 px); counted from each row's leftmost visited cell, i.e. the left edge is pinned at x = 0 (frame = left)
Fig 2 · Left records, left edge pinnedQ2viewer ↗

Left edge pinned. Follow the white streaks: where each one starts and where it ends.

Left records, left edge pinned
bbchallenge-defaultStart blankRows left records onlyWindow cells 0..149, 1 px = 0.5 cellsColors 1 0 or unvisited head (last move right/left)
Rows: the start, then one row per new leftmost cell (1,424 rows to step 10,000,000; not evenly spaced in time) · Window: (each cell 2x2 px); counted from each row's leftmost visited cell (frame = left), so only the 150 leftmost cells are shown and the rest of the tape is cut off
More figures (3)Fig 3–5: Blaze, 10 million steps · bbchallenge default view, first 10,000 steps · Closure escape: an L4 word halts
Fig 3 · Blaze, 10 million stepsviewer ↗

Bell-shaped left edge; each horizontal band is an epoch, ending when a digit is eaten.

Blaze, 10 million steps
bbchallenge-blazeStart blankRows Blaze time blocks of 16,384 stepsWindow cells -1423..77, 1 px = 1.88 cellsColors 0 1 1 only part of the time (or in part of the cells) of that pixel's block
Rows: (each averaged), 611 blocks to step 1e7, stretched to 500 px (1 px = about 20,000 steps) · Window: Blaze image: 1 column per cell, 1,501 columns stretched to 800 px · Colors: no head
Fig 4 · bbchallenge default view, first 10,000 stepsviewer ↗

The site's view of the first rounds: sweeps and the marker.

bbchallenge default view, first 10,000 steps
bbchallenge-defaultStart blankRows every step 0..9,999Window cells -200..199, 1 px = 1 cellColors 1 0 or unvisited head (last move right/left)
Rows: squeezed into 500 px by the site's bilinear filter: px row y blends steps 20y+9 and 20y+10, so it is effectively one sample every 20 steps
Fig 5 · Closure escape: an L4 word halts

Follow the head's zig-zag left through the counter: the cascade bounces, then F reads 0 at the bottom.

Closure escape: an L4 word halts
bbchallenge-defaultStart constructed tape (below)Rows every step: 198 rowsWindow cells -30..11, 1 px = 0.33 cellsColors 1 0 or unvisited head (last move right/left)
Start: 0∞ 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 <E 1 1 0 1 1 0 0 0 1 1 0 0∞ · Rows: step 0 to the halt at step 197 · Window: each cell 3x3 px
Rules (7/7 validated)exact tape rewrites the proof will formalize, each re-checked by simulation
rulefrom ⟶ tocasesstepschecked
R1 A-sweep (=BECv1 HR1)
l A> (011)n r
⟶ l (010)n A> r
—5n✓60/60
R2 B-sweep back (=HR3)
l (010)n <B r
⟶ l <B (011)n r
—3n✓60/60
R3 marker step (=HR2)
l A> 011 00 011 r
⟶ l <B 00 011 011 r
—11✓60/60
R4 marker birth at right end (=HE2)
l 010 A> 0∞
⟶ l <B 00 011 0∞
—6✓60/60
L0 round, low digit 0->1
l 0 <E 11 (011)a+1 00 (011)b 0∞
⟶ l 1 <E 11 (011)a 00 (011)b+1 0∞
any left context l8a+16✓60/60
OP overflow 2 5 X -> 2 4 5 X
0∞ <E 110 111110 X (110)G+2^f 00 (110)M 0∞
⟶ 0∞ <E 110 11110 111110 X (110)G 00 (110)M+2^f 0∞
X = (110)^g1 111110 ... (110)^gk 111110, gi>=1, k>=0; f=k+1; G,M>=0—✓120/120
OQ overflow 2 4 5 X -> 2 5 2 5 X
0∞ <E 110 11110 111110 X (110)G+2^(f+2) 00 (110)M 0∞
⟶ 0∞ <E 110 111110 110 111110 X (110)G 00 (110)M+2^(f+2) 0∞
X as in OP; f=k+1; G,M>=0—✓120/120
Compressed historythe tape as 0∞ <E 110 W (110)G 00 (110)M 0∞ at 40 moments: where the rules are read off
0∞ <E 110 W (110)G 00 (110)M 0∞
stepW (counter word; 2=110 4=11110 5=111110 3=1110 z3=extra 00 marker)GM
20,053,0195 2^3 5 2^7 554987
20,088,4144 5 2^3 5 2^7 554195
20,224,8805 2 5 2^3 5 2^7 5509127
20,290,0674 5 2 5 2^3 5 2^7 5493143
20,530,3415 2 5 2 5 2^3 5 2^7 5429207
20,638,2164 5 2 5 2 5 2^3 5 2^7 5397239
20,987,8025 2 5 2 5 2 5 2^3 5 2^7 5269367
21,113,4694 5 2 5 2 5 2 5 2^3 5 2^7 5205431
21,342,6215 2 5 2 5 z3 2^4 56419
21,474,6984 z3 5 2^10 561535
21,474,7244 2 5 2^10 561535
21,592,2265 2^3 5 2^10 559159
21,630,4054 5 2^3 5 2^10 558367
21,778,0075 2 5 2^3 5 2^10 555199
21,848,7624 5 2 5 2^3 5 2^10 5535115
22,111,3085 2 5 2 5 2^3 5 2^10 5471179
22,230,3194 5 2 5 2 5 2^3 5 2^10 5439211
22,624,4495 2 5 2 5 2 5 2^3 5 2^10 5311339
22,772,3884 5 2 5 2 5 2 5 2^3 5 2^10 5247403
23,036,5925 2 5 2 5 2 5 2 5 2^3 56656
23,084,9554 5 2 z3 2^9 56589
23,085,0244 3 2^13 56589
23,095,7144 4 2^13 565611
23,138,0874 2 z3 4 2^14 564819
23,138,1344 3 2^2 4 2^14 564819
23,282,7005 2 5 2^17 562047
23,322,9274 5 2 5 2^17 561255
23,478,7215 2 5 2 5 2^17 558087
23,553,5724 5 2 5 2 5 2^17 5564103
23,832,5025 2 5 2 5 2 5 2^17 5500167
23,959,7054 5 2 5 2 5 2 5 2^17 5468199
24,386,6035 2 5 2 5 2 5 2 5 2^17 5340327
24,550,9264 5 2 5 2 5 2 5 2 5 2^17 5276391
24,880,5445 2 5 2 5 2 5 2 5 2 5 2^17 520647
25,203,4754 5 2 z3 2^3 563461
25,203,5444 3 2^7 563461
25,213,8024 4 2^7 563263
25,254,4474 2 z3 4 2^8 562471
25,254,4944 3 2^2 4 2^8 562471
25,393,0125 2 5 2^11 559699
W (counter word; 2=110 4=11110 5=111110 3=1110 z3=extra 00 marker)last 5 2 5 2^11 5
not plottable
Glast 596
65862e72.5e7step 20053019: G = 549step 20088414: G = 541step 20224880: G = 509step 20290067: G = 493step 20530341: G = 429step 20638216: G = 397step 20987802: G = 269step 21113469: G = 205step 21342621: G = 641step 21474698: G = 615step 21474724: G = 615step 21592226: G = 591step 21630405: G = 583step 21778007: G = 551step 21848762: G = 535step 22111308: G = 471step 22230319: G = 439step 22624449: G = 311step 22772388: G = 247step 23036592: G = 6step 23084955: G = 658step 23085024: G = 658step 23095714: G = 656step 23138087: G = 648step 23138134: G = 648step 23282700: G = 620step 23322927: G = 612step 23478721: G = 580step 23553572: G = 564step 23832502: G = 500step 23959705: G = 468step 24386603: G = 340step 24550926: G = 276step 24880544: G = 20step 25203475: G = 634step 25203544: G = 634step 25213802: G = 632step 25254447: G = 624step 25254494: G = 624step 25393012: G = 596
Mlast 99
65692e72.5e7step 20053019: M = 87step 20088414: M = 95step 20224880: M = 127step 20290067: M = 143step 20530341: M = 207step 20638216: M = 239step 20987802: M = 367step 21113469: M = 431step 21342621: M = 9step 21474698: M = 35step 21474724: M = 35step 21592226: M = 59step 21630405: M = 67step 21778007: M = 99step 21848762: M = 115step 22111308: M = 179step 22230319: M = 211step 22624449: M = 339step 22772388: M = 403step 23036592: M = 656step 23084955: M = 9step 23085024: M = 9step 23095714: M = 11step 23138087: M = 19step 23138134: M = 19step 23282700: M = 47step 23322927: M = 55step 23478721: M = 87step 23553572: M = 103step 23832502: M = 167step 23959705: M = 199step 24386603: M = 327step 24550926: M = 391step 24880544: M = 647step 25203475: M = 61step 25203544: M = 61step 25213802: M = 63step 25254447: M = 71step 25254494: M = 71step 25393012: M = 99
Template comparisonBECv1_6x2_solved.v tm10: partly applies · the nearest solved proof, what carries over, and the transitions that differ
01
A1RB0RA
B1LC0LD
C1LE1LD
D0LB0RE
E1RF0LAtpl 1LE
F---0RA

differs from the template

file
BECv1_6x2_solved.v (+ BECv1.v Section)
module
tm10 / nonhalt10 (line 88), cert Build_BEC_cert_v1 B A E A ... 1 0 0
machine
1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF1LE_---0RA (1 transition apart)
diff
E1: 0LA (ours) vs 1LE (tm10); all other 11 transitions equal
note
Simulated our TM on tm10's cert: 10/11 hypotheses hold (HR1-3, HE0-3, HL1,3,4,5; 25/25 each); HL2 = binary carry 1<E1 -> <E11 fails 0/25. So the unary half carries over verbatim; LeftBinaryCounter must become a spaced-digit counter (5-blocks + 110 filler).
Proof strategy & riskshow the formal proof will go · 3 risks to watch

Keep BECv1's unary half (HR1-3, HE0-3 as es-lemmas). Replace LeftBinaryCounter by an Inductive digit list (5-digit + filler gaps, 4-mode at the MSB), BECv7.v style; prove OP/OQ by ind over sweeps + carries, then a finite EatDigit case table; close with progress_nonhalt_cond on a shape predicate (any gaps G,M), as BECv7's canonical.

  • ▲EatDigit is messy: it makes 3/4/6 blocks and a transient second 00 marker; the case table may be large.
  • ▲Digit gaps evolve irregularly (3,7 -> 10 -> 17 -> 11 ...): proof must quantify over all gaps (shape invariant), not track values.
  • ▲mxdys's BECv1/IndBECv1 search failed here; expect new counter lemmas (BECv7-size file, 30-50 KB).
Stats & provenance109 steps simulated · 7,783 cells · the status in full · files
simulated
109 steps
tape
7,783 cells · 4,191 nonzeros
growth
left edge ~t^0.36 (bell), right edge ~t^0.27 (+2 cells per epoch, ~135 epochs by 1e9)
status now
check_kill PASS, independently re-verified (status.json, 2026-10-11)
observer's note
Mechanism found, 7 rules validated (540/540 sims); not cryptid-like: 0 halts in 1560 random shapes + 251 perturbed real configs; EatDigit table open.
files
observe.json · notes.md · proof.md · how_proved.md · status.json · 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.v

Proof & checks

6/6 automatic checks pass

Kill 16 · Bell eats counter · the kill file 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.v: 1790 lines, 223 items · the package submission/

✓ 6/6 automatic checks pass · Checkpoint B: no note from Dennis yet · template (twin: parent kill's .v): #30's kill file (kill 15) · 96% of our lines identical · vs #30: same table mirrored, started in #30'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
1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA
vs holdout list
✓ byte-exact: the .v literal (L54) == 2026-10-07_778.txt line 405 (41 bytes, via tools/holdouts.py)
Theorem
✓ Lemma nonhalt: ~halts tm c0. L1761
check_kill
✓ PASS · 17/17 checks pass · compile 17.33 s · coqchk pass (71.46 s) · assumptions: 0 (closed) · 2026-10-11 07:08:07 UTC · submission/check_kill.txt
Checked .v
sha256 dfb0fb2c8b2ab8a0…
✓1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.vdfb0fb2c8b2ab8a0… = checked
✓submission/1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.vdfb0fb2c8b2ab8a0… = checked
Status
✓Killed: never halts updated 2026-10-11
✓ 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
✓input92012 bytes, 1790 lines, 2028 sentences
✓frameworkHEAD 0940bb9cf434ba68f0c025dabfde45a219999973 == pin; no tracked changes under verify/
✓framework_build13 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)
✓structure5 Require name(s) allowed; no top-level Variable/Context; no shadowing; Module/Section balanced
✓tm_textline 54: TM_from_str "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA" == <tm> (41 bytes)
✓theorem_textline 1761: nonhalt : ~halts tm c0
✓coqcoqc 8.20.1 ([local working file]
✓nameshalts, c0, TM_from_str resolved inside Individual62
✓compilecompiled in 17.3s with all appended checks
✓tm_rocqBB6Kill.Candidate.tm = BusyCoq.Individual62.TM_from_str "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA" by eq_refl (in-file and isolated)
✓theorem_rocqnonhalt : ~ halts (TM_from_str "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA") 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 (71.5s); its context summary lists nothing of the file's own
✓integrityinput sha256 and framework HEAD/cleanliness identical before and after
2Same machine as #30?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 #30 as the parent (1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC); label: “#7”; relation: “sibling of #30: #30's table mirrored and renamed (A,B,C,D,E,F -> E,A,B,F,C,D), started in #30's state E”. Everything below is computed from the two machine strings, not read from notes.

✓ Identical to #30's table under the renaming A→B, B→C, C→E, D→F, E→A, F→D (#30's state → this machine's), with L and R swapped (mirror image). This machine starts in #30's state E (#30 itself starts in A). The only such map.

#30#30's row (read 0, read 1)σpredicted row: renamed by σ, L/R swappedthis machine's actual row
A1RB 0RF→ B1LC 0LD1LC 0LD✓start of #30
B1RC 1RF→ C1LE 1LD1LE 1LD✓
C1LD 0RE→ E1RF 0LA1RF 0LA✓
D--- 0LE→ F--- 0RA--- 0RA✓
E1LA 0LE→ A1RB 0RA1RB 0RA✓start of this machine
F0RA 0LC→ D0LB 0RE0LB 0RE✓

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

Fig P1 · bbchallenge default view: #30 and this machine, first 10,000 steps

Same view, same settings on both sides. Look for the same band structure: this machine is #30's table mirrored, so expect #30's picture flipped left to right; it starts in #30'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.

#30 (parent), from blank in its A
default view of 1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC
this machine (#7), from blank in its A = #30's E
default view of 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA
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): #30 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. Here this machine is #30's table mirrored, so expect #30's picture flipped left to right.

#30 (parent), from blank in its A
blaze view of 1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC
763 rows of 131,072 steps · 858 columns, every 4th cell · nonzeros 1,733 at 1e8
this machine (#7), from blank in its A = #30's E
blaze view of 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA
763 rows of 131,072 steps · 862 columns, every 4th cell · nonzeros 1,489 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.82% wider at 1e9 (7,783 vs 7,720 cells; nonzeros 4,191 vs 4,642); not a fixed offset: the cell gap reaches +63

stepscells visited (hi − lo + 1)nonzeros
#30thisratio (Δ)#30thisratio (Δ)
1e52863091.0804 (+23)1571170.7452 (-40)
1e66616841.0348 (+23)4112850.6934 (-126)
1e71,5491,5010.9690 (-48)1,0076270.6226 (-380)
1e83,4303,4481.0052 (+18)1,7341,4900.8593 (-244)
1e97,7207,7831.0082 (+63)4,6424,1910.9028 (-451)

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:28 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 #30's kill file (kill 15) machines/1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC/1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC.v · detected from status.json
96%of our lines identical to the template
13changed lines
53added lines (ours only)
16template lines dropped
212 / 1 / 10items identical / adapted / new
What the package README says it reused and changed (submission/README.md line 17, Template and what changed), quoted:

The file extends the kill for 1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC, which is adapted from busycoq's verify/FractalBEC.v, tm10 (it keeps tm10's marker bounce RInc). What changed: tm is this machine, and the parent's table is tm30, with the step notations on it. The parent's init, fin694, inv694, nonhalt_from and nonhalt are replaced by init7, fin7, inv7, nonhalt_from_c (the start made generic), nonhalt_E and the conjugacy (phi, perm7, nonhalt). All other code is the parent's, verbatim. The file has 1,790 lines, every lemma top level, and imports only Individual62 from busycoq. The second TM_from_str literal (tm30) is our checker's only warning.

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 1548 lines
96% identical · 13 changed · 53 added
template 1511 lines
98% kept verbatim · 16 not in ours
our items 223
212 identical · 1 adapted · 10 new · 6 template-only
identicalchanged / adaptedours only (new)template only
Template part: whole file, lines 26–1726 (leading comment left out). Ours: lines 47–1790 (header comment 1–46 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.

Template-only names: init, B694, Y694, fin694, inv694, nonhalt_from

Other references found:

Side-by-side diff: template (1511 lines) vs ours (1548 lines), 82 lines differ; runs of identical lines and long template-only runs folded
identicalequal once each TM string is <TM>changedours onlytemplate only
templateours
27From BusyCoq Require Import Individual62.48From BusyCoq Require Import Individual62.
28Require Import Lia.49Require Import Lia.
⋯ 2 identical lines (template 29–30, ours 50–51)
31Require Import Arith.52Require Import Arith.
33Definition tm := Eval compute in (TM_from_str "1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC").54Definition tm := Eval compute in (TM_from_str "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA").
35Notation "c --> c'" := (c -[ tm ]-> c') (at level 40).
55Definition tm30 := Eval compute in (TM_from_str "1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC").
36Notation "c -->* c'" := (c -[ tm ]->* c') (at level 40).57Notation "c --> c'" := (c -[ tm30 ]-> c') (at level 40).
37Notation "c -->+ c'" := (c -[ tm ]->+ c') (at level 40).58Notation "c -->* c'" := (c -[ tm30 ]->* c') (at level 40).
59Notation "c -->+ c'" := (c -[ tm30 ]->+ c') (at level 40).
39Open Scope list.61Open Scope list.
41(* ===================================================================== *)63(* ===================================================================== *)
⋯ 236 identical lines (template 42–321, ours 64–343)
322 - apply Rst.344 - apply Rst.
323Qed.345Qed.
325(* The blank tape reaches L(7, 000 010001) at step 304, then the restart gives K(1,8,t2). *)
347Ltac solve_initE :=
326Lemma init : c0 -->* K 8 t2.
348 change (E, tape0) with (cconfig_to_config (nil,nil,S0,E));
327Proof. unfold K. cbn. solve_init. Qed.
349 repeat rewrite Str_cons_def;
350 repeat rewrite <-Str_app_assoc;
351 repeat rewrite simpl_directed_head_l;
352 repeat rewrite simpl_directed_head_r;
353 repeat rewrite l_const0_app_nil;
354 repeat rewrite r_const0_app_nil;
355 repeat rewrite config_to_cconfig;
356 apply cconfig_evstep_dec_spec with (n:=1000000);
357 vm_compute;
358 reflexivity.
360(* The blank tape in state E reaches L(16, 0001) at step 1059, then the restart gives K(1,17,t1)
361 at step 1114. On this machine's own tape (mirrored, renamed): 0^inf 1000 (100)^16 101 B> 0^inf,
362 then 0^inf 1 <E (110)^17 0 011 0^inf. *)
363Lemma init7 : E;; tape0 -->* K 17 t1.
364Proof. unfold K. cbn - [tape0]. solve_initE. Qed.
329(* ===================================================================== *)366(* ===================================================================== *)
330(* Section 5. A computable model (fuel), sound for LP / Phi. *)367(* Section 5. A computable model (fuel), sound for LP / Phi. *)
⋯ 1198 identical lines (template 331–1657, ours 368–1694)
1658 apply (next_inv k N n c bsp sp r HG Hs3 Hn HN HL); rewrite ?(MO_zero _ _ _ Hz); unfold Xf, Pf; lia.1695 apply (next_inv k N n c bsp sp r HG Hs3 Hn HN HL); rewrite ?(MO_zero _ _ _ Hz); unfold Xf, Pf; lia.
1659Qed.1696Qed.
1661(* ---------- the finite part: the computable model from K(1,8,t2) to epoch 694 ---------- *)1698(* ---------- the finite part: the computable model from K(1,17,t1), 687 epochs to N = 17724 ---------- *)
1663Fixpoint orbit (f n N : nat) (y : word) : option (nat * word) :=1700Fixpoint orbit (f n N : nat) (y : word) : option (nat * word) :=
1664 match n with1701 match n with
⋯ 8 identical lines (template 1665–1673, ours 1702–1710)
1674 eapply evstep_trans; [apply progress_evstep, epoch_tm, (proj2 (model_sound f) _ _ _ _ _ E) | exact (IH _ _ _ _ H)].1711 eapply evstep_trans; [apply progress_evstep, epoch_tm, (proj2 (model_sound f) _ _ _ _ _ E) | exact (IH _ _ _ _ H)].
1675Qed.1712Qed.
1677Definition B694 : blks := [(false, 17); (true, 1); (true, 1); (true, 1); (true, 1);1714Definition B692 : blks := [(false, 6); (false, 1); (true, 1); (true, 1); (false, 1);
1678 (false, 1); (false, 1); (false, 1); (true, 1); (false, 0)].1715 (true, 1); (false, 1); (false, 1); (true, 1); (false, 0)].
1679Definition Y694 : word := p11 7 (gw B694 0).1716Definition Y692 : word := p11 16 (gw B692 0).
1681Lemma fin694 : orbit 100000 691 8 t2 = Some (17713, Y694).1718Lemma fin7 : orbit 100000 687 17 t1 = Some (17724, Y692).
1682Proof. vm_compute. reflexivity. Qed.1719Proof. vm_compute. reflexivity. Qed.
1684Lemma inv694 : Inv 10 17713 Y694.1721Lemma inv7 : Inv 10 17724 Y692.
1685Proof.1722Proof.
1686 unfold Inv. split; [apply Nat.leb_le; vm_compute; reflexivity|]. split; [apply Nat.leb_le; vm_compute; reflexivity|].1723 unfold Inv. split; [apply Nat.leb_le; vm_compute; reflexivity|]. split; [apply Nat.leb_le; vm_compute; reflexivity|].
1687 left. exists 7, B694, 0. split; [reflexivity|]. split; [lia|]. split; [cbn; lia|].1724 left. exists 16, B692, 0. split; [reflexivity|]. split; [lia|]. split; [cbn; lia|].
1688 split; [|split]; [apply Nat.leb_le; vm_compute; reflexivity | apply Nat.leb_le; vm_compute; reflexivity |].1725 split; [|split]; [apply Nat.leb_le; vm_compute; reflexivity | apply Nat.leb_le; vm_compute; reflexivity |].
1689 apply Nat.leb_le; vm_compute; reflexivity.1726 apply Nat.leb_le; vm_compute; reflexivity.
1690Qed.1727Qed.
1692Lemma nonhalt_from N0 y0 (P : nat -> word -> Prop) :1729Lemma nonhalt_from_c c N0 y0 (P : nat -> word -> Prop) :
1693 c0 -->* K N0 y0 -> P N0 y0 ->1730 c -->* K N0 y0 -> P N0 y0 ->
1694 (forall N y, P N y -> exists k y', Phi 1 N y k y' /\ P (S k) y') ->1731 (forall N y, P N y -> exists k y', Phi 1 N y k y' /\ P (S k) y') ->
1695 ~ halts tm c0.1732 ~ halts tm30 c.
1696Proof.1733Proof.
1697 intros H0 HP0 Hstep.1734 intros H0 HP0 Hstep.
1698 eapply multistep_nonhalt. { exact H0. }1735 eapply multistep_nonhalt. { exact H0. }
1699 apply (progress_nonhalt_cond tm (nat * word) (N0, y0) (fun i => K (fst i) (snd i))1736 apply (progress_nonhalt_cond tm30 (nat * word) (N0, y0) (fun i => K (fst i) (snd i))
1700 (fun i => P (fst i) (snd i))); [| exact HP0].1737 (fun i => P (fst i) (snd i))); [| exact HP0].
1701 intros [N y] HP. cbn in HP.1738 intros [N y] HP. cbn in HP.
1702 destruct (Hstep N y HP) as (k & y' & HPhi & HP').1739 destruct (Hstep N y HP) as (k & y' & HPhi & HP').
1703 exists (S k, y'). split; [apply epoch_tm, HPhi | exact HP'].1740 exists (S k, y'). split; [apply epoch_tm, HPhi | exact HP'].
1704Qed.1741Qed.
1743Lemma nonhalt_E : ~ halts tm30 (E;; tape0).
1744Proof.
1745 apply (nonhalt_from_c (E;; tape0) 17724 Y692 (fun N y => exists k, Inv k N y)).
1746 - eapply evstep_trans; [exact init7 | exact (orbit_sound _ _ _ _ _ _ fin7)].
1747 - exists 10. exact inv7.
1748 - intros N y [k Hk]. destruct (inv_step k N y Hk) as (kk & y' & H1 & H2). exists kk, y'. split; [exact H1 | exact H2].
1749Qed.
1751Definition phi (q : Q) : Q :=
1752 match q with A => E | B => A | C => B | D => F | E => C | F => D end.
1754Lemma perm7 : Perm (flip tm) tm30 phi.
1755Proof.
1756 split.
1757 - intros [] [] H; cbn in *; try discriminate; reflexivity.
1758 - intros [] [] s' d q' H; cbn in *; inversion H; subst; reflexivity.
1759Qed.
1706Lemma nonhalt: ~halts tm c0.1761Lemma nonhalt: ~halts tm c0.
1707Proof.1762Proof.
1708 apply (nonhalt_from 17713 Y694 (fun N y => exists k, Inv k N y)).
1763 intros H. apply flip_halts in H.
1709 - eapply evstep_trans; [exact init | exact (orbit_sound _ _ _ _ _ _ fin694)].
1764 change (halts (flip tm) (A;; tape0)) in H.
1710 - exists 10. exact inv694.
1765 exact (nonhalt_E (perm_halts _ _ _ _ _ perm7 H)).
1711 - intros N y [k Hk]. destruct (inv_step k N y Hk) as (kk & y' & H1 & H2). exists kk, y'. split; [exact H1 | exact H2].
1712Qed.1766Qed.
1714(*1768(*
1715 0 1
17691RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA (= mirror of 1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC renamed by
1716 A 1RB 0RF
1770 phi: A->E, B->A, C->B, D->F, E->C, F->D; tm30 = the parent)
1717 B 1RC 1RF
1772 tm 0 1 tm30 0 1
1718 C 1LD 0RE
1773 A 1RB 0RA A 1RB 0RF
1719 D --- 0LE
1774 B 1LC 0LD B 1RC 1RF
1720 E 1LA 0LE
1775 C 1LE 1LD C 1LD 0RE
1721 F 0RA 0LC
1776 D 0LB 0RE D --- 0LE
1777 E 1RF 0LA E 1LA 0LE
1778 F --- 0RA F 0RA 0LC
1780 tm c0 = 0^inf A> 0^inf <-> tm30 from 0^inf E> 0^inf (flip_halts, Perm (flip tm) tm30 phi, perm_halts)
1782 Parent family (tm30), unchanged from the kill for 1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC:
1723 hub K(a,b,X) = 0^inf (110)^a 0 (011)^b C> X 0^inf1783 hub K(a,b,X) = 0^inf (110)^a 0 (011)^b C> X 0^inf
1784 record L(k,T) = 0^inf <A 101 (001)^k T 0^inf
1724 pre-record L'(k,T) = 0^inf E> 0 01 (001)^k T 0^inf (E0 = 1LA, then the restart)1785 pre-record L'(k,T) = 0^inf E> 0 01 (001)^k T 0^inf (E0 = 1LA, then the restart)
1725 start c0 -->* K(1,8,010001)
1786 start (tm30) 0^inf E> 0^inf -->(1059) L(16, 0001) -->(55) K(1,17,1)
1787 on tm's tape 0^inf 1000 (100)^16 101 B> 0^inf (step 1059), 0^inf 1 <E (110)^17 0 011 0^inf (step 1114)
1788 finite part K(1,17,1) -->* K(1,17724,Y692) in 687 epochs (fin7), Inv 10 holds there (inv7),
1789 and inv_step carries the invariant to every later epoch.
1726*)1790*)
4Proof outlineCheck: the new items (green) carry the argument; the names read like the proof.md rules.

223 items in 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.v (1790 lines): 160 Lemma, 43 Definition, 12 Fixpoint, 7 Inductive, 1 Theorem. 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 "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA").
L54identicalexcept the TM string
2Definitiontm30
Definition tm30 := Eval compute in (TM_from_str "1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC").
L55new
3LemmaLP0
Lemma LP0 l r : l <* <[0;1;1] {{C}}> [0] *> r -->+ l <{{A}} [1;0;0;1] *> r.
L69identical
4LemmaLP0z
Lemma LP0z l : l <* <[0;1;1] {{C}}> 0inf -->+ l <{{A}} [1;0;0;1] *> 0inf.
L72identical
5LemmaLP11
Lemma LP11 l r : l <* <[0;1;1] {{C}}> [1;1;0] *> r -->+ l <{{A}} [1;0;1;0;0;0] *> r.
L76identical
6LemmaLPCr
Lemma LPCr l e r : l <* <[0;1;1] {{C}}> [1;0;1] *> [0;0;1]^^e *> [0;0;0] *> r -->+
l <* <[0;1;1;1;1;1] <* <[0;1;1]^^e <* <[0;1;1] {{C}}> r.
L80identical
7LemmaLPCl0
Lemma LPCl0 l e r : l <* <[0;1;1;1;1;1] <* <[0;1;1]^^e <{{A}} [1;0;0] *> r -->+
l <{{A}} [1;0;0;0;0;1] *> [0;0;1]^^e *> [0;0;0] *> r.
L85identical
8LemmaLPCl1
Lemma LPCl1 l e r : l <* <[0;1;1;1;1;1] <* <[0;1;1]^^e <{{A}} [1;0;1;0;0;0] *> r -->+
l <{{A}} [1;0;0;0;0;1] *> [0;0;1]^^(S e) *> [0;0;0] *> r.
L89identical
9LemmaLP5r
Lemma LP5r l e r : l <* <[0;1;1] {{C}}> [1;0;0;0;1] *> [0;0;1]^^e *> [0;0;0] *> r -->+
l <* <[0;1;1;1;1] <* <[0;1;1]^^(S e) <* <[0;1;1] {{C}}> r.
L94identical
10LemmaLP5l0
Lemma LP5l0 l e r : l <* <[0;1;1;1;1] <* <[0;1;1]^^(S e) <{{A}} [1;0;0] *> r -->+
l <{{A}} [1;0;0;0;1] *> [0;0;1]^^(S e) *> [0;0;0] *> r.
L98identical
11LemmaLP5l1
Lemma LP5l1 l e r : l <* <[0;1;1;1;1] <* <[0;1;1]^^(S e) <{{A}} [1;0;1;0;0;0] *> r -->+
l <{{A}} [1;0;0;0;1] *> [0;0;1]^^(S (S e)) *> [0;0;0] *> r.
L102identical
12LemmaLP6r
Lemma LP6r l e r : l <* <[0;1;1] {{C}}> [1;0;1;0;1] *> [0;0;1]^^e *> [0;0;0] *> r -->+
l <* <[0;1;1;1] <* <[1;1;0] <* [0] <* <[0;1;1]^^(S e) {{C}}> r.
L107identical
13LemmaW10
Lemma W10 l r : l <* <[0;1;1;1] <{{E}} r -->+ l <{{A}} [1;0;0;0] *> r.
L112identical
14LemmaRP0
Lemma RP0 l n r : l <* [0] <* <[0;1;1]^^(S n) <{{A}} [1;0;0] *> r -->+
l <* <[1;1;0] <* [0] <* <[0;1;1]^^(S n) {{C}}> r.
L116identical
15LemmaRP1
Lemma RP1 l n r : l <* [0] <* <[0;1;1]^^(S n) <{{A}} [1;0;1;0;0;0] *> r -->+
l <* <[1;1;0] <* [0] <* <[0;1;1]^^(S (S n)) {{C}}> r.
L120identical
16LemmaE1r
Lemma E1r l a e r : l <* <[1;1;0]^^a <* [0] <* <[0;1;1] {{C}}> [0;0;1]^^(S e) *> [0;0;0] *> r -->+
l <* <[1;1;0]^^(S (S a)) <* [0] <* <[0;1;1]^^(S e) {{C}}> r.
L125identical
17LemmaE2l0
Lemma E2l0 l a e r : l <* <[1;1;0]^^a <* [0] <* <[0;1;1;1;1;1] <* <[0;1;1]^^e <{{A}} [1;0;0] *> r -->+
l <{{E}} [0;1] *> [0;0;1]^^a *> [0;0;0;1;1] *> [0;0;1]^^e *> [0;0;0] *> r.
L129identical
18LemmaE2l1
Lemma E2l1 l a e r : l <* <[1;1;0]^^a <* [0] <* <[0;1;1;1;1;1] <* <[0;1;1]^^e <{{A}} [1;0;1;0;0;0] *> r -->+
l <{{E}} [0;1] *> [0;0;1]^^a *> [0;0;0;1;1] *> [0;0;1]^^(S e) *> [0;0;0] *> r.
L133identical
19LemmaEt0
Lemma Et0 l a : l <* <[1;1;0]^^a <* [0] <* <[0;1;1] {{C}}> 0inf -->+
l <{{E}} [0;1] *> [0;0;1]^^(S a) *> [0;0;0;1] *> 0inf.
L137identical
20LemmaEt1
Lemma Et1 l a : l <* <[1;1;0]^^a <* [0] <* <[0;1;1] {{C}}> [1] *> 0inf -->+
l <{{E}} [0;1] *> [0;0;1]^^a *> [0;0;0;0;1;0;0;1;0;0;0;1] *> 0inf.
L141identical
21LemmaEt2
Lemma Et2 l a : l <* <[1;1;0]^^a <* [0] <* <[0;1;1] {{C}}> [0;1;0;0;0;1] *> 0inf -->+
l <{{E}} [0;1] *> [0;0;1]^^a *> [0;0;0;1;0;0;0;0;1;0;0;0;1] *> 0inf.
L145identical
22LemmaEt3
Lemma Et3 l a : l <* <[1;1;0]^^a <* [0] <* <[0;1;1] {{C}}> [1;1;0;0;0;1] *> 0inf -->+
l <* <[1;1;0]^^(S a) <* [0] <* <[0;1;1] {{C}}> [0;0;1] *> 0inf.
L149identical
23LemmaRst
Lemma Rst k r : const 0 <{{E}} [0;1] *> [0;0;1]^^k *> [0;0;0] *> r -->+
const 0 <* <[1;1;0] <* [0] <* <[0;1;1]^^(S k) {{C}}> r.
L154identical
24LemmaLPT1
Lemma LPT1 l : l <* <[0;1;1] {{C}}> [1] *> 0inf -->+ l <{{A}} [1;0;0;0;1;0;0;0;1] *> 0inf.
L159identical
25LemmaLPT2
Lemma LPT2 l : l <* <[0;1;1] {{C}}> [1;0;0;1;0;0;0;1] *> 0inf -->+
l <{{A}} [1;0;0] *> [0;1;0;0;1;0;0;0;0;1;0;0;1;0;0;0;1] *> 0inf.
L162identical
26LemmaLPT3
Lemma LPT3 l : l <* <[0;1;1] {{C}}> [1;0;1;1;0;0;0;1] *> 0inf -->+
l <{{A}} [1;0;0] *> [0;0;0;1;0;0;0;0;1;0;0;0;1] *> 0inf.
L166identical
27LemmaLPT4
Lemma LPT4 l : l <* <[0;1;1] {{C}}> [1;0;0;0;0;1;0;0;0;1] *> 0inf -->+
l <{{A}} [1;0;0] *> [0;1;0;0;0;0;1;0;0;1;0;0;0;1] *> 0inf.
L170identical
28LemmaLPT5
Lemma LPT5 l : l <* <[0;1;1] {{C}}> [1;0;0;1;0;0;0;0;1;0;0;0;1] *> 0inf -->+
l <{{A}} [1;0;0] *> [0;1;0;0;1;0;0;0;1;0;0;0;0;1;0;0;0;1] *> 0inf.
L174identical
29LemmaLPT6
Lemma LPT6 l : l <* <[0;1;1] {{C}}> [1;0;0;1;0;0;1;0;0;0;1] *> 0inf -->+
l <{{A}} [1;0;0] *> [0;1;0;0;1;0;0;1;0;0;0;1;0;0;0;0;1;0;0;0;1] *> 0inf.
L178identical
30Lemmaz3
Lemma z3 : [0;0;0] *> const 0 = const 0.
L182identical
31Inductiveword
Inductive word : Type :=
| t0 | t1 | t2 | t3
| blk (d : bool) (e : nat) (w : word)
| p11 (x : nat) (w : word)
| p01 (x : nat) (w : word)
| p00 (w : word)
… +1 lines
L191identical
32Definitiondsym
Definition dsym (d : bool) : Sym := if d then S1 else S0.
L199identical
33Fixpointenc
Fixpoint enc (w : word) : side :=
match w with
| t0 => const 0
| t1 => [1] *> const 0
| t2 => [0;1;0;0;0;1] *> const 0
| t3 => [1;1;0;0;0;1] *> const 0
… +6 lines
L201identical
34Definitionaddb
Definition addb (e : nat) (d : bool) : nat := if d then S e else e.
L214identical
35InductiveLP
Inductive LP : word -> word -> bool -> Prop :=
| LP_a e w : LP (blk false e w) (blk true e w) false
| LP_b e w w' d : LP w w' d -> LP (blk true e w) (blk false (addb e d) w') false
| LP_t0 : LP t0 t1 false
| LP_t1 : LP t1 t2 false
| LP_t2 : LP t2 t3 false
… +22 lines
L219identical
36Definitionoutp
Definition outp (d : bool) (r : side) : side :=
if d then [1;0;1;0;0;0] *> r else [1;0;0] *> r.
L252identical
37DefinitionLPspec
Definition LPspec (w w' : word) (d : bool) : Prop :=
forall l, l <* <[0;1;1] {{C}}> enc w -->+ l <{{A}} outp d (enc w').
L255identical
38DefinitionPhispec
Definition Phispec (a b : nat) (w : word) (k : nat) (y : word) : Prop :=
forall l, l <* <[1;1;0]^^a <* [0] <* <[0;1;1]^^b {{C}}> enc w -->+
          l <{{E}} [0;1] *> [0;0;1]^^k *> [0;0;0] *> enc y.
L258identical
39Lemmaenc_a0
Lemma enc_a0 : enc (blk false 0 t0) = [0;0;1] *> const 0.
L262identical
40Theoremsound
Theorem sound :
(forall w w' d, LP w w' d -> LPspec w w' d) /\
(forall a b w k y, Phi a b w k y -> Phispec a b w k y).
L269identical
41DefinitionK
Definition K (N : nat) (y : word) : Q * tape :=
const 0 <* <[1;1;0] <* [0] <* <[0;1;1]^^N {{C}}> enc y.
L337identical
42Lemmaepoch_tm
Lemma epoch_tm N y k y' : Phi 1 N y k y' -> K N y -->+ K (S k) y'.
L340identical
43Lemmainit7
Lemma init7 : E;; tape0 -->* K 17 t1.
L363new
44Fixpointlpf
Fixpoint lpf (n : nat) (w : word) {struct n} : option (word * bool) :=
  match n with
  | O => None
  | S n' =>
    match w with
    | t0 => Some (t1, false)
… +58 lines
L370identical
45Lemmaenc_p10t0
Lemma enc_p10t0 : enc (p10 t0) = enc t1.
L435identical
46Lemmaenc_p10t1
Lemma enc_p10t1 : enc (p10 t1) = enc (blk true 0 t0).
L438identical
47Lemmaenc_p00t0
Lemma enc_p00t0 : enc (p00 t0) = enc t0.
L441identical
48Lemmaenc_p00t1
Lemma enc_p00t1 : enc (p00 t1) = enc (blk false 0 t0).
L444identical
49Lemmaenc_p10p00t0
Lemma enc_p10p00t0 : enc (p10 (p00 t0)) = enc t1.
L447identical
50Lemmaenc_p10p00t1
Lemma enc_p10p00t1 : enc (p10 (p00 t1)) = enc (p10 (blk false 0 t0)).
L450identical
51Lemmamodel_sound
Lemma model_sound n :
(forall w w' d, lpf n w = Some (w', d) -> LP w w' d) /\
(forall a b w k y, phif n a b w = Some (k, y) -> Phi a b w k y).
L453identical
52Definitiontl_of
Definition tl_of (s : nat) : word :=
match s with O => t0 | 1 => t1 | 2 => t2 | _ => t3 end.
L503identical
53Fixpointgw
Fixpoint gw (bs : list (bool * nat)) (s : nat) : word :=
match bs with [] => tl_of s | (d, e) :: bs => blk d e (gw bs s) end.
L506identical
54Fixpointginc
Fixpoint ginc (bs : list (bool * nat)) (s : nat) : list (bool * nat) * nat * bool :=
match bs with
| [] => match s with O => ([], 1, false) | 1 => ([], 2, false) | 2 => ([], 3, false)
        | _ => ([(false, 0)], O, true) end
| (false, e) :: bs => ((true, e) :: bs, s, false)
| (true, e) :: bs => let '(bs', s', d) := ginc bs s in ((false, addb e d) :: bs', s', false)
… +1 lines
L509identical
55Fixpointgval
Fixpoint gval (bs : list (bool * nat)) (s : nat) : nat :=
match bs with [] => 4 + s | (d, _) :: bs => (if d then 1 else 0) + 2 * gval bs s end.
L517identical
56Fixpointgsum
Fixpoint gsum (bs : list (bool * nat)) : nat :=
match bs with [] => O | (_, e) :: bs => e + gsum bs end.
L520identical
57Lemmaginc_LP
Lemma ginc_LP bs s : s <= 3 -> forall bs' s' d, ginc bs s = (bs', s', d) -> LP (gw bs s) (gw bs' s') d.
L523identical
58Lemmaginc_val
Lemma ginc_val bs s : s <= 3 -> forall bs' s' d, ginc bs s = (bs', s', d) ->
gval bs' s' = S (gval bs s) /\ s' <= 3 /\
gsum bs' + length bs + (if d then 1 else 0) = gsum bs + length bs' /\
(d = true -> bs = []) /\ length bs <= length bs'.
L531identical
59Lemmagval_ge
Lemma gval_ge bs s : 4 <= gval bs s.
L544identical
60Lemmagval_len
Lemma gval_len bs s : length bs <= gval bs s.
L547identical
61DefinitionPsi
Definition Psi (bs : list (bool * nat)) (s b : nat) : nat := gval bs s + b + gsum bs - length bs.
L553identical
62Definitionblks
Definition blks := list (bool * nat).
L561identical
63Definitionb2n
Definition b2n (d : bool) : nat := if d then 1 else 0.
L562identical
64Lemmaaddb_b2n
Lemma addb_b2n e d : addb e d = e + b2n d.
L563identical
65InductiveGRes
Inductive GRes : Type := RE2 (k x : nat) (bs : blks) (s : nat) | RSp (k : nat) (y : word).
L566identical
66Definitionrk
Definition rk (r : GRes) : nat := match r with RE2 k _ _ _ => k | RSp k _ => k end.
L567identical
67Definitionry
Definition ry (r : GRes) : word := match r with RE2 _ x bs s => p11 x (gw bs s) | RSp _ y => y end.
L568identical
68InductiveGPhi
Inductive GPhi : nat -> nat -> blks -> nat -> GRes -> Prop :=
| GB a b bs s bs' s' d r : ginc bs s = (bs', s', d) -> GPhi (S a) (addb (S b) d) bs' s' r ->
    GPhi a (S (S b)) bs s r
| GE1 a e bs s r : GPhi (S (S a)) (S e) bs s r -> GPhi a 1 ((false, e) :: bs) s r
| GE2 a e bs s bs' s' d : ginc bs s = (bs', s', d) ->
    GPhi a 1 ((true, e) :: bs) s (RE2 a (addb e d) bs' s')
… +4 lines
L571identical
69Lemmaginc_s3
Lemma ginc_s3 bs s bs' s' d : s <= 3 -> ginc bs s = (bs', s', d) -> s' <= 3.
L582identical
70LemmaGPhi_sound
Lemma GPhi_sound a b bs s r : GPhi a b bs s r -> s <= 3 -> Phi a b (gw bs s) (rk r) (ry r).
L585identical
71LemmaGPhi_s3
Lemma GPhi_s3 a b bs s r : GPhi a b bs s r -> s <= 3 ->
match r with RE2 _ _ _ s2 => s2 <= 3 | RSp _ y => y = t1 \/ y = p01 1 t1 \/ y = p10 (p00 t2) end.
L597identical
72LemmaGPhi_rk
Lemma GPhi_rk a b bs s r : GPhi a b bs s r -> a + b <= S (rk r).
L604identical
73Lemmagcount
Lemma gcount : forall P bs s a b, s <= 3 -> 1 <= b -> Psi bs s b <= P -> exists r, GPhi a b bs s r.
L607identical
74InductiveLPs
Inductive LPs : word -> word -> nat -> nat -> Prop :=
| LPs_eq w w' : enc w = enc w' -> LPs w w' 0 0
| LPs_step w w1 w2 d n c : LP w w1 d -> LPs w1 w2 n c -> LPs w w2 (S n) (c + b2n d).
L640identical
75LemmaLPs_step'
Lemma LPs_step' w w1 w2 d n c c' : LP w w1 d -> LPs w1 w2 n c -> c' = c + b2n d -> LPs w w2 (S n) c'.
L644identical
76LemmaLPs_eql
Lemma LPs_eql w0 w1 w2 n c : enc w0 = enc w1 -> LPs w1 w2 n c -> LPs w0 w2 n c.
L647identical
77LemmaLPs_trans
Lemma LPs_trans w1 w2 w3 n c n' c' : LPs w1 w2 n c -> LPs w2 w3 n' c' -> LPs w1 w3 (n + n') (c + c').
L654identical
78LemmaLPs_cn
Lemma LPs_cn w w' n c : LPs w w' n c -> c <= n.
L661identical
79LemmaLPs_hub
Lemma LPs_hub w w' n c : LPs w w' n c -> forall a B k y, n + 2 <= B + c ->
Phi (a + n) (B + c - n) w' k y -> Phi a B w k y.
L664identical
80LemmaLPs_nest
Lemma LPs_nest y y' n c : LPs y y' n c -> forall k, LPs (blk false k y) (blk false (k + c) y') (2 * n) 0.
L678identical
81InductiveDigE
Inductive DigE : word -> nat -> nat -> blks -> nat -> Prop :=
| DE0 : DigE (p10 t0) 0 0 [] 1
| DE1 : DigE (p10 t1) 0 0 [(true, 0)] 0
| DE2 : DigE (p10 t2) 13 5 [(false, 0)] 2
| DE3 : DigE (p10 t3) 7 2 [(false, 0)] 2
| DEs0 : DigE t1 0 0 [] 1
… +2 lines
L688identical
82LemmaDigE_sound
Lemma DigE_sound y n c bs s : DigE y n c bs s -> LPs y (gw bs s) n c.
L700identical
83LemmaDigE_props
Lemma DigE_props y n c bs s : DigE y n c bs s ->
n <= 13 /\ c <= 5 /\ length bs <= 1 /\ s <= 3 /\ Forall (fun e => e = 0) (map snd bs).
L703identical
84InductiveDigP
Inductive DigP : nat -> blks -> nat -> nat -> nat -> blks -> nat -> Prop :=
| DP x bs s n c bsp sp : DigT bs s n c bsp sp -> DigP x bs s (2 * x + 2 + n) (S x + c) bsp sp
with DigT : blks -> nat -> nat -> nat -> blks -> nat -> Prop :=
| DTa e bs s bs' s' d n c bsp sp : ginc bs s = (bs', s', d) ->
    DigP (S (addb e d)) bs' s' n c bsp sp -> DigT ((false, e) :: bs) s (S (S n)) c bsp sp
| DTb e bs s k x bs2 s2 n c bsp sp : GPhi 1 (S e) bs s (RE2 k x bs2 s2) ->
… +4 lines
L710identical
85Lemmaprefix_LPs
Lemma prefix_LPs x w : LPs (p11 x w) (p10 w) (2 * x + 2) (S x).
L725identical
86LemmaDig_sound
Lemma Dig_sound :
(forall x bs s n c bsp sp, DigP x bs s n c bsp sp -> s <= 3 -> LPs (p11 x (gw bs s)) (gw bsp sp) n c) /\
(forall bs s n c bsp sp, DigT bs s n c bsp sp -> s <= 3 -> LPs (p10 (gw bs s)) (gw bsp sp) n c).
L733identical
87LemmaDig_sp
Lemma Dig_sp :
(forall x bs s n c bsp sp, DigP x bs s n c bsp sp -> sp <= 3) /\
(forall bs s n c bsp sp, DigT bs s n c bsp sp -> sp <= 3).
L753identical
88Lemmaepoch_ord
Lemma epoch_ord N x bs s n c bsp sp r : s <= 3 -> DigP x bs s n c bsp sp -> n + 2 <= N ->
GPhi (1 + n) (N + c - n) bsp sp r -> Phi 1 N (p11 x (gw bs s)) (rk r) (ry r).
L761identical
89Lemmaepoch_spec
Lemma epoch_spec N y n c bsp sp r : DigE y n c bsp sp -> n + 2 <= N ->
GPhi (1 + n) (N + c - n) bsp sp r -> Phi 1 N y (rk r) (ry r).
L769identical
90Definitionexs
Definition exs (bs : blks) : list nat := map snd bs.
L781identical
91Fixpointbumpl
Fixpoint bumpl (l : list nat) : list nat :=
match l with [] => [] | e :: l' => match l' with [] => [S e] | _ => e :: bumpl l' end end.
L783identical
92Lemmalength_bumpl
Lemma length_bumpl l : length (bumpl l) = length l.
L786identical
93Lemmalength_exs
Lemma length_exs bs : length (exs bs) = length bs.
L789identical
94Lemmaginc_exps
Lemma ginc_exps bs s : s <= 3 -> forall bs' s' d, ginc bs s = (bs', s', d) ->
(exs bs' = exs bs /\ d = false) \/
(exs bs' = bumpl (exs bs) ++ [0] /\ d = match bs with [] => true | _ => false end).
L793identical
95Fixpointqsum
Fixpoint qsum (l : list nat) : nat := match l with [] => 0 | e :: l => S e + 2 * qsum l end.
L808identical
96DefinitionQp
Definition Qp (f : nat) (bs : blks) (s p : nat) : nat := 2 ^ f * (gval bs s + 2 * qsum (exs bs) + p).
L809identical
97DefinitionQI
Definition QI (Q0 f : nat) (bs : blks) (s p : nat) : Prop := Qp f bs s p <= Q0 + 3 * 2 ^ (f + length bs).
L810identical
98Lemmaqsum_app0
Lemma qsum_app0 l : qsum (l ++ [0]) = qsum l + 2 ^ length l.
L812identical
99Lemmaqsum_bumpl
Lemma qsum_bumpl l : l <> [] -> 2 * qsum (bumpl l) = 2 * qsum l + 2 ^ length l.
L815identical
100Lemmagval_lb
Lemma gval_lb bs s : 4 * 2 ^ length bs <= gval bs s.
L823identical
101Lemmagval_ub
Lemma gval_ub bs s : s <= 3 -> gval bs s < 8 * 2 ^ length bs.
L826identical
102LemmaQI_low
Lemma QI_low Q0 f bs s p : QI Q0 f bs s p -> 2 ^ (f + length bs) <= Q0.
L829identical
103LemmaQI_Ps
Lemma QI_Ps Q0 Ps f bs s p : QI Q0 f bs s p -> Q0 < 2 ^ (Ps + 1) -> f + length bs <= Ps.
L836identical
104LemmaQI_drop
Lemma QI_drop Q0 f bs s p : QI Q0 f bs s p -> QI Q0 f bs s 0.
L842identical
105LemmaQI_cons
Lemma QI_cons Q0 f dd e bs s p : QI Q0 f ((dd, e) :: bs) s 0 -> p <= S e -> QI Q0 (S f) bs s p.
L845identical
106LemmaQI_inc
Lemma QI_inc Q0 f bs s p bs' s' d : s <= 3 -> ginc bs s = (bs', s', d) ->
QI Q0 f bs s (S p) -> QI Q0 f bs' s' (p + b2n d).
L858identical
107LemmaQI_et3
Lemma QI_et3 Q0 f : QI Q0 f [] 3 0 -> QI Q0 f [(false, 0)] 0 0.
L885identical
108Fixpointwpot
Fixpoint wpot (v : nat -> nat) (al be f : nat) (l : list nat) : nat :=
match l with [] => 0 | e :: l => v f * (al * e + be) + wpot v al be (S f) l end.
L890identical
109Fixpointvsum
Fixpoint vsum (v : nat -> nat) (f m : nat) : nat :=
match m with 0 => 0 | S m => v f + vsum v (S f) m end.
L893identical
110DefinitionPot
Definition Pot (v : nat -> nat) (al be ga Ps f : nat) (l : list nat) : nat :=
wpot v al be f l + ga * vsum v (f + length l) (Ps - (f + length l)).
L896identical
111Definitionmono
Definition mono (v : nat -> nat) : Prop := forall i j, i <= j -> v i <= v j.
L899identical
112LemmaPot_cons
Lemma Pot_cons v al be ga Ps f e l :
Pot v al be ga Ps f (e :: l) = v f * (al * e + be) + Pot v al be ga Ps (S f) l.
L901identical
113Lemmawpot_app1
Lemma wpot_app1 v al be f l x : wpot v al be f (l ++ [x]) = wpot v al be f l + v (f + length l) * (al * x + be).
L905identical
114Lemmawpot_bumpl
Lemma wpot_bumpl v al be f l : mono v -> wpot v al be f (bumpl l) <= wpot v al be f l + al * v (f + length l).
L912identical
115LemmaPot_ov
Lemma Pot_ov v al be ga Ps f l : mono v -> al + be + 1 <= ga -> f + length l + 1 <= Ps ->
Pot v al be ga Ps f (bumpl l ++ [0]) + v (f + length l) <= Pot v al be ga Ps f l.
L922identical
116LemmaPot_inc
Lemma Pot_inc v al be ga Ps Q0 f bs s p bs' s' d : mono v -> al + be + 1 <= ga -> Q0 < 2 ^ (Ps + 1) -> s <= 3 ->
ginc bs s = (bs', s', d) -> QI Q0 f bs s (S p) ->
Pot v al be ga Ps f (exs bs') + b2n d * v f <= Pot v al be ga Ps f (exs bs).
L934identical
117LemmaGPhi_pot
Lemma GPhi_pot v al be ga Ps Q0 : mono v -> al + be + 1 <= ga -> 1 <= al -> 2 <= be -> Q0 < 2 ^ (Ps + 1) ->
forall a b bs s r, GPhi a b bs s r -> s <= 3 -> forall f U, QI Q0 f bs s (b - 1) ->
(forall q, f <= q -> U <= v q) ->
match r with
| RE2 k x bs2 s2 => exists h, QI Q0 (f + S h) bs2 s2 0 /\
    U * k + Pot v al be ga Ps (f + S h) (exs bs2) + v (f + h) * (al * x + be) <=
… +3 lines
L949identical
118Definitionw
Definition w (q : nat) : nat := 2 ^ ((q + 1) / 2).
L1018identical
119Lemmaw_mono
Lemma w_mono : mono w.
L1020identical
120Lemmaw_lev
Lemma w_lev l q : 2 * l <= q -> 2 ^ l <= w q.
L1023identical
121Lemmaw_lev1
Lemma w_lev1 l q : 2 * l + 1 <= q -> 2 ^ S l <= w q.
L1030identical
122LemmaGPhi_QI
Lemma GPhi_QI Q0 Ps a b bs s k x bs2 s2 f : Q0 < 2 ^ (Ps + 1) -> GPhi a b bs s (RE2 k x bs2 s2) -> s <= 3 ->
QI Q0 f bs s (b - 1) -> exists h, QI Q0 (f + S h) bs2 s2 0.
L1037identical
123LemmaDig_cost
Lemma Dig_cost Q0 Ps : Q0 < 2 ^ (Ps + 1) ->
(forall x bs s n c bsp sp, DigP x bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  2 ^ l * n <= Pot w 2 8 11 Ps f (exs bs) + 2 ^ l * (2 * x + 2) + 13 * w Ps) /\
(forall bs s n c bsp sp, DigT bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  2 ^ l * n <= Pot w 2 8 11 Ps f (exs bs) + 13 * w Ps).
L1046identical
124FixpointMO
Fixpoint MO (u : nat -> nat) (l : nat) (es : list nat) : nat :=
match es with [] => 0 | e :: es => u l * e + MO u (S l) es end.
L1098identical
125Definitionpu
Definition pu (u : nat -> nat) (l : nat) : nat := match l with 0 => 0 | S l' => u l' end.
L1101identical
126Lemmapu_le
Lemma pu_le u l : mono u -> pu u l <= u l.
L1103identical
127LemmaMO_zero
Lemma MO_zero u l es : Forall (fun e => e = 0) es -> MO u l es = 0.
L1106identical
128LemmaDig_mass
Lemma Dig_mass u v Q0 Ps : mono v -> mono u -> (forall l q, 2 * l <= q -> u l <= v q) -> Q0 < 2 ^ (Ps + 1) ->
(forall x bs s n c bsp sp, DigP x bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  pu u l * c + MO u l (exs bsp) <= Pot v 1 3 5 Ps f (exs bs) + pu u l * S x + 6 * v Ps) /\
(forall bs s n c bsp sp, DigT bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  pu u l * c + MO u l (exs bsp) <= Pot v 1 3 5 Ps f (exs bs) + 6 * v Ps).
L1110identical
129LemmaDig_len
Lemma Dig_len Q0 Ps : Q0 < 2 ^ (Ps + 1) ->
(forall x bs s n c bsp sp, DigP x bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  2 * (l + length bsp) <= Ps + 3) /\
(forall bs s n c bsp sp, DigT bs s n c bsp sp -> s <= 3 -> forall l f, 2 * l <= f -> QI Q0 f bs s 0 ->
  2 * (l + length bsp) <= Ps + 3).
L1165identical
130Lemmapow_gt_self
Lemma pow_gt_self n : n < 2 ^ (n + 1).
L1190identical
131LemmaDigE_ex
Lemma DigE_ex y : y = t1 \/ y = p01 1 t1 \/ y = p10 (p00 t2) -> exists n c bsp sp, DigE y n c bsp sp.
L1193identical
132LemmaDigT_exists
Lemma DigT_exists Q0 : forall D f bs s, s <= 3 -> QI Q0 f bs s 0 -> Q0 + 1 - 2 ^ f <= D ->
exists n c bsp sp, DigT bs s n c bsp sp.
L1197identical
133DefinitionRel
Definition Rel (orig cur : list nat) : Prop :=
(forall i, S i < length cur -> nth i cur 0 <= nth i orig 0 + 1) /\
(forall i, length cur <= S i -> nth i cur 0 <= nth i orig 0).
L1231identical
134Lemmanth_bumpl
Lemma nth_bumpl l i : nth i (bumpl l) 0 = nth i l 0 + (if Nat.eqb (S i) (length l) then 1 else 0).
L1235identical
135Lemmanth_app0
Lemma nth_app0 l i : nth i (l ++ [0]) 0 = nth i l 0.
L1244identical
136LemmaRel_ov
Lemma Rel_ov orig l : Rel orig l -> Rel orig (bumpl l ++ [0]).
L1247identical
137LemmaRel_inc
Lemma Rel_inc orig bs s bs' s' d : s <= 3 -> ginc bs s = (bs', s', d) -> Rel orig (exs bs) -> Rel orig (exs bs').
L1257identical
138LemmaRel_tl
Lemma Rel_tl orig cur : Rel orig cur -> Rel (tl orig) (tl cur).
L1263identical
139LemmaRel_refl
Lemma Rel_refl l : Rel l l.
L1273identical
140LemmaGPhi_rel
Lemma GPhi_rel a b bs s r : GPhi a b bs s r -> s <= 3 -> forall orig, Rel orig (exs bs) ->
match r with
| RE2 k x bs2 s2 => exists h, Rel (skipn (S h) orig) (exs bs2) /\ x <= nth h orig 0 + 1
| RSp _ _ => True
end.
L1276identical
141LemmaGPhi_val
Lemma GPhi_val a b bs s r : GPhi a b bs s r -> s <= 3 ->
match r with RE2 k x bs2 s2 => 2 * gval bs2 s2 + a <= gval bs s + k + 2 | RSp _ _ => True end.
L1302identical
142Definitionv2
Definition v2 (q : nat) : nat := 2 ^ (q / 2).
L1317identical
143Definitionp2
Definition p2 (q : nat) : nat := 2 ^ S q.
L1318identical
144Definitioncst1
Definition cst1 (q : nat) : nat := 1.
L1319identical
145Definitionu1
Definition u1 (l : nat) : nat := match l with 0 => 0 | S l' => 2 * w l' end.
L1320identical
146Definitionu2
Definition u2 (l : nat) : nat := match l with 0 => 0 | S l' => 2 ^ S l' end.
L1321identical
147Lemmav2_mono
Lemma v2_mono : mono v2.
L1323identical
148Lemmap2_mono
Lemma p2_mono : mono p2.
L1325identical
149Lemmacst1_mono
Lemma cst1_mono : mono cst1.
L1327identical
150Lemmav2_le_w
Lemma v2_le_w q : v2 q <= w q.
L1329identical
151Lemmacst1_le_w
Lemma cst1_le_w q : cst1 q <= w q.
L1331identical
152Lemmau1_mono
Lemma u1_mono : mono u1.
L1334identical
153Lemmau1_w
Lemma u1_w l q : 2 * l <= q -> u1 l <= w q.
L1336identical
154Lemmau2_mono
Lemma u2_mono : mono u2.
L1347identical
155Lemmau2_v2
Lemma u2_v2 l q : 2 * l <= q -> u2 l <= v2 q.
L1349identical
156LemmaMO_u1
Lemma MO_u1 l es : MO u1 (S l) es = 2 * wpot w 1 0 l es.
L1356identical
157LemmaMO_u1_0
Lemma MO_u1_0 es : MO u1 0 es = 2 * wpot w 1 0 0 (tl es).
L1358identical
158LemmaMO_u2
Lemma MO_u2 l es : MO u2 (S l) es = wpot p2 1 0 l es.
L1360identical
159LemmaMO_u2_0
Lemma MO_u2_0 es : MO u2 0 es = wpot p2 1 0 0 (tl es).
L1362identical
160Lemmanth_le_MO
Lemma nth_le_MO h es : forall l, nth h es 0 <= MO cst1 l es.
L1364identical
161Lemmawpot_shift
Lemma wpot_shift v al be f f' l : mono v -> f <= f' -> wpot v al be f l <= wpot v al be f' l.
L1370identical
162Lemmawpot_drop
Lemma wpot_drop v al be f h l : wpot v al be (f + h) (skipn h l) <= wpot v al be f l.
L1376identical
163Lemmawpot_skipn_tl
Lemma wpot_skipn_tl v h l : mono v -> wpot v 1 0 0 (skipn (S h) l) <= wpot v 1 0 0 (tl l).
L1382identical
164Lemmawpot_le_nth
Lemma wpot_le_nth v l1 : mono v -> forall l2 f, (forall i, nth i l1 0 <= nth i l2 0 + 1) ->
wpot v 1 0 f l1 <= wpot v 1 0 f l2 + vsum v f (length l1).
L1388identical
165LemmaRel_nth
Lemma Rel_nth orig cur : Rel orig cur -> forall i, nth i cur 0 <= nth i orig 0 + 1.
L1399identical
166Lemmawpot_split
Lemma wpot_split v al be f l : wpot v al be f l = wpot v al 0 f l + be * vsum v f (length l).
L1401identical
167Lemmawpot_scale2
Lemma wpot_scale2 v f l : wpot v 2 0 f l = 2 * wpot v 1 0 f l.
L1403identical
168Lemmawpot_le_v
Lemma wpot_le_v v v' al be f l : (forall q, v q <= v' q) -> wpot v al be f l <= wpot v' al be f l.
L1405identical
169Lemmavsum_add
Lemma vsum_add v f m m' : vsum v f (m + m') = vsum v f m + vsum v (f + m) m'.
L1410identical
170Lemmavsum_mono_m
Lemma vsum_mono_m v f m m' : m <= m' -> vsum v f m <= vsum v f m'.
L1412identical
171Lemmavsum_cst1
Lemma vsum_cst1 f m : vsum cst1 f m = m.
L1414identical
172Lemmavsum_p2
Lemma vsum_p2 f m : vsum p2 f m + 2 ^ S f = 2 ^ S (f + m).
L1416identical
173Lemmawpot_p2_S
Lemma wpot_p2_S f l : wpot p2 1 0 (S f) l = 2 * wpot p2 1 0 f l.
L1421identical
174Lemmaqsum_p2
Lemma qsum_p2 l : 2 * qsum l + 2 = 2 ^ S (length l) + wpot p2 1 0 0 l.
L1423identical
175Lemmawpot_zero
Lemma wpot_zero v f l : Forall (fun e => e = 0) l -> wpot v 1 0 f l = 0.
L1428identical
176LemmaPot_top
Lemma Pot_top v al be ga Ps l : be <= ga -> length l <= Ps ->
Pot v al be ga Ps 0 l <= wpot v al 0 0 l + ga * vsum v 0 Ps.
L1430identical
177DefinitionWs
Definition Ws (P : nat) : nat := vsum w 0 P.
L1442identical
178DefinitionV2s
Definition V2s (P : nat) : nat := vsum v2 0 P.
L1443identical
179DefinitionPf
Definition Pf (k : nat) : nat := Nat.max 12 (k + 3).
L1444identical
180DefinitionAf
Definition Af (k : nat) : nat := 5 * Ws (Pf k) + 6 * w (Pf k) + 2 * Ws k.
L1445identical
181DefinitionBf
Definition Bf (k : nat) : nat := Af k + 5 * V2s (Pf k) + 6 * v2 (Pf k) + 2 ^ (k + 1).
L1446identical
182DefinitionXf
Definition Xf (k : nat) : nat := Af k + 5 * Pf k + 7.
L1447identical
183DefinitionCostf
Definition Costf (k : nat) : nat := 2 * Xf k + 2 + 2 * Af k + 11 * Ws (Pf k) + 13 * w (Pf k).
L1448identical
184DefinitionNlo
Definition Nlo (k : nat) : nat := 2 ^ (k + 3) - 8 * 2 ^ ((Pf k + 3) / 2).
L1449identical
185DefinitionNstar
Definition Nstar : nat := 17705.
L1450identical
186LemmaPf_mono
Lemma Pf_mono k k' : k <= k' -> Pf k <= Pf k'.
L1452identical
187LemmaWs_mono
Lemma Ws_mono P P' : P <= P' -> Ws P <= Ws P'.
L1454identical
188LemmaV2s_mono
Lemma V2s_mono P P' : P <= P' -> V2s P <= V2s P'.
L1456identical
189LemmaAf_mono
Lemma Af_mono k k' : k <= k' -> Af k <= Af k'.
L1458identical
190Lemmaw_SS
Lemma w_SS q : w (S (S q)) = 2 * w q.
L1464identical
191Lemmav2_SS
Lemma v2_SS q : v2 (S (S q)) = 2 * v2 q.
L1469identical
192Lemmavsum_SS_w
Lemma vsum_SS_w f m : vsum w (S (S f)) m = 2 * vsum w f m.
L1474identical
193Lemmavsum_SS_v2
Lemma vsum_SS_v2 f m : vsum v2 (S (S f)) m = 2 * vsum v2 f m.
L1476identical
194LemmaWs_SS
Lemma Ws_SS P : Ws (S (S P)) = 2 * Ws P + 3.
L1478identical
195LemmaV2s_SS
Lemma V2s_SS P : V2s (S (S P)) = 2 * V2s P + 2.
L1480identical
196LemmaPf_big
Lemma Pf_big k : 9 <= k -> Pf k = k + 3.
L1482identical
197LemmaAf_SS
Lemma Af_SS k : 9 <= k -> Af (S (S k)) = 2 * Af k + 21.
L1484identical
198DefinitiongB
Definition gB (k : nat) : nat := Af k + 5 * V2s (k + 3) + 6 * v2 (k + 3).
L1490identical
199LemmagB_SS
Lemma gB_SS k : 9 <= k -> gB (S (S k)) = 2 * gB k + 31.
L1491identical
200LemmagB_all
Lemma gB_all m : gB (10 + 2 * m) + 31 < 7 * 2 ^ (10 + 2 * m) /\ gB (11 + 2 * m) + 31 < 7 * 2 ^ (11 + 2 * m).
L1497identical
201LemmagB_ge
Lemma gB_ge k : 10 <= k -> gB k + 31 < 7 * 2 ^ k.
L1506identical
202LemmaN1
Lemma N1 k : 7 * 2 ^ k + Bf k < 2 ^ (Pf k + 1).
L1514identical
203LemmaCostf_SS
Lemma Costf_SS k : 9 <= k -> Costf (S (S k)) + 10 * (k + 3) = 2 * Costf k + 121.
L1525identical
204LemmaNlo_SS
Lemma Nlo_SS k : 9 <= k -> Nlo (S (S k)) = 4 * 2 ^ (k + 3) - 16 * 2 ^ ((k + 6) / 2) /\
Nlo k = 2 ^ (k + 3) - 8 * 2 ^ ((k + 6) / 2).
L1531identical
205LemmaD_all
Lemma D_all m : Costf (12 + 2 * m) + 123 <= Nlo (12 + 2 * m) /\ Costf (13 + 2 * m) + 123 <= Nlo (13 + 2 * m).
L1543identical
206LemmaN2
Lemma N2 k : Costf k + 2 <= Nstar \/ Costf k + 2 <= Nlo k.
L1555identical
207LemmaNstar_ge
Lemma Nstar_ge : 15 <= Nstar.
L1569identical
208DefinitionMw
Definition Mw (bs : blks) : nat := wpot w 1 0 0 (exs bs).
L1574identical
209DefinitionM2
Definition M2 (bs : blks) : nat := wpot p2 1 0 0 (exs bs).
L1575identical
210DefinitionInv
Definition Inv (k N : nat) (y : word) : Prop :=
Nstar <= N /\ Nlo k <= N /\
((exists x bs s, y = p11 x (gw bs s) /\ s <= 3 /\ length bs <= k /\
    Mw bs <= Af k /\ M2 bs <= Bf k /\ x <= Xf k)
 \/ y = t1 \/ y = p01 1 t1 \/ y = p10 (p00 t2)).
L1578identical
211Lemmanext_inv
Lemma next_inv k N n c bsp sp r :
GPhi (1 + n) (N + c - n) bsp sp r -> sp <= 3 -> n + 2 <= N -> Nstar <= N -> Nlo k <= N ->
MO u1 0 (exs bsp) <= Af k + 5 * Ws (Pf k) + 6 * w (Pf k) ->
MO u2 0 (exs bsp) <= Af k + 5 * V2s (Pf k) + 6 * v2 (Pf k) ->
MO cst1 0 (exs bsp) + 1 <= Xf k ->
2 * length bsp <= Pf k + 3 ->
… +1 lines
L1584identical
212Lemmainv_step
Lemma inv_step k N y : Inv k N y -> exists kk y', Phi 1 N y kk y' /\ exists k', Inv k' (S kk) y'.
L1641identical
213Fixpointorbit
Fixpoint orbit (f n N : nat) (y : word) : option (nat * word) :=
match n with
| O => Some (N, y)
| S n => match phif f 1 N y with Some (k, y') => orbit f n (S k) y' | None => None end
end.
L1700identical
214Lemmaorbit_sound
Lemma orbit_sound f n : forall N y N' y', orbit f n N y = Some (N', y') -> K N y -->* K N' y'.
L1706identical
215DefinitionB692
Definition B692 : blks := [(false, 6); (false, 1); (true, 1); (true, 1); (false, 1);
(true, 1); (false, 1); (false, 1); (true, 1); (false, 0)].
L1714new
216DefinitionY692
Definition Y692 : word := p11 16 (gw B692 0).
L1716new
217Lemmafin7
Lemma fin7 : orbit 100000 687 17 t1 = Some (17724, Y692).
L1718new
218Lemmainv7
Lemma inv7 : Inv 10 17724 Y692.
L1721new
219Lemmanonhalt_from_c
Lemma nonhalt_from_c c N0 y0 (P : nat -> word -> Prop) :
c -->* K N0 y0 -> P N0 y0 ->
(forall N y, P N y -> exists k y', Phi 1 N y k y' /\ P (S k) y') ->
~ halts tm30 c.
L1729new
220Lemmanonhalt_E
Lemma nonhalt_E : ~ halts tm30 (E;; tape0).
L1743new
221Definitionphi
Definition phi (q : Q) : Q :=
match q with A => E | B => A | C => B | D => F | E => C | F => D end.
L1751new
222Lemmaperm7
Lemma perm7 : Perm (flip tm) tm30 phi.
L1754new
223Lemmanonhalt
Lemma nonhalt: ~halts tm c0.
L1761adapted
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 98: 4. Why the rest of the parent's argument applies unchanged (no heading names the rules; this is the first section on what carries over)

The parent's argument has three kinds of parts. Statements about the table hold for every configuration. Statements about one epoch hold for any epoch K(1, N, Y) with Y ∈ H and enough budget. The rest is the orbit induction with its base and its finite part. Only the base and the finite part refer to the starting configuration.

parent part depends on the start? for this machine
§1 the halting transition (D0 = this machine's F0) no §1 maps it
§3 rules W1–W11, S1–S3, RP0/RP1, LP*, B, eats E1g/E2g/E0/Et1–Et3, R, D6 (exact runs in every context) no: statements about the table unchanged
§4 Lemma H, eat coverage, the one-epoch corollary no: for any epoch K(1, N, Y) with Y ∈ H unchanged
§5 D.0 (positions, (P1), (P2), Lemma P, Lemma C, termination of Φ) no: per digestion unchanged
D.1 cost recursion, D.2 levels, D.3 shape and mass bound, D.5 value bound no: per epoch unchanged
D.4(a), (b), (e), (r) no: from epoch t to t+1 unchanged
D.4(c) unrolling (the chain stops "at epoch 3 (whose residue t2 is special)") only through the base stops at e5 (residue t1, special) instead. In D.6 it is subsumed by the step (I2)t ⇒ (I2){t+1}.
D.6 orbit invariant (I1)–(I4) only the base base = §3. The step uses only D.4, Lemma C, D.5 and N_{t+1} > N_t
D.7 Bnd, Bnd_worst(κ), F = {0..11}, N* = 14,796, the closed-form tail for κ ≥ 64 no: arithmetic in κ unchanged
D.8 finite part (the epochs with N < N*) yes computed for this machine's orbit (§5)
§6 initial segment yes replaced by §2
§7 conclusion only "t ≥ 3" reads "t ≥ 5"

Spelled out:

  • The induction runs from t = 5. While N_t < N*, the step "epoch t finishes" (β_t ≤ N_t − 2) is the explicit computation of §5. For N_t ≥ N* it is D.7, with the same case split on κ_t ∈ F.
  • Every epoch has N_{t+1} ≥ N_t + 1 (parent §4, corollary), so N reaches N* after finitely many epochs and stays above it.
  • Every epoch reaches the next left record. So the sequence of left records is infinite, and this machine never halts.

The parent's finite part cannot be reused. This machine's orbit from e5 shares no epoch (N, Y) with the parent's orbit from its epoch 3, nor with the third start's orbit, up to N = 20,000 (X6). The starts do not merge before the threshold, so this machine needs its own finite part.

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

6 machines, 3 killed, 3 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
#30 kill 151RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC✓Killed: never haltsparent link; = #7's table mirrored, run from state B; named in #30's notes.md; named in #7's .v header; named in #7's proof.md; named in #7's notes.md · review · compared side by side above · mechanism
#7 kill 161RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA✓Killed: never haltsthis kill
#31 kill 171RB1RF_1LC0RD_---0LD_1LE0LD_1RA0RF_0RE0LB✓Killed: never halts= #7's table mirrored, run from state C; named in #31's proof.md; named in #31's notes.md; named in #7's proof.md · review · mechanism
#101RB0RF_1RC1RF_1LD1RA_---0LE_1LA0LE_0RA0LC⚠Cryptid candidatevia #30: targeting: follow-on to #10; named in #30's notes.md · mechanism
#151RB1RF_1LC1RE_---0LD_1LE0LD_1RA0RF_0RE0LB⚠Cryptid candidatevia #31: targeting: follow-on to #15 · mechanism
#281RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF1LB_---0RA⚠Cryptid candidatetargeting: follow-on to #7 · mechanism
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 405 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 71.46 s
  • ✓
    .v hash matches the checked hash
    .v = checked sha256 dfb0fb2c8b2a…; submission/ copy = checked sha256 dfb0fb2c8b2a…
  • ✓
    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 questions are now yes/no questions about the figures. Moved off the card (strategy calls, not figure reading; settle them in proof.md / Checkpoint B):
  • ○
    Family posted together?
    2 other kill(s) in the family: #30, #31; the Discord draft names 2 of them; 3 member(s) not killed: #10, #15, #28

Generated by tools/killreview.py at 2026-10-16 13:29 PDT in 0.1 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 1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA

Files

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

namesizechanged
notes.md ↓45 KB2026-10-11 00:13
proof.md ↓21 KB2026-10-10 23:55
how_proved.md ↓1.5 KB2026-10-14 10:51
status.json ↓377 B2026-10-11 00:12
observe.json ↓13 KB2026-10-10 13:13
deepen.json ↓20 KB2026-10-10 15:03
1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA.v ↓90 KB2026-10-10 23:57
data/6 items2026-10-10 23:35
decisions/4 items2026-10-11 00:15
img/12 items2026-10-16 10:28
rocq/4 items2026-10-11 00:00
scripts/24 items2026-10-10 23:22
submission/6 items2026-10-11 00:12
work/1 item2026-10-11 00:15
check_proof.py ↓26 KB2026-10-10 23:51
fuzz_shapes.py ↓1.4 KB2026-10-10 00:39
qsim.jsonl ↓33 KB2026-10-10 00:08
rulefit.json ↓71 KB2026-10-10 00:11
rulefit.txt ↓2.9 KB2026-10-10 00:11
validate_rules.py ↓3.5 KB2026-10-10 00:38
validation.json ↓335 B2026-10-10 00:38
status.json in full
{
 "tm": "1RB0RA_1LC0LD_1LE1LD_0LB0RE_1RF0LA_---0RA",
 "status": "KILLED_NONHALT",
 "stage": "done",
 "updated": "2026-10-11",
 "reason": "check_kill PASS, independently re-verified",
 "label": "#7",
 "parent": "1RB0RF_1RC1RF_1LD0RE_---0LE_1LA0LE_0RA0LC",
 "relation": "sibling of #30: #30's table mirrored and renamed (A,B,C,D,E,F -> E,A,B,F,C,D), started in #30's state E"
}