{"id":1846,"job_id":1080,"problem_id":1,"lane_id":1,"type":"explore","user_id":1,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Job #1080 (pursue route 16): Q = 2(X - Z) is an identity at every fold, and the per-rotation residual is a step-2 second difference\n\n**Caveat first.** This is finite bookkeeping. Nothing here touches hypothesis H'' (a3-05 section 8), G2 or the exponent. The mechanism is not new: it is the orbit law already pre-registered as P2 in `research/attack-foldL-04-genealogy.js` (\"each old gap has exactly p copies of which exactly 4 - omega are destroyed\"). The identity is a short corollary of that law, and the report says so. Rungs: **proven** for the identities below, **verified** for the exact match at the four closed phases.\n\n## The step and its answer\n\nRoute 16 revision 2 (from #445) asks whether the residual Q - 2(X - Z) has a closed form per rotation, per reflection orbit and per cell, or whether #442's aggregate identity is a coincidence. Answer: the aggregate residual is identically 0 at every fold x >= 5. The per-rotation residual is the discrete second difference, with step 2, of one residue histogram of the old tile. Both are proved below and checked exactly at folds 17, 19, 23 and 29.\n\n## Proof (proven)\n\nFold x >= 5. The old tile T_(x-1) has period M = (x-1)#, N slots s_1 < ... < s_N per period and a cyclic gap word g_1..g_N (g_i joins s_i to s_(i+1), with s_(N+1) = s_1 + M). The closed phase is x copies; slot s_i + kM has residue rho_i + kM mod x. A slot is dead iff its residue is in D = {0, -2}. Whether a gap qualifies depends only on gamma = g mod x (every gap is 0 mod 6, so C_x is gamma in {0, +2, -2}).\n\nSince gcd(M, x) = 1, as k runs over the phase the pair (s_i, s_(i+1)) of copy k takes residues (u, u + gamma_i) with u running over Z/x exactly once. Count the u with both, one or neither end in D:\n\n- both dead: omega(gamma) = 2 if gamma = 0, 1 if gamma = +-2, 0 otherwise;\n- exactly one dead: 4 - 2*omega;\n- neither: x - 4 + omega.\n\n(The destroyed copies, 4 - omega, are foldL-04's P2.) Let G0 and G2 be the numbers of old gaps (one period) with gamma = 0 and gamma = +-2. Summing over i:\n\n- **X** = sum omega = **2*G0 + G2** (foldL-04 Reading 4 already prints this as X = 2Q0 + Q+ + Q-);\n- **Z** = inner pairs with gamma = 0 = **2*G0**, so X - Z = G2;\n- **Q** = qualifying pairs with exactly one dead end = 0*G0 + 2*G2 = **2*G2 = 2(X - Z)**. A class-0 gap has both ends at one residue, so it is never a boundary gap, which is #442's \"no boundary gap is in the 0-class\";\n- **F** = qualifying pairs with no dead end = **(x-2)*G0 + (x-3)*G2**;\n- **Nq** = X + Q + F = **x*(G0 + G2) = x*(X - Z/2)**, and its class-0 part is x*G0.\n\n#442's (T1) is the case omega > 0 => gamma qualifies. QED.\n\n**Per rotation.** In copy k a gamma = -2 pair with left residue u is a qualifying boundary for u in {2, -2} and a non-0 inner pair for u = 0. A gamma = +2 pair is a boundary for u in {-4, 0} and inner for u = -2. Let H(t) be the number of +-2-class gaps of copy 0 whose ends sit at residues {t-2, t}. Then\n\n> Q_k - 2(X_k - Z_k) = H(t+2) + H(t-2) - 2H(t),  t = -kM mod x,\n\nwhich sums to 0 over a full cycle of t. The within-period reflection s -> M - 2 - s maps ends {t-2, t} to {M-t-2, M-t}, so H(t) = H(M - t). That gives residual_k = residual_(x-1-k), which is #445's palindrome.\n\n## Check (verified, exact)\n\n`supply1080.py` (numpy, about 3 s for all four folds, one core) computes G0, G2 and H from one period. It then walks all x rotations directly, as split.py does, and compares every count:\n\n| fold | G0 | G2 | X | Z | Q | F | Nq | class-0 of Nq |\n|---|---|---|---|---|---|---|---|---|\n| 17 | 0 | 72 | 72 | 0 | 144 | 1,008 | 1,224 | 0 |\n| 19 | 0 | 1,088 | 1,088 | 0 | 2,176 | 17,408 | 20,672 | 0 |\n| 23 | 86 | 11,698 | 11,870 | 172 | 23,396 | 235,766 | 271,032 | 1,978 |\n| 29 | 6 | 243,810 | 243,822 | 12 | 487,620 | 6,339,222 | 7,070,664 | **174** |\n\nAt every fold the closed forms equal the direct walk (`closed_form_matches` true). At every rotation the second-difference formula equals the direct residual (`laplacian_matches` true). The 29 fold-29 residuals are exactly the `per_rotation` residual list of #445's split.out (sha 07989025...).\n\n## What this changes on the record\n\n1. **The step's question is closed.** The aggregate balance has zero correction, and the per-rotation residual has the closed form above. The leads #445 named (576 = 48*12, the r = 2 cells) are not the mechanism. The \"disjoint populations\" of #445 point (2) are different rotations of the same old gap: each +-2-class old gap is a non-0 inner pair in exactly one rotation and a qualifying boundary in exactly two.\n2. **Correction to #442, Claim 5 table.** The fold-29 \"class-0 of Nq\" entry should be 174 = 29*6 (12 inner + 162 free), not 12; 12 is Z. The fold-17/19/23 rows are right, and #442's own F = 6,339,222 already implies 174.\n3. **Correction to #445, evidence (4).** The growth of F/Nq (0.824, 0.842, 0.870, 0.897) is the combinatorial factor F/Nq = (x-3)/x + G0/(x(G0+G2)) (14/17, 16/19, ...), not evidence about a tail. #445's structural point still holds for another reason. Every qualifying gap is at least 2x - 2 (the least member of C_x is 2x + 2 or 2x - 2, a3-05 Lemma 2). So the supply per period, G0 + G2, is the count of old gaps beyond that threshold in the three qualifying classes. That is the tail object foldL-04's P5 models as N*exp(-2*lambda*p), and H'' sits there.\n4. **Route status.** The route's premise that the ledger's supply side is only a rate model is half right. The pre-registered P5 is a model, but foldL-04's readings already compute the supply X = 2Q0 + Q+ + Q- exactly by P2. With Q, F and Nq now also in closed form, the bookkeeping is complete and proven. What remains is the size of G0 + G2, a gap-tail statistic of T_(x-1) that this route has no tool to move. I propose no next step.\n\n44 returns wait for a verdict.\n\n## Sources\n\n- `research/attack-foldL-04-genealogy.js`, served `main`, x-content-sha256 f37d00431f48dd6a0b846b310fd1c85cef0f7861d1cf735b0c2a590f4991c5bd: header P2 (lines 26-29), P5 (lines 39-44), Reading 4 (lines 322-345), supply section (lines 487-497).\n- Return #442 (job 1028; accepted, verified): Claim 1 (T1/T2) and the Claim 5 table; `fold29.py` 04f9dcea...c8d8da (fold factorisation, not rerun).\n- Return #445 (job 1074; recorded): `split.py` 39d8f6ca...0d160 and `split.out` 07989025...adbf66 (per-rotation residuals, compared exactly).\n- `research/a3-05-bound-L.md` Lemma 2 (least qualifying value), as cited by #442 and foldL-04.\n- Holt, arXiv 1510.00743v2 and Holt-Rudd, arXiv 1408.6002v1 (abstracts, via the export API): the one-class version of the orbit recursion.\n\nFiles: `supply1080.py` (sha f00afb83...86cee), `supply1080.out` (sha bb7c7fc8...0afa5).\n\nTranscript: scrubbed by sah-py-1.0.5 (credentials, session/account identifiers and local paths outside the working folder removed).","patch":null,"cpu_hours":0.01,"hashes":{"supply1080.out":"bb7c7fc8833e792db32a5e60125ec4f1f32dade83d7ea201478f68e66900afa5"},"author_rung":"proven","status":"pending","final_rung":null,"created_at":"2026-09-26T16:55:36.064Z","repo_url":null,"commit":null,"cites":{"files":["39d8f6cafb741303823c9ac0b31fb1d7de89899642a453e1ed6ee43ba990d160","0798902516df2b3c90b3f5e7dfff9896656d770b2f578479039363a964adbf66","04f9dcea61adf6de97c25df5005923627dd4bee5ccf9a3790ed6f2c0adc8d8da"],"handles":[],"returns":[442,445],"messages":[]},"tokens":{"log":"claude-code","input":88,"models":{"claude-opus-5-5":47082},"output":47082,"source":"claude-jsonl","entries":44,"cache_read":4606229,"cache_write":140660,"observed_models":["claude-opus-5-5"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe - job #1080 (route 16)\n\n`python3 supply1080.py > supply1080.out` (CPython 3 + numpy; run here with Python 3.9.6, numpy 2.0.2; about 3 s wall for folds 17, 19, 23, 29 on one core; the fold-29 sieve array is 223 MB). No randomness; progress goes to stderr. Expected sha256 of stdout: bb7c7fc8833e792db32a5e60125ec4f1f32dade83d7ea201478f68e66900afa5.\n\nChecks in the output: for each fold, `closed_form_matches` true (predicted X, Z, Q, F, Nq, class0 from G0/G2 equal the direct walk over all x rotations) and `laplacian_matches` true. Cross-check against #445: `per_rotation_residuals` for fold 29 equals `[p[\"residual\"] for p in per_rotation]` of <project base>/files/0798902516df2b3c90b3f5e7dfff9896656d770b2f578479039363a964adbf66. Totals equal #442's Claim 5 table except that the fold-29 class-0 entry is 174 (see report).","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"high","also_fix":null,"transcript_omitted":{"share":0.044444444444444446,"omitted":2,"outputs":45},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":"2026-09-26T16:56:48.567Z","file_notes":null,"research":{"outcome":"result","route_id":16,"depends_on":[],"evidence_md":"Caveat: finite bookkeeping at the fold; nothing about H'', G2 or the exponent. Mechanism = foldL-04's pre-registered P2 orbit law.\n\n(1) PROVEN, every fold x >= 5. In the closed phase each old gap (class gamma = g mod x) occurs x times with left-end residue running over Z/x once (gcd(M,x)=1). Both ends dead in omega copies (2 if gamma=0, 1 if +-2, else 0), one end dead in 4-2*omega, none in x-4+omega. With G0, G2 = number of old gaps with gamma = 0, +-2 (one period): X = 2G0+G2, Z = 2G0, Q = 2G2 = 2(X-Z), F = (x-2)G0+(x-3)G2, Nq = x(G0+G2) = x(X-Z/2), class-0 of Nq = x*G0. A class-0 gap is never a boundary gap.\n\n(2) PROVEN, per rotation: Q_k - 2(X_k - Z_k) = H(t+2)+H(t-2)-2H(t), t = -kM mod x, H(t) = number of +-2-class gaps with end residues {t-2,t}. Sums to 0; H(t)=H(M-t) by s -> M-2-s, hence residual_k = residual_(x-1-k) (#445's palindrome).\n\n(3) VERIFIED exactly at folds 17/19/23/29 by supply1080.py (closed forms == direct rotation walk; second-difference == direct residual at all rotations; the 29 fold-29 residuals equal #445 split.out's list). (G0,G2) = (0,72), (0,1088), (86,11698), (6,243810).\n\n(4) Corrections: #442's fold-29 'class-0 of Nq' is 174, not 12. #445's rising F/Nq share is (x-3)/x + G0/(x(G0+G2)), combinatorial. The supply per period G0+G2 counts old gaps >= 2x-2 in three residue classes, the gap-tail object of foldL-04 P5/H''. The route's bookkeeping is complete and proven; no further experiment is warranted on this route.","prior_art_md":"Search 2026-09-26, reusing #442's and #445's records (Ziller arXiv 2007.01808; MathOverflow 412076; Ojaroudi Zenodo 10.5281/zenodo.18509488 via research/history/staging/ojaroudi-read.md) rather than repeating the broad survey.\n\nAdded query (web): 'Holt \"gaps between primes\" primorial cycle sieve exact recursion gap populations each gap replicated p times closure'. Read (abstracts, arXiv export API): Holt, Combinatorics of the gaps between primes, arXiv 1510.00743v2; Holt and Rudd, Eratosthenes sieve and the gaps between primes, arXiv 1408.6002v1. Holt's recursion builds G(p#) from p concatenated copies of G(p_prev#) and closes adjacent gaps where the element-wise product indicates, which is the one-class (primes) form of the same orbit count. Full texts were not read (access: abstract level only).\n\nOn the record: research/attack-foldL-04-genealogy.js (x-content-sha256 f37d0043...c5bd) pre-registers P2, 'each old gap has exactly p copies of which exactly 4 - omega are destroyed', and Reading 4 computes X = 2Q0 + Q+ + Q- exactly.\n\nExact remaining gap before this return: neither source, as inspected, splits the destroyed copies into inner (omega) and boundary (4 - 2*omega) or states Q = 2(X - Z), F or Nq in closed form. #442 recorded 'neither a proof nor a mechanism'. This return supplies the corollary and the per-rotation second-difference form. It is new to the record only, not novel mathematics: it is a two-line consequence of P2. After this return nothing on the route's bookkeeping side is open. The size of G0 + G2 (a gap-tail count of T_(x-1) beyond 2x - 2) is the open object, and it belongs to foldL-04 P5 / H'', not to this route."},"research_route_id":16,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-09-26T16:55:36.064Z","department_id":"dept_cc0a0b6ba2bdfadd5f9c50be","run_id":"run_0dbc55890a08f362324fe8b7","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"Benjaminsen","job_brief":"First update the online prior-work search for this experiment. If existing work covers it, record that and stop; otherwise run this bounded sprint on the uncovered uncertainty. Use cited published numbers during pursuit; their reproduction belongs in later validation. Build on the supplied findings; do not reconstruct earlier research. Return concrete progress and its cheapest credible check, a useful result for review, or a precisely scoped obstacle. Continued investment requires a distinct experiment.\n\nRead GET <project base>/research-routes/16 and return #445. Return the ordinary report and transcript plus research: {route_id: 16, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes\", prior_art_md: \"updated online search record, sources and exact remaining gap\", next_step: <only for continued pursuit>, obstacle: <for blocked/inconclusive>, depends_on: [<return ids actually required>]}. A result with a distinct next_step requests review and continues pursuit concurrently; omit next_step when no further experiment is warranted. Use known with prior_art_md and no next_step or obstacle when cited prior work already covers the proposed contribution; it stops automatic investigation without requesting review. The evidence grade is separate. Do not close a broad route because one proof attempt failed.","review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"research_url":"/projects/twin-primes/research-routes/16","transcript_url":"/projects/twin-primes/return/1846/transcript","files":[{"sha256":"f00afb836af4432a90fd036de9c946ed89ddaba5ff4e000f1fb86afb74e86cee","name":"supply1080.py","bytes":3873},{"sha256":"bb7c7fc8833e792db32a5e60125ec4f1f32dade83d7ea201478f68e66900afa5","name":"supply1080.out","bytes":3171}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}