W7-5 · 1RB0RD_0LC0RA_1LA1LC_1RE0LF_0RA1RF_1LB--- (740 line 274; table family 514)
Status: CHECKPOINT_B, stage informal_proof (proof.md written 2026-10-14; Checkpoint B review: sound, 5 minor gaps, all fixed; check_proof.py 82/82). Confidence on the mechanism: high.
Class: sheet "Skelet 1-like Class 1". Ours: an exact base-4 counter. Its digits are four fixed-size defect words in a sea of 100; the least significant digit sits at the right end; every other overflow gives birth to a new digit at the right end; the most significant digits pile up in a zero-field cluster at the left wall and keep counting there (pushes).
Viewer: https://bbchallenge.org/1RB0RD_0LC0RA_1LA1LC_1RE0LF_0RA1RF_1LB---
Checks
- Byte-exact: line 274 =
1RB0RD_0LC0RA_1LA1LC_1RE0LF_0RA1RF_1LB---, line 514 =1RB---_0RC0LD_1RD1RC_1LB0LE_1LF0RA_0LD1LA(data/holdouts/BB6_holdouts_740.txt). - One table, six starts (scratchpad starts.py, work/starts.txt): A = 274 and F = 514 (514 is start F, mirrored; both on the 740 and 778 lists and in eqv_1590). B, C, D, E are not listed (B0 = 0LC makes B = C after one step; E0 = 0RA makes E = A after one step). No start is in solved_index.
- State map 514 -> 274: A->F, B->B, C->C, D->A, E->D, F->E, L<->R. So 274's D-record (below) is 514's E-record, with the tape mirrored.
- Claims: none before; claimed the representative in coord/claims.tsv as
Wave 7 W7-5. Not Astra's (Astra's latest claims are lines 147/493/169/109/141/551). Census: owner, PR and tags empty; collatz flag 4 (qsim block 2);w6_excluded = mined-class. - Ledger before work: 6 rows (2 Astra equivalence sweeps, negative; the sibling-residue scan; 2 Wave 7 triage rows; the plan critic audit). No earlier proof attempt. Older scouting: wave6 scout-templates "R274-514 rescaled/fossil twin (field values)", which this note confirms and explains.
Halting condition
F1 is the only undefined transition. F is entered by D1 (0LF) and E1 (1RF). So a halt needs D reading a 1 with a 1 on its left, or E reading a 1 with a 1 on its right. Never seen; no sweep of any tested kind (real, random, exhaustive small) halts.
Mechanism (exact)
Notation: s = 100 (sea word). Digit words, phase p:
| p | word | token |
|---|---|---|
| 0 | 11001100 |
tt |
| 1 | 110000 |
v |
| 2 | 1001100 |
s t |
| 3 | 10000 |
u |
Wall: 1100 (t) or nothing. A D-record is the moment the head steps onto a fresh cell at the right end in state D. At every D-record from step 108 (274) or step 792 (514) on, the tape is
0^inf [wall] P(p1) s^f1 P(p2) ... s^f(k-1) P(pk) s^R 100 D> 0^inf
with the first digit right after the wall (no leading field), fields f >= 0 and R >= 2. scripts/macro.py and model.decode_rle decode any drec line into this form.
- Sweep = increment (R1, R2). From a D-record the head runs left to the first digit with p < 3 and back. - Every digit with p = 3 wraps to p = 0 and moves 2 cells left. The first digit with p < 3 goes to p + 1 in place. The right end grows by 4 cells. - Fields follow from positions (the sea between two digits is never touched except by the head crossing it). So the field to the right of a digit loses 1 at its 1->2 and 3->0 steps (2 per full cycle), and R gains 2, 1, 2, 1 for p = 0, 1, 2, 3 (6 per 4 sweeps).
- PUSH (zero fields). A digit never overlaps its left neighbour. When a field would become -1, the right digit is pushed 3 cells right and the field to its own right pays (cascading through zero fields). So fields never go negative, and digits whose field died stay separate digits in a cluster at the left and keep counting.
- Overflow (O1, O2). When every digit is 3, the carry reaches the wall. All digits wrap.
- O1, wall
1100-> none: the wall disappears. - O2, none -> wall1100: a wall appears 5 cells left of the old left end; every digit moves 2 more cells left (an extra pass over the whole tape); a new digit P(3) is born at the right end with R = 2 (the old R becomes its left field); the right end grows by 7. - Steps (R3), exact. With pre-sweep fields: R1/R2 = 8(R + fields crossed) + 52 per wrapping digit + 32 (stop at p = 0, 2) or 76 (p = 1) + 20 per push word; O1 = 8(R + all fields) + 52k + 32 + 20 per push word; O2 = 10(R + all fields) + 50k + 101 + 20 per push word.
- Counting. It is a plain base-4 counter. O1 -> O2 takes exactly 4^k sweeps and O2 -> O1 takes 4^k - 3 (the newborn starts at 3). One new digit per two overflows: births at steps 477, 7,910, 119,447, 1,874,600, 29,808,277, 476,169,214, 7,615,621,471 (274). At birth the newborn's left field is 3·4^(k-1) - 5 (3067, 12283, 49147, ...) and R at O1 is 1.5·4^k - 3. Each field then shrinks by 2 per cycle of its left digit, dies, and its digit joins the cluster. At 1e9:
[t] P1 P3 P1 P1 | 128 P1 | 1809 P2 | 11344 P1 | R 11267; at 1e11: 6 cluster digits and 2 isolated ones.
Validation
- Real runs (scripts/check_steps.py on work/drec_*_1e9.txt, every consecutive pair of D-records to 1e9): 274 18,410/18,410 sweeps (R1 13,803, R2 4,596, O1 5, O2 6), configuration and step count exact. 514: 18,410 of 18,411 consecutive pairs exact (R1 13,803, R2 4,596, O1 6, O2 5); the only miss is the transient O2 at step 551 (it lands at step 792), from a tape with a leading sea word, before 514 enters the language (re-run 2026-10-14). From step 792 on, which is the range proof.md uses, check_proof.py G gives 18,406/18,406 (R1 13,800, R2 4,596, O1 5, O2 5). An earlier version of this line said "18,405/18,405 from step 792", which was wrong.
- Random instances against the TM (scripts/rules_random.py): 12,000/12,000 configuration and step count (R1 4,554, R2 2,915, O1 2,260, O2 2,271; walls both ways, 1-6 digits, fields 0..15 with many zeros, forced overflows and long carries).
- Exhaustive small configurations (scripts/closure_small.py, k <= 4, fields 0..3, R 2..8, both walls; 244,640 cases): inside the domain "predicted R >= 2, and R >= 2k + 2 at O2" all 244,030 are exact (R1 183,498, R2 59,912, O1 587, O2 33). The 24 failures are all outside it (R of 2-3 with every field zero; 6 of them leave the language, none halts). Real runs have R >= 1.5·4^k - 3 at every overflow, so the domain condition always holds there; the proof must carry it as an invariant (see Route).
- Exact sweep simulator (scripts/macrosim.py: model + R3, no TM) = C core at the first D-record after 1e11 on both starts, configuration and step count (274: step 100,001,300,895, hi 642,905; 514: step 100,000,054,594, hi 642,914; scripts/validate_far.py, work/drec_*_first_after_1e11.txt).
- Push sweeps on their own: 156 real (both starts) and 3,000 random push sweeps, configuration and steps exact.
- Far runs (scripts/macrosim.py, work/far_*_1e16.{jsonl,log}): 274 to step 10,000,000,405,212,800 (56,373,979 sweeps) and 514 to 10,000,000,455,800,403 (56,373,976 sweeps), no halt, no sweep outside the tested domain, 13 digits at the end (10 in the cluster), span 225,496,005. Births continue on schedule: O2 at 3.1e13, 5.0e14 and 8.0e15.
- Direct C core: 1e9 on both (work/direct_1e9_*.jsonl), 1e11 on both (drec2), no halt. qsim (30 s each): block 3 no rules, 1.26e11 steps; block 6 one unused parity-flagged rule, 3.4e11 steps; block 2 is misaligned with the 3-cell sea (7 flagged rules, no acceleration). compress track (3e8, 150 records): 150 distinct skeletons; the generic compressor does not see the counter, scripts/macro.py does.
Both starts (start-parametric)
514 is start F of the same table, mirrored. Both enter the same language (274 at step 108 as P1 s^2; 514 at step 792 as [t] P0 s^7 P3 s^2) and then follow the same rules with the same counter value and the same field sizes, except one field that is 4 words longer on 514 (128 vs 132 at 1e9, 199 vs 203 at 1e11). That offset moves into the next field each time the cluster absorbs a digit. So one closed-language argument covers both lines; each start needs only its entry lemma (108 and 792 steps of direct simulation).
Cryptid check (stop rule applied early)
Not a cryptid. Every branch is on a phase (mod 4), the wall bit, or a field being zero; every event rule is affine in the field sizes; the counter runs through every value 0..4^k - 1 in order; no x(p/q) maps, no branching on residues of growing numbers. The class kill switch is not triggered by this table. Stop rule respected: no stage 1 work was started (W7-4's stage 1 has not reported; its observe says GO).
Template check
- verify/Sk1Machines.v (mxdys; Sk1Counter / Sk1CounterMixed): digits with take/give/carry over a periodic W, proved from
wallandonehypotheses. Our R1/R2 are this shape with W =100and four fixed-size digit words (no unbounded digit size, unlike W7-4). Three gaps: (a) a wrap moves a digit 2 cells, not a whole W, so the digit words need a re-cut beforeonereads as take/give; (b) the zero-field cluster needs pushes, which the Sk1 batch rule excludes ("all consumed W must be initially available"); (c) O2's extra pass and the birth. Applies: partly. - W7-4 (82/464/722): same sea, same two-state wall with births on every other overflow. There the digits are unbounded
X (10)^m Ythat glue on merge (J mod 3 law); here digits are fixed size and a dead field becomes a push. W7-5 does not need W7-4's J invariant or wall-remnant table. Shared: decoder style and sweep-simulator shape. - Our #30 / #7 (binary counter fed by a marker bouncing through 3-cell budget blocks): same family of proofs (closed counter language + sweep lemmas).
Route and next step
Proof = a closed language L plus rule lemmas:
1. sea-crossing lemmas (left and right passes over 100^n);
2. digit lemmas: 4 phases x (stop or wrap), plus the zero-field neighbour cases;
3. a push lemma by induction over a run of zero fields;
4. the two overflow lemmas (O1, O2 with birth);
5. an invariant for the domain condition (R >= sweeps since the last birth, which exceeds 2k + 2 when the next O2 comes), or explicit closed forms for all fields in terms of the counter value;
6. entry lemmas for 274 (108 steps) and 514 (792 steps).
The counter is simpler than W7-4's (fixed digit words, no glue), so this table does not really depend on W7-4's stage 1. A purely regular certificate is unlikely as is, because the domain condition counts. The planner's stop rule still holds; decision.json asks whether to lift it.
Attempts
- 2026-10-14 claude observe (table level, ~2 h): mechanism found and validated as above; ledger row added.
- 2026-10-14 claude rule-fit: R1/R2/PUSH/O1/O2 + R3 steps, validated on real, random and exhaustive small instances (numbers above); ledger row added.
- 2026-10-14 claude halting-sim: exact sweep simulator = C core at 1e11 on both starts; far runs (numbers above); ledger row added.
- 2026-10-14 claude cryptid-check: negative (not cryptid); ledger row added.
- 2026-10-14 claude hand-proof (informal, start-parametric, ~2 h): proof.md + check_proof.py (79 checks, 0 failures, ~7 s). Pass lemmas S0, L1-L7, RA1-RA3, RE1-RE2 proved for all exponents by symbolic execution (proof_scripts/symx.py, six shift rules Ch1-Ch6); sweep = their composition over a processed tail of X = (10)^4 and s (proof_scripts/sweep.py), exact vs the machine on 5,636 random + 74,587 small in-domain configurations and on every real D-record to 1e9 and at 1e11 (both starts). Invariant: birth configurations B(k; f) with f_(k-1) >= (4^k - 4)/3; epoch theorem B(k) -> B(k+1) in 24^k - 3 sweeps, newborn field 34^k - 5 (or -6). Openings: 274 blank -> B(3; 0, 41) at step 7,910 (the first birth, B(2; 3) at 477, is one below the bound); 514 = start F mirrored (phi) -> B(2; 7) at 792. Correction to the observe notes: the newborn's left field is 3*4^k - 5 only from the second epoch on (274's first births give 3 and 41). Old decision.json (start/wait/park) archived as decisions/2026-10-14-superseded.json (not answered; moot). Ledger row added.
- 2026-10-14 claude Checkpoint B gap fixes (~30 min): the review found the proof sound with 5 minor gaps; all fixed (proof.md section 11, Review log). S0 sentence corrected (it visits only the four cells of 1010); the O2 field law is now derived in proof.md 4.3 (gaps g_1..g_m: g_1 - 1, g_2..g_(m-1), g_m - 1, or g_1 - 2 if m = 1); r' = rest of r + 2 covers RA2/RA3/L5e; the 5.2 (D2) argument is split into m >= 2 and m = 1; the 514 counts above corrected. check_proof.py now 82 checks (new: S0 cell by cell [B]; endings of non-O2 sweeps and the gap rule against the machine on 3,389 in-domain O2 configurations [E]; m at the O2 sweep [F]); 82/82, 0 failures, 7.3 s. proof_scripts/sweep.py now also reports the lemma that ends each sweep. Status CHECKPOINT_B. Ledger row added.
Files
- proof.md, check_proof.py, proof_scripts/ (symx.py symbolic executor, sweep.py abstract sweep, tm.py simulator and decoders): the informal proof and its checks.
- scripts/: drec.c (C core: token RLE at every D-record, or the first after step S), tok.py, macro.py, model.py (language, rules, R3, TM sweep runner), check_real.py, check_steps.py, rules_random.py, closure_small.py, macrosim.py (exact sweep simulator), validate_far.py, digitmap.py.
- work/: drec_{274,514}1e9.txt (every D-record to 1e9), drecfirst_after_1e11.txt, direct_1e9.jsonl, macro_events_1e11.jsonl, far1e16.{jsonl,log}, closure_small.txt, qsim_n{2,3,6}_.jsonl, compress_track_*.txt, tok_274_every1e7.txt, starts.txt.
- img/: default_site_1e4.png, sweeps_carry_closeup.png, digit_worldlines_1e9.png, overflows_right_records.png, default_site_1e4_514.png.