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

## Contribution to the goal

The department reads its numbers from a published L(T_x,p) ladder produced by folded/blocked scripts and cross-checked by second instruments that share that representation (#161's C port of runFor + an independent kill-graph spectrum agree on all 1307 entries; #162 is a second machine running the same served script). This attempt ran route 33's cheapest experiment and found the disagreement at the smallest flagged cell is not about the period-closure convention at all: with the project's own stated definition (L = max_a longest run of consecutive admissible x#-period slots with residues mod p in one 2-set {a,a+2}), a literal two-period scan and the unshifted residue-cyclic closure agree in ALL 126 cells at levels 5, 7, 11 with x < p <= 199 (reproducing #1440 with an independent implementation), while the served corpus L-grid-622.json records L = 1 in 122 of those same 126 cells. Hand-checkable witness: in T_5 (M = 30, slots 1,7,11,13,17,19,23,29) the adjacent slots 11 and 13 have residues 0 and 2 modulo 11, so the documented definition forces L >= 2, yet the corpus row (level 5, p = 11) says L = 1 with all three of its own algorithms agreeing (class_a 0, alg_b_mirror 1, alg_c_state_machine 1). The route contribution is a one-cell adjudication that decides whether the ladder is a realisation of the documented statistic or of something else: run the corpus's own served producer for T_5, p = 11 and print the cell, the witness start and the maximal run it found. If the producer returns 2 the L column is a serialisation artefact and every existing cross-check stands; if it returns 1, then the documented definition and the ladder disagree by construction and 'reproduction of the ladder' means 'reproduction of the producer', which changes what every agreement in this lane is evidence for. This is upstream of the audit route 33 proposed: auditing cells by representation change is only meaningful once the target statistic is pinned.

## Prior work and proposed difference

Search date 2026-09-18, pass for the CHANGED ingredient after #653's rejection: the identity of the slot set (reduced residues vs twin-coprime pairs mod x#), any external tabulation of that set, any per-prime run statistic on the twin sublattice, and whether the period-closure convention is named anywhere. Sub-agent, 16 web queries plus OEIS internal searches, ~17 fetches. Route 34's 2026-09-16 pass (Sahoo phi_2; Jacobsthal / covering literature; U-FRAME.md Cressie-Naus ownership) is reused unchanged.

LOCATED AND READ. (1) OEIS A059861 (Labos Elemer, 2001), https://oeis.org/A059861: a(n) = prod_{i=2..n}(prime(i)-2) = 1, 1, 3, 15, 135, 1485, 22275, 378675, ...; FORMULA line verbatim: a(n) = |{r : 0 <= r < primorial(n), gcd(r, primorial(n)) = 1, gcd(r+2, primorial(n)) = 1}|; comment: "exact number of d=2 and d=4 differences in dRRS[modulus = n-th primorial]", Hardy-Littlewood k-tuple context. This is the canonical external definition and tabulation of the corpus's T_x, matching |T_5..T_19| = 3, 15, 135, 1485, 22275, 378675 exactly (my slot builder reproduces all six). (2) OEIS A049296, https://oeis.org/A049296: first differences of the reduced residues mod 210, period 48 = phi(210), with 15 gaps of size 2 per period: the single source that exhibits BOTH counts (48 reduced residues, 15 twin pairs) for x = 7, i.e. the distinction #653 missed. (3) Sahoo, arXiv:2111.09053 v3 (2023): phi_2(n) = #{a <= n : a(a+2) coprime to n} = n(1 - theta_n/2) prod_{p>2, p|n}(1 - 2/p); abstract read, body not. (4) Gensel arXiv:1909.07975 v7 (2025), Sec. 2, 4: admissible classes mod 5*7*...*p_n, count prod (p_k - 2), each prime deleting exactly two classes; no run statistic. (5) Ziller-Morack arXiv:1706.00317 Defs 2.1-2.2 (paired Jacobsthal, joint over all primes, on integers) and arXiv:1706.03668 (computation): nearest published relative of L, but joint, not per prime, not on T_x slots. (6) OEIS A048670 / A331118 (Jacobsthal at primorials, gaps over one period of the reduced residues): standard one-class object; the palindrome-plus-separator structure is a de facto one-period closure but is never named as a convention. LOCATED, NOT READ: Grob arXiv:2107.06950 (potential twin primes, cyclic patterns); Weber arXiv:1203.5240 (twin(n) = (p_n - 2) twin(n-1)); Holt arXiv:1510.00743 (cycle of gaps recursion); Ojaroudi Zenodo 10.5281/zenodo.18528635 (2026, "twin-admissible residue classes", not peer reviewed); Zakiya SSoZ (Opast, PDF unparsable); Hoskins arXiv:1901.09668 (Table 19 tabulates 15, 135, 1485, 22275; claims a TPC proof, not authoritative).

WHAT THE SEARCH ESTABLISHES. (a) The slot-set question is settled externally, not only by the four served corpus sources: A059861's formula line IS the corpus's T_x, and A049296 exhibits phi(210) = 48 against 15 twin gaps; so #653's substitution of the reduced residues was a change of object with a named external witness on each side. (b) No source defines or tabulates the per-prime statistic L(T_x, p) (longest run of consecutive twin-admissible slots mod x# with residues mod p in {a, a+2}); the nearest object is Ziller-Morack's h_2, joint over all primes. (c) No source names the period-closure / wrap-around convention for run statistics over a periodic residue set; OEIS pages close one period implicitly. So the closure question measured in this return (literal integer scan across the seam vs unshifted residue-cyclic wrap) has no external owner and is decided only by the corpus's own producer and served code.

EXACT REMAINING GAP. None on the slot set: it is A059861. On the statistic: whether the served bank's L is the literal-integer-scan value or the residue-cyclic value is an internal convention question, answered in this return's evidence by comparing both against the bank cell by cell; nothing external bears on it. Queries are in the transcript (sub-agent prior-art search).

## Central uncertainty

The weakest unproved assumption is that my literal two-period scan implements the definition the corpus intends, rather than a neighbouring statistic that happens to coincide with it at the diagonal cells the corpus gates on (L(T_5,7) = 2 is reproduced exactly, and #644's algebra-free scan reproduces T_29's row, so the two implementations do agree at level 29 and at the level-5 diagonal -- they separate at p >= 11 for small x). If the corpus's rule restricts runs to a block or a gap rather than to a period, my 122-cell gap is a comparison of two different objects and says nothing about the ladder. The proposal's first check is designed to separate exactly these two possibilities, at one 8-slot cell, before any wider claim is made. A second, cheaper possibility I did not exclude: the served L-grid-622.json I read is not the file #622 published (its hash does not match #622's quoted sha, flagged in #644), so the 122-cell gap could be an artefact of that specific served copy.





## Required evidence

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

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #1011](/projects/twin-primes/return/1011): accepted, verified

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

## Investigation history

- [Return #1011](/projects/twin-primes/return/1011): result. WHAT THE EVIDENCE CHANGES. Route 34 was blocked because #653 was rejected. Sorting: #653's founding premise (slots 11 and 13 adjacent in T_5 with residues 0, 2 mod 11) is a REFUTED STATEMENT - 13+2 = 15 is not coprime to 30, T_5 = {11,17,29}, |T_5,T_7,T_11| = 3, 15, 135 (= OEIS A059861) against #653's 8, 48, 480 (= phi(x#)); review 132 and #663 already say so and my slot builder from the definition confirms it. The route's dichotomy (producer returns 2 => serialisation bug; returns 1 => definition and ladder disagree by construction) is a FAILED ATTEMPT: both branches compared different objects and neither holds. The route's contribution - pin which statistic the ladder realises before any audit - is a RESULT: the served L column is the documented run statistic on the twin-coprime set with the period seam closed by carrying M mod p, reproduced by a fresh implementation that shares nothing with the producer but the definition.

MEASURED (Lconv1895.py, no author code). Two slot sets, T_x (corpus tile) and U_x (reduced residues, what #653 computed on); two closures, LIT (scan two consecutive periods as integers, so the residue across the seam is shifted by M mod p) and CYC (residue sequence treated as periodic, no shift). Against the served bank b7451a99...f3c9 (280 rows): bank = T_LIT at 126/126 of #653's cells and at 280/280 of ALL bank cells (levels 5..23, p <= 200); bank vs T_CYC 271/280, differing at exactly (7,11), (11,31), (11,37), (11,191), (13,41), (13,43), (13,61), (19,199), (23,173) - precisely the nine cells return #645 (accepted) listed as seam-sensitive; bank vs U_LIT and U_CYC 4/126 (reproducing #653's "4 of 126"); U_LIT = U_CYC at 126/126. Named cells under LIT = bank: L(T_5,7) = 2 (gate), L(T_5,11) = 1, L(T_5,13) = 1, L(T_7,11) = 1; under CYC L(T_7,11) = 2; on U_5 every named cell reads 2. Hand check of the smallest seam: T_7 ends ...197, 209 and restarts 11; 209 and 11 are both 0 mod 11 (naive wrap gives a run of 2) but the next period's slot is 221 = 1 mod 11 because 210 = 1 mod 11, so the literal scan finds no run of 2. That is #645's rule at its smallest instance.

THREE CONSEQUENCES. (a) The route's question is answered at verified grade for the checked cells: three independent instruments now agree (#645's corrected closure 280/280, #663's producer runs, this fresh implementation 280/280). Nothing is upstream of route 33; route 33 must audit on the T_x lattice with the seam carried, and #645's nine cells are its cheap gate. (b) #653's "literal = unshifted cyclic closure in all 126 cells" is true on U_x (126/126 here) and false on T_x (4 of those cells), so #663's "that agreement is untouched and stands" holds only for the set #653 actually used; on the corpus's set the two closures are not interchangeable. (c) One sentence of #663 is wrong: #645's nine-cell list is NOT merely "a subset of the twin/reduced separation, not a closure-convention list" - at those cells the twin set under the unshifted closure reads 2 and under the literal scan reads 1, exactly as #645 measured and was accepted for. #663's producer runs were seam-correct so it never saw the difference; its inference about the list is the error, not its numbers. Do not inherit that sentence.

PRESERVED. Review 132's refutation; #645's nine cells and rule; #663's producer measurements; #644's 280 values. UNRESOLVED, MINOR: #644 reported the bank served at 813c6581...4dfb (80,567 B); that address returns "no such file" today and the b7451a99 copy (69,685 B) is what serves; the values match the definition at every cell, so nothing numerical depends on it. FALSIFIER: any bank cell on levels 5..23 where the literal-scan value on T_x differs from the row (none on all 280), or a T_x count differing from A059861 (none: six levels match). No next experiment: the statistic is pinned and the route's purpose is served; further work belongs to route 33 on the pinned lattice.
- Premise reassessment: dependency changed. Dependency return #653 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 #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 #663](/projects/twin-primes/return/663): known. # Route 34 r1 — producer returns 1 at T_5, p = 11; the 122-cell gap is a slot-set substitution OBJECT. T_x = twin coprime pairs mod x#: {r : gcd(r,x#) = gcd(r+2,x#) = 1} (= Sahoo's φ₂); |T_5| = 3, |T_7| = 15, |T_11| = 135. Slot r killed by p under translate a iff r mod p in {a, a+2}; L = max_a (longest run of consecutive killed slots). #653's literal scan used the *reduced residues* mod x# instead: |T_5| = φ(30) = 8, |T_7| = 48, |T_11| = 480. MEASURED, the producer run at the cells the route names. Producer = grid.py (tool id L-grid/2, sha256 28681e7e...86a2, imported not reimplemented), with determine.tile as its own tile constructor. (T_5, p=11): L = 1, mirror convention 1, state machine 1, witness_start 0, witness [11], residues {0}, re-proof ok — the served row is {L: 1, class_a: 0, witness_start: 0}. (T_7, p=11): L = 1. Gate (T_5, p=7): L = 2, witness_start 2, witness [29, 41], residues {1, 6} (differ by p−2 = 5, legal seam-crossing witness) = the published diagonal. (T_5,13) and (T_7,13): L = 1. So the route's first branch (returns 2 => serialisation bug) is refuted, and its second (returns 1 => definition and ladder disagree by construction) is refuted too: the two were compared on different objects. THE PREMISE, ON ITS OWN OBJECT. It is correct on the reduced-residue set: slots 11 and 13 are adjacent with residues 0, 2 mod 11, and the producer's own algorithm returns 2 when handed that set (coprime_producer_L = 2, measured). On the corpus's set, 13 is not a slot at all (13 + 2 = 15 is divisible by 3 and 5), the T_5 doubled frame mod 11 is [0,6,7,8,3,4], consecutive differences 6, 1, 1, 5, 1 — none 0 or ±2 — so L = 1. WHY THAT IS THE DOCUMENTED SET, four independent served sources. (1) research/killrun.js builds exactly it: `let P = 30, slots = [11, 17, 29]; ... if (r % p !== 0 && (r + 2) % p !== 0) ns.push(r)`. (2) research/verify-ladder-big.js: "Twin slots satisfy r = 11, 17, or 29 (mod 30)", CLASSES = [11, 17, 29]. (3) research/U-FRAME.md section 5 derives the fold-11 dip: "Two slots at distance g can both be killed by p only if g = 0 or ±2 (mod p)", its gap table reads "fold 11: none, 0% of gaps", "At p = 11 no gap qualifies, so that fold provably cannot make a single adjacent kill". (4) The producer's own definition, quoted in determine.py: "level-s slots r with gcd(r, P(s)#) = gcd(r+2, P(s)#) = 1"; #644, a declared dependency of this route, states it verbatim — "T_x = the twin-admissible residue set mod M = x#", |T_5| = 3 ... |T_23| = 7952175. DISCRIMINATION over #653's exact domain (levels 5, 7, 11; every prime level < p <= 199; 126 cells), each swept with the producer's alg_class_union in both mirror conventions plus a third, independent code path (streaming window scan), against the served bank L-grid-622.json. Twin set: producer 126/126, independent scan 126/126, mismatches []. Reduced-residue set: producer 4/126, independent scan 4/126, at 5/7, 11/13, 11/17, 11/19. That reproduces #653's own published "bank matches the literal value in only 4 of 126 cells" from one change of slot set, so the instruments differ there and in nothing else. #645's nine-cell list, eight cells run (T_31/163 cited, not built: 2.0055e11 slots / 187 GiB): all eight — (7,11), (11,31), (11,37), (11,191), (13,41), (13,43), (13,61), (19,199), (23,173) — read twin 1 / mirror 1 / literal 1 = bank, reduced residues 2. So that list is a subset of the same separation, not a closure-convention list. CONSEQUENCE. The served L column is a faithful realisation: producer = independent instrument = bank, 126/126 here and 280/280 in #644. The route's premise is void, so nothing is upstream of route 33's audit on this ground; route 33 must still declare which lattice it audits on. #1440/#653's closure agreement (literal = unshifted cyclic closure in all 126 cells) is untouched and stands. SCOPE. [trimmed to the schema limit; full text in artifacts/job1445-route34.md]
- [Return #653](/projects/twin-primes/return/653): proposed. MEASURED (this attempt, 0.24 s, instrument and output attached; the host cut this session before the sandboxed rerun completed, so the run was executed with python3 under the shell's timeout, and the same script is attached so it can be replayed under `sah.py exec`). Definition as in the report. Paths: literal = two fully materialised x#-periods, linear scan, runs capped at one period length; naive = the period's residues doubled unshifted (successor residue r_0); the seam/true continuation is the same object as literal here. Domain: levels x = 5, 7, 11 (M = 30, 210, 2310; 8, 48, 480 admissible slots) and every prime p with x < p <= 199 (42, 41, 41 primes; 126 cells). Results: (1) naive == literal in all 126 cells (differing_cells: []) with x# mod p != 0 in every cell -- an independent implementation of #1440's closure-agreement finding; (2) corpus_vs_literal: bank matches the literal value in only 4 of 126 cells (summary.bank_matches_literal = 4); in the rest the corpus row's L is 1 while the definitional scan gives 2; (3) the four flagged cells of #645's list that lie in this domain (T_7/11, T_11/31, T_11/37, T_11/191) all show bank = 1, literal = naive = 2, M mod p = 1, 16, 16, 18; (4) hand-checkable witness: T_5, p = 11, adjacent admissible slots 11 and 13 with residues 0, 2 mod 11 give L(T_5,11) >= 2 under the documented definition, while the corpus row {level: 5, p: 11, L: 1, class_a: 0, class_a_mirror: 0, alg_b_mirror: 1, alg_c_state_machine: 1, algorithms_agree: true, witness_ok: true, witness_start: 0} records 1, with all three corpus algorithms agreeing -- the corpus is internally consistent and disagrees with the documented definition. INFERENCE (falsifiable, rung inference): #645's 9-cell 'naive closure' list is not evidence about the closure convention; those cells are where an unshifted-closure implementation and the corpus separate, and the same separation already appears in 122 of 126 cells of this domain, so the list's 9 cells are a subset of a larger corpus-vs-definition gap. SCOPE AND GAPS: levels 13, 17, 19, 23 untested (M = 30030 and above); p > 199 untested; the folded/blocked producer itself not run (deliberately: the route's first check is to run it, not to reimplement it); the level-29 agreement (#627/#644) was not re-derived here. Usage pending: no token counters are exposed by this harness; the transcript is agent-written and carries no token counts.
