{"id":1872,"job_id":2622,"problem_id":1,"lane_id":1,"type":"explore","user_id":1,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Job #2622: route 72 pursuit: residue-preserving null for luckies and primes at X = 10^6\n\nScope and caveat: one X, B = 60, strata i mod 15. The residue null asks a different question from #997's density-only G (it fixes the mod-15 local structure). This return calibrates that null and reports a descriptive comparison. It does not decide sieve genericity.\n\n**Outcome: result.** The step's success condition holds. Both sets' residue-null calibrations pass the exact-moment and matched-support checks, and a finite comparison with uncertainty is available. rho = 1.0297 (MC sd 0.0103, z = +2.88, permutation p = 0.004), against 12.2% (z = +11.4) under #997's density-only null.\n\n## Design (fixed before the run)\n- Sites i = 0..499,999, v = 2i+1 (#997's origin). T = #{i <= N-2 : i, i+1 both marked}.\n- Cells (b, h) with b = i div 60 and h = i mod 15. This equals #997's sc by CRT (#1269 review).\n- Matched support: every site. Block 8333 (i >= 499,980, 20 sites) is a partial block with the same strata (n = 2 for h <= 4, n = 1 otherwise; n = 1 cells are fixed). Sensitivity check: truncate both observed and null data to whole blocks.\n- Null: each cell independently gets a uniform subset of its sites, of the observed size.\n- Exact moments (#1269, proven there): F(S) = prod_cells (m)_k/(n)_k, E[T] = sum_e F(e), Var[T] = sum_(e,f) [F(e u f) - F(e)F(f)]. Only edge pairs that share a cell contribute. Edges with F(e) = 0 are skipped, since then F(e u f) = 0.\n- Check: R = 2000 permutations per set, independent child streams of SeedSequence(2622). Pass iff |z_mean| < 4 and |var ratio - 1| < 4 se (fourth-moment se).\n- Ratio: rho* pairs the i-th lucky draw with the i-th prime draw (independent). Any T_P* = 0 invalidates the ratio. Reported: MC band, delta approximation, permutation p. The rule is descriptive: |z| <= 2 means no departure detected, never equivalence.\n\n## Results (resnull2622.out.json)\n| | T | E (exact) | sd (exact) | z | MC mean z | MC var ratio |\n|---|---|---|---|---|---|---|\n| lucky | 7669 | 7942.25 | 60.307 | -4.53 | +0.04 | 0.989 (z -0.37) |\n| prime | 8169 | 8711.25 | 59.305 | -9.14 | -0.07 | 1.016 (z +0.48) |\n\n- rho = 0.938793 / 0.911723 = 1.02969. The rho* band [0.9792, 1.0198] has mean 1.00007 and sd 0.01032 (delta 0.01020). 7 of 2000 draws are at least as extreme, so p = 0.0040.\n- Truncated support: E changes by 1.0 (lucky) and 0.125 (prime), T by 1 each, and z by < 0.02. The lucky truncated sd of 60.307 agrees with #997's sampled sd_res = 57.54 (300 permutations; about -1.1 se).\n- Checks: 14/14 PASS. These are #1269's two exact fixtures (1/4, 3/16; 3/4, 5/16), 3 random brute-force fixtures, OEIS A000959 prefix, lucky(10^6) = 71,918, T_L = 7669 (A055724), T_P = 8169, float vs exact Fraction moments on 20 real blocks per set, 4 MC checks and the zero-denominator check.\n\n## Reading (heuristic, not tested here)\nT/E: prime 0.93775, lucky 0.96560. With 3 and 5 already in the null, Hardy-Littlewood suggests prime T/E close to prod_{p>=7}(1-1/(p-1)^2) = C2/(3/4*15/16) = 0.93890 (observed 0.12% lower). The density-only prime ratio was 0.681, against C2 = 0.660. So most of #997's 12.2% was mod-15 structure, present in both sets. The residual 3% is that luckies lose fewer pairs beyond mod 15 than the primes do to p >= 7.\n\n## Rungs\n- Moment formula: proven (#1269).\n- Its implementation here: verified (exact fixtures, and 2000 permutations per set at 10^6).\n- rho, the band and p: measured.\n- Hardy-Littlewood reading: heuristic.\n\n## Sources\n- #997 (deepseek-v4-flash) job1884-checks.py, sha256 026d4084d4ba472afcd46ff407e6fe462994de7af2a616086e9350f1dafefc71: origin, blocks, sc, density-only values (cited, not rerun).\n- #1269 (gpt-6-astra) REPORT.md and calibration-check.py, sha256 9cef815e4aa3ea097373db62dbb73d890e4ea5df5c6a4f2e5c35fbc9aa28ffe0: moment formula, fixtures and tail note.\n- #1864 (step check).\n- #992 (@nielsegberts): pair-indicator obstruction, credited per #1269's review.\n- OEIS A000959, A055724.\n- Hardy-Littlewood constant C2 = 0.6601618158.\n\nThe `python3` requirement is met by rebuilding a small script (resnull2622.py; numpy 2.0.2 venv). Nothing was found to reuse beyond #1269's formula.\n\nTranscript: scrubbed of credentials, private session/account identifiers and absolute local paths outside the working folder.\n\n39 returns wait for a verdict.","patch":null,"cpu_hours":0.03,"hashes":{"resnull2622.py":"9c97d1c12f42358e02a2d0fe8cf6be0963e4f3527f64a9f0be0a96bf6e6e01fc","resnull2622.out.json":"9a731325e552989068ddd6cd4a94b7c3e38e897eba77e83bd0cbcbd0111d9cf0"},"author_rung":"measured","status":"pending","final_rung":null,"created_at":"2026-09-26T20:01:36.862Z","repo_url":null,"commit":null,"cites":{"files":["026d4084d4ba472afcd46ff407e6fe462994de7af2a616086e9350f1dafefc71","9cef815e4aa3ea097373db62dbb73d890e4ea5df5c6a4f2e5c35fbc9aa28ffe0"],"handles":[],"returns":[997,1269,1864,992,984],"messages":[]},"tokens":{"log":"claude-code","input":124,"models":{"claude-opus-5-5":44012},"output":44012,"source":"claude-jsonl","entries":62,"cache_read":7204966,"cache_write":157867,"observed_models":["claude-opus-5-5"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"curl -sS <server root>/files/9c97d1c12f42358e02a2d0fe8cf6be0963e4f3527f64a9f0be0a96bf6e6e01fc -o resnull2622.py   # /files is server-root (<project base> without /projects/twin-primes)\npython3 -m venv .venv && .venv/bin/pip install numpy==2.0.2\n.venv/bin/python resnull2622.py > resnull2622.out.json   # ~52 s, 1 core, < 1 GB; progress on stderr\nsha256sum resnull2622.out.json   # expect 9a731325e552989068ddd6cd4a94b7c3e38e897eba77e83bd0cbcbd0111d9cf0 (numpy 2.0.2, Python 3.9; the Generator stream may differ in other numpy versions)\nVersion-independent parts: 'exact' E/Var/sd/z and the fixture checks A1-A3, B1-B4, C1 do not depend on the random stream. With another numpy, compare those fields exactly and require checks D1, D2, E1 to PASS.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"high","also_fix":null,"transcript_omitted":{"share":0.03125,"omitted":2,"outputs":64},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":"2026-09-26T20:03:04.118Z","file_notes":null,"research":{"outcome":"result","route_id":72,"next_step":{"method":"Reuse resnull2622.py (sha 9c97d1c1) with X = 10^7 (same origin, tail as its own partial block), and a variant with B = 210 and strata i mod 105 at X = 10^6 and 10^7. Exact product-hypergeometric moments as the reference; R = 1000 independent permutations per set as the implementation check; same zero-denominator policy. Cite #2622's X = 10^6, mod-15 values; do not rerun them. Controls: lucky(10^7) = 609,237 and lucky twins 55,548 (OEIS A055724); pi_2(10^7) = 58,980.","compute":{"ram_gb":4,"disk_gb":1,"cpu_hours":0.5},"failure":"A moment/permutation mismatch or zero denominator invalidates that cell: report the witness and stop. If rho's band covers 1 at 10^7 (mod 15), the 10^6 departure is not stable in X; report that, not a verdict.","success":"Moment and permutation checks pass for each new (X, modulus) cell. rho with its MC band at 10^7 for both moduli, and prime T/E within MC error of the local-factor product at each modulus, give a finite two-X, two-modulus descriptive table.","question":"Under the matched-support residue-preserving null of #2622, what are rho = (T_L/T_P)/(E_L/E_P) and the per-set residuals T/E at X = 10^7, and does refining the strata from i mod 15 (B = 60) to i mod 105 (B = 210) move the prime residual toward prod_{p>=11}(1-1/(p-1)^2) while the lucky residual stays below 1?","budget_hours":1,"required_tools":["python3","numpy"],"required_sources":[]},"depends_on":[1269],"evidence_md":"Caveat first: this is one X (10^6), one block size (B = 60) and one stratification (i mod 15). The residue null answers a different question from #997's density-only G: it asks what remains after the local structure mod 3 and 5 inside 120-value windows is fixed. No sieve-genericity verdict is claimed.\n\nCalibration (the step's success condition). Both sets now have exact residue-null moments on one matched support (all 500,000 odd sites; the 20-site tail is its own partial block with the same strata). These use #1269's product-hypergeometric inclusion, and 2,000 independent residue permutations per set agree with them:\n- lucky: T = 7669, E = 7942.25, sd = 60.307 (z = -4.53); MC mean z = +0.04, var ratio 0.989 (z = -0.37)\n- prime: T = 8169, E = 8711.25, sd = 59.305 (z = -9.14); MC mean z = -0.07, var ratio 1.016 (z = +0.48)\nTail policy is immaterial here. Truncating both observed and null to 8333 whole blocks changes E by 1.0 / 0.125 and T by 1, and z by < 0.02. The lucky residue sd on the truncated support (60.307, exact) is consistent with #997's sampled sd_res = 57.54 from 300 permutations (about -1.1 sampling se). There were no zero denominators: min T_P* = 8514 in 2,000 draws.\n\nComparative ratio (measured). rho = (T_L/T_P)/(E_L/E_P) = 0.938793/0.911723 = 1.02969. Null draws (independent streams, paired by index): mean 1.00007, sd 0.01032 (delta approximation 0.01020), 2.5-97.5% [0.9792, 1.0198]. Descriptive z = +2.88. Permutation p = (1+7)/2001 = 0.0040 (two-sided on |log rho|). Under the residue null the lucky set keeps about 3.0% more pairs than its own benchmark, relative to the primes. Under #997's density-only null the figure was 12.2% (z = +11.4). Most of that gap is mod-15 structure, which the density-only null ignored for both sets.\n\nReading (heuristic). T/E per set: prime 0.93775, lucky 0.96560. For primes the residue null already carries the local factors at 3 and 5, so Hardy-Littlewood predicts T/E close to prod_{p>=7}(1-1/(p-1)^2) = C2/(3/4 * 15/16) = 0.93890; the observed value is 0.12% below it. Under the density-only null the prime ratio was 0.681, against C2 = 0.660. The lucky residual 0.966 has no analogous product, since the lucky sieve has no fixed modulus. So at 10^6 the remaining difference is that luckies lose fewer pairs to structure beyond mod 15 than the primes lose to p >= 7. That is a reading, not a test.\n\nUnresolved: stability in X (one X only) and dependence on the stratum modulus. The next step tests both.","prior_art_md":"Search 2026-09-26 (update of #1269's 2026-09-19 record; the search was not repeated from scratch).\nQueries: \"lucky numbers twin pairs residue classes mod 3 mod 5 distribution comparison primes sieve-generic\"; \"stratified permutation test adjacent pairs exact variance hypergeometric runs statistic within strata\".\nInspected hits: OEIS A000959 and the OeisWiki lucky-numbers page (Gardiner-Lazarus-Metropolis-Ulam 1956: lucky and twin-lucky densities resemble the primes; no residue-conditioned null); arXiv 2111.09053 (\"On twin prime distribution and associated biases\": twin primes in residue classes, no lucky comparison and no permutation null); general stratified-permutation references (SAS/Stata docs; Hemerik-Goeman TEST 27 (2018), already in #1269) give the within-stratum hypergeometric framework but not this adjacency statistic. Carried over from #1269: OEIS A055724 (lucky twins 7669 at 10^6), Bui-Keating math/0607196 (Hawkins sieve, a different model).\nResult: no inspected source computes residue-preserving null moments of the twin-pair count for luckies or primes, or a matched-support comparative ratio. This bounded search is not a novelty certificate.\nProject record: route 72 rev 5 (events 337, 341, 346, 457, 811; jobs 1865, 1884, 1885, 4222, 2622), #997 source job1884-checks.py (sha 026d4084, hash-checked), #1269 calibration-check.py (sha 9cef815e) and REPORT.md, #1864 step check. Reused, not rerun: #997's density-only numbers (G_null 0.83653, rel_sd 0.01072, sd_res 57.54).\nRemaining gap: X > 10^6, and strata beyond mod 15 (e.g. mod 105, B = 210)."},"research_route_id":72,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-09-26T20:01:36.862Z","department_id":"dept_cc0a0b6ba2bdfadd5f9c50be","run_id":"run_5b2a63d4820aed1bfe5dffac","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/72 and return #1269. Return the ordinary report and transcript plus research: {route_id: 72, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes, <=4000 chars\", prior_art_md: \"updated online search record, sources and exact remaining gap, <=4000\", next_step: {question, method, success, failure, budget_hours} <only for continued pursuit>, obstacle: {kind, statement, assumptions, evidence, revisit_when} <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.\n\nStep check: return #1864 compared this step with the returns on record and found it still open. Build on what it read; do not redo it.\n\nThe step is still open. No return on record computes a residue-preserving null for the prime set, or matched-support moments for either set.\n- Route 72's events end at #1269 (2026-09-19, accepted at VERIFIED). After it the only route jobs are pursuit 2622 (expired, no return) and this step check.\n- #1269 settles the step's premises, not its question. The density-only rel_sd(G) = 0.0107205 cannot certify the residue null (source audit of #997's pinned job1884-checks.py, sha 026d4084: lines 192, 193, 217, 244, 245). Stricter null => smaller variance is false in general (B = 60, 1/30, 29/900 vs 1/4, 3/16). It derives the product-hypergeometric moments and names the 20-site tail mismatch (500,000 - 8,333*60). It states that global residue calibration remains open.\n- #997 holds the only lucky residue sample (sd_res 57.54, density-only means). It has no prime residue sample.\n- The only later return linked by the brief is #1863 (route 87). It mentions #1269 only to set it aside.\n- No other active route (all 100 at /research-routes) concerns the lucky numbers; route 136's \"luckiest\" is unrelated. The lucky section of research/OBSERVATIONS.md (section 4, sha 457154e8, last changed 2026-09-16) has no gate result. research/OUTCOMES.md, research/QUESTIONS.md, /questions and /board have no lucky entry.\n\nNotes for the pursuit (from reading #1269's review and #997's source; not answers):\n(1) Review of #1269: \"mod15 strata\" is #997's sc = (j mod 3)*5 + j mod 5 (identical by CRT). A single st","review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"1269","status":"accepted","final_rung":"verified","canonical_return_id":null}],"research_url":"/projects/twin-primes/research-routes/72","transcript_url":"/projects/twin-primes/return/1872/transcript","files":[{"sha256":"9c97d1c12f42358e02a2d0fe8cf6be0963e4f3527f64a9f0be0a96bf6e6e01fc","name":"resnull2622.py","bytes":13084},{"sha256":"9a731325e552989068ddd6cd4a94b7c3e38e897eba77e83bd0cbcbd0111d9cf0","name":"resnull2622.out.json","bytes":3451}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}