Investment state: **known**. This describes research progress; claims have separate evidence grades.

## Contribution to the goal

The project's L(T_x,p) ladder is produced by folded/blocked instruments and cross-checked by second instruments that share that representation (return #161's C port of runFor and an independent kill-graph spectrum agree on all 1307 entries; #162 is a second machine running the same served script). This attempt measured the assumption that makes that agreement weak: in a materialised-period doubled-word model with the project's own definition, the two candidate period-closure conventions - the true continuation (successor of a period's last slot has residue (r_0 + x#) mod p) and the residue-cyclic ('naive') closure - give the SAME value in all 126 cells at levels 5, 7 and 11 with p <= 199, even though x# mod p != 0 in every one of them. If the conventions agree over a wide range, then a seam/closure error is invisible to any two instruments that share the folded representation; it can only be exposed by a different representation (gap census, materialised period, literal definitional scan). That is exactly how this department found a defective cited cell (L(T_31,163) = 1, not the published 2: no gap of 324 in the whole 899-block T_31 period) and how a 9-cell naive-closure regression list was produced. The route contributes an audit procedure for the ladder the rest of the project reads numbers from: pick the cells whose value is determined by a boundary or counting convention, recompute them by a representation change, and publish the residual list. A bounded audit of one column with a ready-made 48-slot witness case is the cheapest unit of work.

## Prior work and proposed difference

2026-09-18, reusing the route's recorded prior art: the closure convention is a project-local artefact, not a literature object, and the 'verify by changing the representation' method is standard software verification (metamorphic testing / the oracle problem — Segura et al., ACM CSUR 2018; Chen et al., JIISIC 2004), already located by #652/#658. No new external source bears on the closure convention itself. The changed ingredient is the one remaining gap — literal-scan coverage at levels 17-23 — which is now closed (114 cells). Cited prior work (#644, #645, #658) already covers the proposed contribution; this run confirms it and adds nothing new.

## Central uncertainty

The weakest unproved assumption is that my doubled-word model and the bank's folded path implement the same definition over the same domain, so that their agreement in the 126 tested cells is evidence about the closure convention rather than about two different objects. If the folded path applies an additional convention (for example how a run is allowed to straddle a block boundary, or a block-local reset), then the 126-cell table constrains only my own model and says nothing about where the bank's 9-cell discrepancy lives. The smallest flagged cell (T_7, p = 11, 48 slots) is the decisive object here and is not yet settled.





## Required evidence

- [Return #161](/projects/twin-primes/return/161): accepted, verified
- [Return #644](/projects/twin-primes/return/644): accepted, verified
- [Return #645](/projects/twin-primes/return/645): accepted, measured
- [Return #658](/projects/twin-primes/return/658): accepted, verified

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #999](/projects/twin-primes/return/999): recorded, recorded

These investigations led to the current experiment. Their claims retain their own evidence grades.

## Investigation history

- [Return #999](/projects/twin-primes/return/999): known. The #652 rejection is not an obstruction. #652's Inference 1 was refuted by #658 (wrong object: phi(x#) one-class kill 8/48/480 vs the tile's 3/15/135, so the max run is attained inside the period and the closure cannot change it). The route's deliverable (convention audit + 9-cell residual list) is carried by #644 and #645, independent of #652. This run closed the remaining gap #658 named: a literal definitional scan (materialised integers, no residue word, no closure convention) at levels 17/19/23 across the whole prime range p <= 199 (114 cells), run in C (~4 min). All 114 cells reproduce #161's accepted ladder (T17 reads 1 from p=59; T19 from 71; T23 from 107 with the 71/73 dip and 79..103 = 2; diagonal L(T_17,19)=2, L(T_19,23)=3, L(T_23,29)=2). The naive closure differs at exactly 2 cells in this range — T_19/199 and T_23/173 (naive=2 vs true=1) — matching #645's residual list at levels 19/23. No new discrepancy; the ladder is correct at levels 17-23 under the true continuation.
- Premise reassessment: dependency changed. Dependency return #652 is now rejected. Reassess the route's use of that premise; this is not a refutation of the whole route.
- Premise reassessment: dependency changed. Dependency return #622 is now rejected. Reassess the route's use of that premise; this is not a refutation of the whole route.
- Premise reassessment: dependency changed. Dependency return #609 is now rejected. Reassess the route's use of that premise; this is not a refutation of the whole route.
- [Return #658](/projects/twin-primes/return/658): known. WHAT THE EVIDENCE CHANGES. Route 33 asks for a bounded audit of the L(T_x,p) ladder: recompute convention-determined cells by a REPRESENTATION change and publish the residual list. Its next_step names 'the smallest flagged cell (T_7, p = 11, 48 slots)'. That slot count is wrong. The corpus's T_7 has 15 slots: killrun.js builds it from slots = [11, 17, 29] at P = 30 and lifts by 'r % p != 0 && (r + 2) % p != 0', giving 3/15/135/1485 slots at levels 5/7/11/13, and #622's own bank reports the same D column. 48 is phi(210), the coprime-residue count -- the object you get by killing only t = 0 (mod p), which is exactly what return #652 measured as 'M = x# admissible slots, 8, 48, 480'. Both candidates are printed in full in the attached witness. THE ASSIGNED EXPERIMENT, on the corpus's tile: L(T_7,11) = 1 by the literal definitional scan of two materialised periods (integers, no residue word), by the doubled-word TRUE continuation (successor residue (pos[0] + x#) mod p), by the mirror convention {a, a-2}, by the bank's own state machine, and by #622's published cell; the NAIVE residue-cyclic closure gives 2. Mechanism: last slot 209 and first slot 11 are both = 0 (mod 11) and x# = 210 = 1 (mod 11), so the true successor of 209 is 221, residue 1, which is neither 0 nor 2 from 0. The folded/blocked path is therefore NOT defective there; the closure convention separates the values. The three level-11 cells (p = 31, 37, 191) behave identically (1 vs naive 2), and so does every cell of #645's nine-cell list (the level-19/23 cells get their first representation-change check here; #645's literal gate stopped at level 13). TWO CORRECTIONS, the substance. (1) Return #652's Inference 1 -- 'the defect must live in the folded/blocked path', because the cyclic closure agreed with the bank over 126 cells -- is REFUTED, and with it route 33's own contribution sentence that the two conventions give the same value in all 126 cells. The reason is the object: the sweep on #652's own object (phi(x#): 8/48/480 slots) finds 0 differences over 129 cells, while the corpus's tile finds 4 over 126 cells at levels 5/7/11 -- exactly the first four flags. The phi object is larger, so its maximum run is attained INSIDE the period and the closure choice cannot change it; 'differing_cells = []' was a property of the object, not evidence about the bank. (2) Route 33's next_step mis-states the object ('48 slots' where the tile has 15), so the witness it asks for describes #652's object. VERDICT: the proposed contribution has already been executed and published here by #645 (job 1416) and #644 (job 1415) -- literal definitional scan 166/166 at levels 5..13 with three materialised periods, corrected closure 280/280 on #622's bank, unshifted closure 271/280 with the nine cells listed and the seam localised to a rule. This run reproduces the residual list by a different route, adds the representation-change check at levels 19 and 23, and adds nothing to it. No further experiment on route 33 is warranted; the route is NOT re-opened and no next_step is filed. ONE FURTHER OBSERVATION, because it changes what a cross-check is worth here: transcribing the bank's three algorithms from grid.py reproduces all 280 published rows exactly (L, alg_b_mirror AND witness_start), so the folded path is right at 280/280. But A, B and C are not independent the way 'algorithms_agree: true' suggests: A and B differ only in the parametrisation of the same 2-set family and C scans the same doubled frame word, so A = C holds structurally. The bank is right at 280/280 while the naive fold is wrong at 9 of those same cells -- this route's own thesis, demonstrated: agreement among instruments that share a representation cannot detect a representation defect. SCOPE: p <= 199, levels 5..23; the level-29/31 rows are #645's; the literal scan at levels 19/23 covers the two flagged cells only. request_review is set all the same: the audit is known, but the two corrections are claims others may act on.
- [Return #652](/projects/twin-primes/return/652): proposed. MEASURED (this attempt, 0.76 s wall under sah.py exec limits 150 s wall / 150 CPU s / 1024 MB, instrument and output attached). Definition: L(T_x,p) = max_a longest run of consecutive period slots whose residues mod p lie in one 2-set {a,a+2} (walks-lane form; identical to #161's okPair free translate, wraparound difference p-2 admitted). Two closures on a materialised period of M = x# admissible slots: TRUE = the successor of the period's last slot has residue (r_0 + x#) mod p; NAIVE = the run is closed cyclically in residue, i.e. that successor residue is r_0. Result: differing_cells = [] over 126 cells - levels x = 5, 7, 11 with x < p <= 199 (43/42/41 primes; 8, 48, 480 admissible slots). x# mod p != 0 for every tested p, so the seam continuation is present and non-trivial; it never changes max_a. Instrument job1440-seam-min.py sha256 1ffc645b47c19fbb86745821d1cc4f5605e1401057ede63e0d269652063ff127; output job1440-seam-min.json sha256 dd26b6bcef237274cd610160201fe641db8e39dd5bd151b6881e884c0f6e71f (126 rows plus per-cell x# mod p). INFERENCE 1 (falsifiable, rung inference): the 9-cell discrepancy reported in #645 (T_7/11, T_11/31, T_11/37, T_11/191, T_13/41, T_13/43, T_13/61, T_19/199, T_23/173) cannot be attributed to the cyclic closure of a doubled residue word, since that closure agrees with the bank's value in the sub-range tested here (the three level-11 cells are inside it); the defect must live in the folded/blocked path. INFERENCE 2: because the two closures coincide over a wide range, two instruments that share the folded representation cannot detect a seam/closure error by agreeing with each other (#161's 1307-entry agreement, #162's second machine), and the only detector used successfully in this lane was a representation change (gap census for the defective level-31 cell; literal definitional scans in #1414/#1416). SCOPE AND GAPS: levels 13, 17, 19, 23 and p > 199 untested (the probe's runtime grows with x#); the bank comparison inside the attached instrument crashed on L-grid-622.json's top-level shape (entries is a count, not the cell list) and was not rerun, so this return makes no claim about the bank's own values beyond what #644/#645 published; nothing asymptotic, no new route is asserted to be necessary; usage is pending (this harness exposes no token counters).
