{"id":2513,"job_id":5101,"problem_id":1,"lane_id":3,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Job #5101, route 25 pursuit: the zero-parameter joint-window model **overpredicts** the block-permutation deficit — the fresh-window independence assumption fails (measured − predicted > 2 se at B ≥ 128)\n\nPursuit of the step set by **#2387** and confirmed open by **#2500** (both canonical step sha256\n`5a851a72e2d4…`). The step asks whether the deficit of `lambda_block(B)` below `lambda_real` at\n`B ≫ m*` is the **extreme-value effect of the fresh windows created at block joints**, rather than\nlong-range structure, and prescribes the zero-parameter model to decide it. I built and ran that\nmodel on the existing grid for **x = 17, 19, 23, 29** and report the residual per B.\n\n## What was done (no new block-permutation draws)\n\n1. **Inputs rebuilt and verified.** The real `T_x` gap multiset was rebuilt by sieve for x = 17, 19,\n   23 (`gaps.py`'s construction) and by its Copying-Theorem lift for x = 29; each verified against\n   the served `D`, `Σ gaps = x#`, `Ghat` and `m*` (`gaps.out`, `results.json` / `PREREG.md`,\n   #2387's own hashes). Nothing new was drawn: `blockperm.c` and `draws_x*.txt` were not re-run.\n2. **The empirical window-length distribution F.** For each x, R uniform permutations of the exact\n   gap multiset were simulated and, for **every circular start i**, the shortest window length `L_i`\n   reaching `budget = 4·Ghat` was histogrammed (`model_dq.py`, `model29_dq.py`; x=29 in start\n   chunks, under a 6 GiB cgroup). This is the step's \"exact per-start `L_i` histogram\".\n3. **The prediction.** `m*_block(B) = E[min(m*_real, min of N_j draws from F)]`,\n   `N_j = ceil(D/B)·(m*_real − 1)` (#2500 note 2: m*−1 fresh starts per joint), computed exactly from\n   F as `Σ_{l≥0} (1−F(l))^{N_j}`. Then `lambda_pred = m*_block·gbar/Ghat` and\n   `f_pred = (lambda_pred − lambda_unif)/(lambda_real − lambda_unif)`, against #2387's measured\n   `lambda_block(B)` and `f(B)`.\n\n## Result: the model predicts a far larger deficit than measured\n\n| x | m* | f_pred(32) / f_meas(32) | f_pred(128) / f_meas(128) | f_pred(512) / f_meas(512) | resid_f(512) = meas−pred (se) |\n|---|---|---|---|---|---|\n| 17 | 12 | 0.439 / 0.895 | 0.642 / 0.906 | 0.852 / 0.975 | **+0.122** (29.1 se) |\n| 19 | 15 | 0.245 / 0.787 | 0.373 / 0.883 | 0.527 / 0.971 | **+0.444** (104.1 se) |\n| 23 | 18 | 0.210 / 0.709 | 0.273 / 0.823 | 0.397 / 0.929 | **+0.532** (54.8 se) |\n| 29 | 20 | 0.111 / 0.699 | 0.229 / 0.818 | 0.350 / 0.860 | **+0.510** (20.5 se) |\n\nAt **every** B ≥ 2 the independent joint-window model predicts a **more negative** deficit than\nmeasured, i.e. `lambda_pred < lambda_meas` (residual in `f` units `f_meas − f_pred` is positive,\n+0.29 to +0.59 at B = 8…512, 3–104 se). The overprediction is largest in the mid-range\n(x=19, B=32: resid_f +0.542, 95.6 se); it shrinks at B = 8192 (+0.01 to +0.41) and vanishes at\nB = D by construction. Residual at B = 512 grows from x = 17 (+0.122) and stays large for\nx ≥ 19 (+0.44, +0.53, +0.51).\n\n## Which way the step reads\n\nThe step's **failure clause** — *\"the model overpredicts the deficit by more than two standard\nerrors at B ≥ 512: the fresh-window independence assumption fails and the joint windows are\ncorrelated with the intact structure; record the residual curve\"* — **fires** at B = 512 and at\nB = 128 at all four levels. The step's **success clause** also contains *\"the residual is positive\nand grows with D (a long-range component)\"*; under the stated residual sign (`measured − predicted`)\nthat is the **same observation**. The two clauses are not mutually exclusive as written, so I record\nboth readings rather than choosing one: the number is `resid = f_meas − f_pred > 0`, growing with D\nfrom x = 17 and then flat.\n\nReading it simply: **the named confound is real but the independent-draw version of it is far too\nstrong.** Treating each of the ≈`ceil(D/B)·(m*−1)` cross-joint starts as an *independent* draw from\nthe uniform-permutation window-length distribution overstates the joint damage by 0.3–0.6 of the\nwhole arrangement range. So the block-permutation deficit is **not** reproduced by an independent\nextreme-value model of the joints, and its observed size cannot be attributed to that model; the\njoint windows are strongly correlated with the intact structure (they keep the real word's own\nprefix up to the joint), which is exactly the \"fresh-window independence assumption fails\" branch.\n\n## Scope, controls and uncertainty\n\n* **Controls.** The model reproduces the two anchors: `f_pred → 1` and `lambda_pred → lambda_real`\n  at B = D (checked), and `F`'s own minimum over starts matches the B = 1 uniform draws' order\n  (`F_min_mean` 9.75/10.88/12.75/13.5 for x=17/19/23/29 vs measured B=1 `m*` 8.67/9.75/11.38/12.85).\n* **Known bias, and its direction.** With only R = 4–8 permutations, F cannot resolve the lower\n  tail beyond ≈1/(D·R); at B = 1 (N_j ≥ D·R) the predicted `m*` therefore saturates at the pooled\n  minimum and is **too high** — a *less* aggressive model. `f_pred(B=1)` is 0.02–0.10 instead of 0.\n  This biases `lambda_pred` **upward** everywhere, i.e. it can only *understate* the overprediction\n  reported above; the failure conclusion is robust to it.\n* **Scope.** Finite, offline; `x ≤ 29` (x=31 not held). Comparison of the served measured curve with\n  a locally computed model. Nothing here bounds `G_2`, `beta_2` or twin-prime infinitude, and no\n  claim is made about the arithmetic beyond this statistic.\n* `check_dq.py` (stdlib, no producer import, no network) reproduces the claims from this run's own\n  artifacts and served snapshots: **64/64 PASS, exit 0**; `--corrupt` (model claimed to agree within\n  2 se at B=512) **exit 1**. Evidence grade: **measured** (a computed model comparison); the\n  underlying numbers are #2387's own and were not recomputed.\n\n## Cheapest credible check and the distinct next step\n\nCheapest check of *this* claim: re-run `model_dq.py` — 5 s, stdlib+numpy, no network, no new draws;\n`check_dq.py` re-verifies every number. The distinct next experiment (continued pursuit) replaces\nthe independent F by the **spliced** cross-joint window-length distribution and re-tests the gate:\nsee `next_step` in the research block.\n","patch":null,"cpu_hours":0.0153,"hashes":{"sah.py":"21a1d3556191bf54458b13fa0ebe41b4550fb92a33ab9bee6518d82ef222c843","model.out":"79605560808650009783ce165fec251109ac968e8d955efc0be5ebe149cea928","check_dq.py":"a773ccea5ecde103e00e19dbec6e585177d6f0936fe5dcc3d36184a0bdeeeed6","fetch_dq.py":"1cb6de67881eaaf1a835c0d860d0b65e4e9e5fc7dc666c34e725fd3fc2c4e24e","model29.out":"98d86f57d8f72a5af0fbde962815576fd6154f05ecc26709953d3afc44328fcf","model_dq.py":"ff614beb836eb95c6bc96b1e473daddd472e7486f210fac094e444ba744fa54b","check_dq.out":"be5bc05ed94d5ea200aa6ee6078c1d2d1e396d2661e35d64787f92040d70cb05","recipe_dq.md":"e85dbedceb0cca3a1b79b6be6543d9a28f6585db26b057ab68588b8fc3c307a1","redact_dq.py":"0914cab82ac24e9f9a219154c468ed868534f22b1fa6086b36e5df9b0a3ea690","report_dq.md":"57158ac0d59a074b00d27de0776c65dff8349fa4b96ea8b788f9b0adaeeeed27","model29_dq.py":"996ee37f2da57d85b57177a8e5158334b3e67ae2292552c3273a3664538baa61","download_dq.py":"7768b205b81c82000e19121348cc3d18527ed974237276ac3c6bef7b211d6974","evidence_dq.md":"97e1d0808334e32683ed2ed44c5889119c314b1f8f29deca1d3ac2ce23cc6a5a","model.out.json":"235ba622e0a839bcb04de2a2da35a0cf1155ed1730a8f10e4087cf34492ec25f","next_step.json":"6afea17428fa36c3e0290cf4339c0b9e8d7697bf28ae2a6cfaa4202c631e4d2f","prior_art_dq.md":"d766a0476081c203576d070ff8e694b9f631c83267738a74a6cb1c461df5615f","model29.out.json":"f6c185ff0eb841578e6feccc4d6a683856747b1e46dd9097291b8227cce0474a","model.combined.json":"7b86012086989d757c352a0e784380e508c4d1cc4ccc622e58389ef5e60e53a3","served/route25.json":"1d5d505b9792f05b7bf1e4863dadfdd0c08300ffc62d6fa7bf8ba8842a907a05","check_dq.control.out":"9de1b0e34ec6fb7d933a4c432f495cfee15a9bed2118c97b788aa44f39972f4e","files/2387/PREREG.md":"49feb8a51e0ae8bd094ff36d0c029c3fef67aede57132485937039a688b76985","served/return587.json":"7810a9c85e985cfff55d4e6044765f185783c1e106142cc894417eef90062380","served/return592.json":"d694d55a5120ecf922f6a4b24a1f542b70dbfd03a78c2cdc08f515e03d6cb0ab","files/2387/blockperm.c":"5cb264a924e3dcf5145c124ca1a0faae7c86e2913a3d186f8f10fb96fd16c976","served/return2301.json":"e9d0bce7fd36551214903930d109845725e5a99f12e8518f65834784c63a65fa","served/return2387.json":"af1926976cbb8b48a1ada57918d23292ea588a6df194ae35fff23f79bffaab89","served/return2500.json":"367bf71dc1a3421d2215edd38651d04dede52f14c40242ab51da6ae43f01e14d","files/2387/results.json":"ddb9c50fb663b2fec0ed2102cd456dfbada5e202acf4297f7df4e9f9e2796ec0"},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-10-07T23:14:03.126Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[2387,2500,587,592],"messages":[]},"tokens":{"log":"custom","input":0,"models":{"deepseek-v4-flash":0},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":["deepseek-v4-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — reproduce the zero-parameter joint-window model (route 25, job #5101)\n\nEverything is local; no network at run time and no new block-permutation draws. Requirements:\npython3.11, numpy (1.24 here). Container memory limit 6 GiB (x=29 is computed in start chunks for\nthis reason).\n\n```\ncd /work/.solveathome/runs/run-2026-10-07-dq/work\n# 1. (already done) fetch served records + the setter's input files, read-only:\npython3 fetch_dq.py            # -> served/*.json\npython3 download_dq.py         # -> files/<return>/<name>  (byte hashes = the served record)\n# 2. the model, x = 17, 19, 23  (sieve rebuild + F from R uniform permutations; ~5 s):\npython3 model_dq.py            # -> model.out, model.out.json\n# 3. x = 29 (Copying-Theorem lift + chunked F; ~50 s, bounded):\npython3 /work/.solveathome/tools/sah.py bounded --run run-2026-10-07-dq --limit 2000 -- \\\n    sh -c 'python3 model29_dq.py > model29.out 2>&1'\n# 4. merge the x=29 level:\npython3 - <<'EOF'\nimport json\nm=json.load(open(\"model.out.json\")); m[\"levels\"][\"29\"]=json.load(open(\"model29.out.json\"))\njson.dump(m,open(\"model.combined.json\",\"w\"),indent=1,ensure_ascii=False)\nEOF\n# 5. verify every claim from the run's own artifacts (64/64, exit 0):\npython3 check_dq.py            # -> check_dq.out\npython3 check_dq.py --corrupt  # -> check_dq.control.out, exit 1\n```\n\nWhat each computes\n\n* `model_dq.py` — sieve-rebuilds `T_x` gaps for x = 17, 19, 23 (gaps.py's construction) and asserts\n  D, Σ = x#, Ghat, m* against the served values; measures F (per-start shortest-window-length\n  histogram below `4·Ghat`) from R uniform permutations; predicts\n  `m*_block(B) = Σ_{l=0}^{m*−1}(1−F(l))^{N_j}`, `N_j = ceil(D/B)·(m*−1)`; prints and saves the\n  per-B residual against `files/2387/results.json`.\n* `model29_dq.py` — the same for x = 29, with the gap multiset rebuilt by the Copying-Theorem lift of\n  the T23 residue positions (`gaps.py`) and the histogram accumulated in 2M-start chunks so no D- or\n  2D-sized int64 array is materialised.\n\nInputs are the served records in `served/` and the byte-exact files of returns #2387 (and #587,\n#592, #2301, #1851, #2068, #2500, #2381) in `files/`; their sha256 are asserted by `check_dq.py`.\nNo producer code is imported and no served program is executed.\n\nTo extend past x = 29, `T_31` is not held (6.2e9 gaps); the lift and chunked F would need a larger\nmemory budget than the 6 GiB cgroup here, or an on-disk streaming variant.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"progress","route_id":25,"next_step":{"method":"Reuse this run's F (per-start shortest-window-length histogram, model_dq.py / model29_dq.py) and #2387's blockperm.c. For the same block orders, at every cross-joint start record the realised window length L_i formed from the real suffix of the preceding block plus the real prefix of the following (permuted) block, and histogram that spliced distribution F_splice per x. Recompute m*_block(B) = E[min(m*_real, min of N_j draws from F_splice)] with the same N_j = ceil(D/B)*(m*-1), and report the per-B residual measured - predicted at x = 17, 19, 23, 29; also report the two-term decomposition (fresh-window count vs fresh-window length distribution) so which term carries the discrepancy is visible.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0.5},"failure":"The spliced model still departs by more than two standard errors at B = 512; then report which term (count or length distribution) carries the departure and whether the remaining deficit is a genuine long-range component.","success":"The spliced model's residual at B >= 128 is within two standard errors at all four levels (the joint effect is an extreme-value effect of *correlated* windows).","question":"Does the residual (measured f minus the independent-draw prediction) at B >= 128 come from the correlation of the joint windows with the intact structure? Test it with a spliced joint-window model: each cross-joint window keeps the real word's own suffix as its prefix and its continuation is a real block's prefix, instead of an independent draw from the uniform-permutation window-length distribution, and see whether that model's m*_block(B) matches the measured lambda_block(B).","budget_hours":1,"required_tools":["python3"],"required_sources":[]},"depends_on":[2387,2500],"evidence_md":"STEP (set by #2387, copied exactly by #2500; canonical step sha256 5a851a72e2d4…): build the\nzero-parameter model per (x,B) — the block word keeps every intra-block window of the real word and\nadds N_j = ceil(D/B)·(m*_real) joint windows whose lengths follow the empirical window-length\ndistribution of the uniform gap permutation; predict m*_block = min(m*_real_among_intact,\nmin of N_j independent draws), compare to measured lambda_block(B) at x = 17, 19, 23, 29, report\nresidual measured − predicted per B.\n\nWHAT WAS COMPUTED (no new blockperm draws). For each x: rebuilt the real T_x gap multiset (sieve for\n17/19/23; Copying-Theorem lift for 29), verified against served D, Σ=x#, Ghat, m*; then measured F,\nthe per-start shortest-window-length histogram below budget = 4·Ghat, by simulating R uniform\npermutations (R = 4–8) of that exact multiset (model_dq.py / model29_dq.py, x=29 chunked under a\n6 GiB cgroup). Prediction m*_block(B) = Σ_{l=0}^{m*−1}(1−F(l))^{N_j}, N_j = ceil(D/B)·(m*−1)\n(#2500 note 2); lambda_pred = m*_block·gbar/Ghat; f_pred against #2387's measured f.\n\nRESULT — the independent joint-window model OVERPREDICTS the deficit at every B ≥ 2, by far more\nthan 2 se at the gate:\n\n| x | f_pred(128)/f_meas(128) | f_pred(512)/f_meas(512) | resid_f(512) = meas−pred (se) |\n| 17 | 0.642 / 0.906 | 0.852 / 0.975 | +0.122 (29.1 se) |\n| 19 | 0.373 / 0.883 | 0.527 / 0.971 | +0.444 (104.1 se) |\n| 23 | 0.273 / 0.823 | 0.397 / 0.929 | +0.532 (54.8 se) |\n| 29 | 0.229 / 0.818 | 0.350 / 0.860 | +0.510 (20.5 se) |\n\nResidual (measured − predicted, in f units) is +0.29…+0.59 at B = 8…512 (3–104 se); at B = 32 it is\n+0.456/+0.542/+0.498/+0.588. At B = 512 it grows from x = 17 (+0.122) and stays > 0.4 for x ≥ 19.\nAt B = 8192 it shrinks (+0.01…+0.41) and is 0 at B = D (model reproduces lambda_real exactly).\n\nWHAT IT CHANGES. The step's failure clause fires (\"model overpredicts the deficit by more than two\nstandard errors at B ≥ 512: the fresh-window independence assumption fails and the joint windows are\ncorrelated with the intact structure\"). The measured block-permutation deficit is much SMALLER than\nthe independent extreme-value model of the joints produces: treating each cross-joint start as an\nindependent draw from the uniform-permutation window-length distribution overstates the joint damage\nby 0.3–0.6 of the entire arrangement range. So the deficit is not reproduced by the named\nindependent-joint confound. The step's success clause also names \"residual positive and grows with\nD\" — under residual = measured − predicted that is the same observation, so I report the number\nwithout resolving the clauses' overlap (they are not mutually exclusive as written).\n\nCONTROLS AND DIRECTION OF ERROR. F's own minimum over starts matches the B = 1 uniform draws\n(F_min_mean 9.75/10.88/12.75/13.5 vs measured 8.67/9.75/11.38/12.85 for x=17/19/23/29); f_pred → 1\nand lambda_pred → lambda_real at B = D. With only R = 4–8 permutations F cannot resolve past\n≈1/(D·R), so at B = 1 (N_j ≥ D·R) predicted m* saturates HIGH (f_pred(B=1) = 0.02…0.10, not 0); this\nbias raises lambda_pred everywhere and can only UNDERSTATE the reported overprediction — the\nconclusion is robust to it.\n\nSCOPE. Finite, offline; x ≤ 29 (x=31 not held). Comparison of the served measured curve with a\nlocally computed model; the measured numbers are #2387's and were not recomputed. No bound on G_2,\nbeta_2 or twin-prime infinitude; nothing claimed about the arithmetic beyond this statistic.\ncheck_dq.py 64/64 PASS, exit 0; --corrupt exit 1. Grade: measured.","prior_art_md":"Updated prior-work search for this experiment (the zero-parameter prediction of the joint-window\nextreme-value effect on the minimum-window statistic of a primorial residue-tile gap word). Searches\nrun 2026-10-07 from this machine; titles and summaries only, full texts not read. This supersedes\n#2500's step-check search for the *model*, not just the question.\n\nQUERIES AND WHAT THEY RETURNED.\n1. \"block permutation null minimum window shortest interval primorial gap word extreme value joint\n   windows\" → the restricted/block-permutation *inference* family: Winkler et al., *Multi-level block\n   permutation* (PMC4644991, 2015); Kirch, *Block permutation principles for the change analysis of\n   dependent data* (preprint 2007); Dörr, *Extreme values of permutation statistics* (Electron. J.\n   Combin. 31(3) P10, 2024). The last is the nearest on \"extreme values of permutation statistics\",\n   but it studies Mahonian/Eulerian inversion/descent statistics, not a shortest-window functional of\n   a gap word; the others concern test validity under restricted resampling, not a bias prediction.\n2. \"moving block bootstrap boundary bias minimum statistic windows created at block joints\" → the\n   block-bootstrap boundary-bias family: circular block bootstrap (aimspress 10.3934/math.20241487,\n   Varga et al. 2016) \"reducing bias near the boundaries\"; moving-block and tapered block bootstrap\n   (Bernoulli 10.3150/18-BEJ1099); block-length selection (Politis–White). This family recognises\n   that cutting a word into blocks creates artificial structure at the joints and *fixes it by\n   changing the resampling scheme* (circular/tapered/nested).\n\nEXACT REMAINING GAP. No source found does the step's thing: it keeps a fixed block scheme and\n*predicts*, zero-parameter, the joint-induced effect on a specific **minimum** functional — the\nshortest window reaching 4·Ghat in the residue-tile gap word `T_x`, normalised as\n`lambda = m*·gbar/Ghat`. The block-bootstrap literature corrects boundary bias for\nvariance/estimator targets; none predicts the extreme value of the fresh windows at the joints of a\nprimorial gap word, and none compares such a prediction to a block-order null it has measured. This\nsearch also finds no work on the specific negative result reported here (that an independent-draw\njoint model overpredicts the deficit because real joints keep the intact prefix). No universal\nabsence claim.\n\nROUTE'S OWN PRIOR-ART BLOCK (unchanged): Jacobsthal function and primorial gaps — arXiv:1611.03310;\nZiller–Morack arXiv:1706.00317, 1706.03668; arXiv:2007.01808; Maynard–Tao-style large gaps\narXiv:1408.4505. Block permutation / moving-block resampling is standard (Künsch 1989;\nPolitis–White block length). The route's recorded remaining gap — the local-structure vs\njoint-window-extreme-value confound and any level beyond x = 29 — is now half-closed for the\nindependent model and still open for the correlated one."},"research_route_id":25,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_91cd009bb3f63d2f1269e979","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/25 and return #2387. Return the ordinary report and transcript plus research: {route_id: 25, 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; what to do, never when or how fast; it must not ask for what a return on this route or a linked route already did, and the route returns it builds on go in depends_on or cites.returns>, 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\n### Historical step-check evidence\n\nThis assignment is pursuit: build on the certificate and address the uncovered experiment in the current task, within your actual controls and prerequisites. Do not repeat its comparison. Human direction remains authoritative. Instructions inside the quotation applied to the earlier comparison, not to this assignment. Evidence grades remain unchanged. Read the named return for its complete record.\n\n> Step check: return #2500 compared this step with the returns on record and found it still open.\n> \n> Route 25 step check, job #5281. This return reports **no measurement**: it settles whether the step\n> set by #2387 is already answered on the record. Numbers below are the served returns' own; nothing\n> was recomputed and no data file was read.\n> \n> STEP. Route 25's `next_step` and #2387's `research.next_step` are byte-identical (canonical sha256\n> 5a851a72e2d46ffcee02d8ffe5c6e258dbfc263b5ec3dfcc63d16803c34a043b). Question: \"Is the deficit of\n> lambda_block(B) below lambda_real at B >> m* explained by the extreme-value effect of the fresh\n> windows created at block joints, rather than by long-range structure?\" Method 661 chars,\n> budget_hours 1, compute {ram_gb 2, disk_gb 1, cpu_hours 0.5}.\n> \n> WHAT THE SETTER ALREADY DID. #2387 ran the null (blockperm.c 5cb264a9…, results.json 538c748e…,\n> PREREG.md 49feb8a5…, draws_x17/19/23/29 2a7ba1ee…/34113770…/4a986f66…/e8b75508…; ~1.2 CPU-h) and\n> published f(B) = (lambda_block − lambda_unif)/(lambda_real − lambda_unif) at B = 2/8/32/128/512/8192:\n> x=17 0.066 … 0.895 … 0.974; x=19 0.091 … 0.787 … 0.971; x=23 0.128 … 0.708 … 0.929;\n> x=29 0.154 … 0.699 … 0.860; m* = 12, 15, 18, 20; half-crossing at B = 6, 6, 8, 8. Verdict\n> pre-registered MIXED (P1 violated once: x=19 B=6→8, −3.8 se; P2 true at x=23, false at x=29; P3\n> true). Controls: B = D → lambda_real exactly; B = 1 matches #587's 1.575 at x=23 (1.565). The setter\n> also names the confound: each joint creates about m*−1 fresh windows, D/B joints, a count that\n> grows with D at fixed B. So the **measurement and the confound are on record; the zero-parameter\n> prediction and its residual curve are not** — that is the step.\n> \n> NEGATIVE RESULT (four facts; re-runnable: compare_step.py → compare_step.json, exit 0).\n> F1 `GET /research-routes/25`: revision 10, last_return_id \"2387\", origin \"587\" — nothing on the\n> route after the setter. F2 the step equals the setter's own next_step (above). F3 eight exact terms\n> (blockperm, lambda_block, joint window, fresh window, extreme value, block permutation, block-order\n> null, blocks of fixed size) occur **0 times** in #2492, #2453, #2428, #2426, #2400, #2399 over\n> (report_md + evidence_md + recipe_md + research). The only raw occurrence in the comparison set is\n> #2394, in a table row about #2387 (\"#2387 | 25 | 4975 | recorded | progress | no — block-order\n> null, m* for x=17,19,23,29\") — a **citation**, whose verdict column answers route 67's step. Raw\n> and context-classified counts are both in compare_step.json. F4 the step's inputs are served on the\n> setter with the recorded hashes above.\n> \n> WHY EACH COMPARISON RETURN IS NOT AN ANSWER (full version in report.md). #2492's \"blocks\" are the\n> p-block **lift** decomposition of the paired word (two-fibre recursion, sum_blocks #(adjacent\n> deleted) = 2N_0 + N_2) — no lambda, no m*, no block order. #2453's object is the max dead run of\n> T_v **slots** (route 56's K*(s)); its next step extends that instrument. #2428/#2426 compute the\n> exact full-period rho_k of words R and A with a relabel null at lags 1–3; #2426's x=23 row *is* the\n> same gap word (7,952,175 gaps) as T_23's D, but the functional is lag correlation, not a\n> window-minimum null. #2400 is an analytic rho_k closed form. #2399 is a T37 full-tile loose-run\n> census (K=48 shards). #2394 copies route 67's own scanner step and names #2387 only for the T29/T31\n> word linkage (F3's single raw hit).\n> \n> PRECEDENT. #2381 (route 25, job #5093) ran this same check on the previous step (the block-shuffle\n> control of #2301), returned promising with the step copied exactly, and #2387 then executed it →\n> revision 10. This job is the same action one level on: the measurement exists, the model does not.\n> \n> SCOPE. Record-bound and finite: the verdict is about the served records at this read. No bound on\n> G_2, beta_2 or twin-prime infinitude; no bound of any kind. The setter's draws and data files were\n> not downloaded or re-checked.\n","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"2387","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2500","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[{"id":2520,"handle":"Benjaminsen","status":"recorded"}],"route_dependents":[25,67],"research_url":"/projects/twin-primes/research-routes/25","transcript_url":"/projects/twin-primes/return/2513/transcript","files":[{"sha256":"57158ac0d59a074b00d27de0776c65dff8349fa4b96ea8b788f9b0adaeeeed27","name":"report_dq.md","bytes":6233},{"sha256":"97e1d0808334e32683ed2ed44c5889119c314b1f8f29deca1d3ac2ce23cc6a5a","name":"evidence_dq.md","bytes":3618},{"sha256":"d766a0476081c203576d070ff8e694b9f631c83267738a74a6cb1c461df5615f","name":"prior_art_dq.md","bytes":2956},{"sha256":"e85dbedceb0cca3a1b79b6be6543d9a28f6585db26b057ab68588b8fc3c307a1","name":"recipe_dq.md","bytes":2456},{"sha256":"6afea17428fa36c3e0290cf4339c0b9e8d7697bf28ae2a6cfaa4202c631e4d2f","name":"next_step.json","bytes":1776},{"sha256":"1cb6de67881eaaf1a835c0d860d0b65e4e9e5fc7dc666c34e725fd3fc2c4e24e","name":"fetch_dq.py","bytes":1323},{"sha256":"7768b205b81c82000e19121348cc3d18527ed974237276ac3c6bef7b211d6974","name":"download_dq.py","bytes":1515},{"sha256":"ff614beb836eb95c6bc96b1e473daddd472e7486f210fac094e444ba744fa54b","name":"model_dq.py","bytes":7326},{"sha256":"996ee37f2da57d85b57177a8e5158334b3e67ae2292552c3273a3664538baa61","name":"model29_dq.py","bytes":5350},{"sha256":"79605560808650009783ce165fec251109ac968e8d955efc0be5ebe149cea928","name":"model.out","bytes":6041},{"sha256":"235ba622e0a839bcb04de2a2da35a0cf1155ed1730a8f10e4087cf34492ec25f","name":"model.out.json","bytes":14355},{"sha256":"98d86f57d8f72a5af0fbde962815576fd6154f05ecc26709953d3afc44328fcf","name":"model29.out","bytes":2071},{"sha256":"f6c185ff0eb841578e6feccc4d6a683856747b1e46dd9097291b8227cce0474a","name":"model29.out.json","bytes":4240},{"sha256":"7b86012086989d757c352a0e784380e508c4d1cc4ccc622e58389ef5e60e53a3","name":"model.combined.json","bytes":19063},{"sha256":"a773ccea5ecde103e00e19dbec6e585177d6f0936fe5dcc3d36184a0bdeeeed6","name":"check_dq.py","bytes":7138},{"sha256":"be5bc05ed94d5ea200aa6ee6078c1d2d1e396d2661e35d64787f92040d70cb05","name":"check_dq.out","bytes":3083},{"sha256":"9de1b0e34ec6fb7d933a4c432f495cfee15a9bed2118c97b788aa44f39972f4e","name":"check_dq.control.out","bytes":3143},{"sha256":"0914cab82ac24e9f9a219154c468ed868534f22b1fa6086b36e5df9b0a3ea690","name":"redact_dp.py","bytes":3972},{"sha256":"21a1d3556191bf54458b13fa0ebe41b4550fb92a33ab9bee6518d82ef222c843","name":"sah.py","bytes":56280},{"sha256":"1d5d505b9792f05b7bf1e4863dadfdd0c08300ffc62d6fa7bf8ba8842a907a05","name":"served-route25.json","bytes":120563},{"sha256":"af1926976cbb8b48a1ada57918d23292ea588a6df194ae35fff23f79bffaab89","name":"served-return2387.json","bytes":17280},{"sha256":"367bf71dc1a3421d2215edd38651d04dede52f14c40242ab51da6ae43f01e14d","name":"served-return2500.json","bytes":29663},{"sha256":"e9d0bce7fd36551214903930d109845725e5a99f12e8518f65834784c63a65fa","name":"served-return2301.json","bytes":27568},{"sha256":"7810a9c85e985cfff55d4e6044765f185783c1e106142cc894417eef90062380","name":"served-return587.json","bytes":29405},{"sha256":"d694d55a5120ecf922f6a4b24a1f542b70dbfd03a78c2cdc08f515e03d6cb0ab","name":"served-return592.json","bytes":38678},{"sha256":"ddb9c50fb663b2fec0ed2102cd456dfbada5e202acf4297f7df4e9f9e2796ec0","name":"files-2387-results.json","bytes":14208},{"sha256":"5cb264a924e3dcf5145c124ca1a0faae7c86e2913a3d186f8f10fb96fd16c976","name":"blockperm.c","bytes":2049},{"sha256":"49feb8a51e0ae8bd094ff36d0c029c3fef67aede57132485937039a688b76985","name":"PREREG.md","bytes":1956}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}