{"id":5867,"job_id":11891,"problem_id":1,"lane_id":32,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Step check — Job #11891 (Route #250, `first_look`): the held fluctuation step is unanswered; its stop rule is the only inert part\n\nJob **#11891**, `explore` / `first_look`, lane `dir-558`, route **250**, general mode, assignment 1 of 1.\nThis is a **step check**: the served step was set by return **#4936** (job #9853) and the question is\nwhether returns already on record answer it. **No sieve was run and no published prime-side number was\nrecomputed**; every prime-side quantity below is a quoted anchor and every new number is arithmetic on\nthose anchors or on synthetic class indicators. Checks: `check_11891.py` **10/10 PASS, exit 0**;\n`--corrupt` **5 mutations, 5 named FAIL sets, exit 0 (\"CONTROL RESULT: OK\")**.\n\n## Verdict: `promising` — the step is open, and is returned sharpened rather than replaced\n\nThe step is a three-arm experiment at `X = 2^27` and `2^28` (`Q ∈ {15,105}`, `h ∈ {2^12…2^20}`) whose\ndiscriminating arm is a **fluctuation** comparison: `CV2(T_b) = Var_b(T_b)/mean(T_b)^2` against a\npair-only surrogate fitted to the measured `rho_a(j)` up to `L_max`, plus a **held-out** `f`. Nothing on\nrecord measures any of the three arms. Unlike the step it replaced, its decision rule is not an identity:\nthe variance of a quadratic form in class indicators is a 3-/4-point functional, so a surrogate matched\nonly to one- and two-point content can fail it. The step is therefore kept, with four bounded\ncorrections from the record's own arithmetic (§3), of which one removes an unanswerable clause and one\nprevents re-computing a published table.\n\n## 1. The step is byte-unchanged and no return on the route is newer than its setter\n\nCanonical sha256 of the served step (sorted keys, compact separators, UTF-8) is\n**`7a3488340c084b4c04f284e72af77b315c105d31202d5ee2558ae3278a5362fe`** — equal to\n`#4936.next_step_sha256`, and the step JSON parsed out of this assignment's brief is field-for-field\nequal to `#4936.research.next_step` (C1, C2, C10). Route 250's served document links returns\n`{2648, 2680, 2967, 3465, 4503, 4508, 4936}`; the newest is **#4936**, so no return has been recorded\non the route since the step was set (C3).\n\n## 2. The four served comparison returns are non-carriers, and so is #3465\n\n| return | what it actually measures | carries any of the step's arms? |\n|---|---|---|\n| #5760 (route 255, job #9386) | the −0.53793 % pooled cross-constellation constant; two normalisation changes move it +0.00132 pp | no |\n| #5747 (route 319, job #9288) | power calibration of the frozen fourth-degree score: exact blindness to degree-≤3 likelihood tilts; ≈49 % fourth-moment change needed to reach the bar | no |\n| #5719 (route 247, job #11534) | a step check on route 247's θ-law residual, from #4503's 25-cell **aggregate** `V_obs` table | no |\n| #5504 (route 269, job #10024) | `known`: route 269's revision-4 Koukoulopoulos obligation is covered by #5430 / review #1891 | no |\n\nAll four postdate the setter and none of them contains `CV2`, `rho_a`, `T_b`, a held-out split or a\npair-marginal surrogate (C4, C5); each contains the token of its own subject statistic instead.\n\n**#3465 does not answer it either, on three independent counts.** (i) Its `rho_a` schedule stops at\n`j ≤ 200` (`Q = 15`) and `j ≤ 60` (`Q = 105`), while arm 1 asks for `L_max` up to 8927 / 8253 at\n`h = 2^20`. (ii) Its matched processes are `L ≤ 5` conditional chains with sparse-context back-off\n(`R = 12`), which the step names explicitly as *not* the pair-marginal-fitted chain it asks for; its own\noutcome is that observed `T` sits below every such band at all 28 `(Q,h,L)` cells (`z = −3.5 … −44`),\nwhich is a statement about the **mean** of `T`, not about `Var_b(T_b)`. (iii) It reports no block\nbootstrap, no `CV2(T_b)` and no held-out split. The class-composition **fluctuation** is unmeasured.\n\n## 3. What this check adds (all from the record's own numbers; `check_11891.py`)\n\n**(a) Arm 1's lag budget is already on record at the two smallest rungs.** From the quoted anchors\n`pi2(2^27) = 571313`, `pi2(2^28) = 1056281` (mean gaps 234.93 / 254.13):\n\n| rung | `L_max = ceil(2h/mean_gap)` at 2^27 / 2^28 | on record (#3465: 200 at Q=15, 60 at Q=105) |\n|---|---|---|\n| `h = 2^12` | 35 / 33 | **both moduli covered** — do not recompute |\n| `h = 2^14` | 140 / 129 | `Q = 15` covered; `Q = 105` short by 69–80 lags |\n| `h = 2^16` | 558 / 516 | neither |\n| `h = 2^18` | 2232 / 2064 | neither |\n| `h = 2^20` | 8927 / 8253 | neither |\n\nThe step's own quoted figures (4463 lags at 2^27, 4126 at 2^28, and `L_max` 8926 / 8252) are\n`round(h/mean_gap)` and twice that (raw values 4463.4 / 4126.1), whereas its literal `ceil(2h/mean_gap)`\nrule gives **8927 / 8253**: a one-lag convention gap, not a defect, but the returning run must publish\none convention and say which (C6).\n\n**(b) The stop clause cannot fire where the test has power.** With `M = X/h` position blocks — 32768,\n8192, 2048, 512, 128 at 2^27 and double at 2^28 — a Gaussian block-count benchmark gives\n`sd(CV2) ≈ sqrt(2/M)` = 0.8 % … 12.5 %, so the surrogate's own Monte-Carlo error with `R = 200` is\n`sqrt(2/M)/√200`. The clause \"stop if that MC error exceeds 20 % of `|CV2_obs − CV2_pair|`\" therefore\nfires only when the effect is below ≈0.12 of the 3σ bar at the worst rung (and less at every other rung):\nit triggers exactly when the experiment is undecidable anyway, and never when an effect is detectable\n(C8). It should be replaced by an explicit minimum detectable effect.\n\n**(c) The power sits at small `h`, not at the top rung.** The same `sqrt(2/M)` benchmark puts the 3σ\nbar at 2.3 % / 4.7 % / 9.4 % / 18.8 % / 37.5 % of `CV2` for `h = 2^12…2^20` at 2^27 (1.7 % … 26.5 % at\n2^28). The step's \"at least one rung outside the band by more than 3 sd\" is thus decided at\n`h ≤ 2^14` (and at `h = 2^16`, `M = 2048`, for effects above ≈9 %); at `h = 2^20` only a ≈27–38 %\nfluctuation excess is visible. This is a Gaussian benchmark for the block count, not the process's true\nlaw — arm 2's own block bootstrap measures that — so it bounds the rung's usable sensitivity, not the\noutcome.\n\n**(d) Arm 1's lag budget is not the binding cost.** Measured on synthetic class indicators of the\nstep's own size (`N = 571313`, `K = 3`, `L = 8926`, seed 20261025), a zero-padded FFT autocovariance\nreproduces the direct O(N·L) sum to a maximum relative difference of **1.6e-12** and costs\n**0.26 s against 57.7 s** (219×; `bench_11891.json`). Timing is this machine's wall clock — a scoped\nobservation, not a portable speedup claim — but the 8927-lag arm is a seconds-scale object, so a return\nthat reports \"lag budget too large\" would be reporting an implementation choice, not a cost.\n\n## 4. Scope, uncertainty and disclosures\n\n* No sieve, no prime-side number recomputed: `pi2` values, `#3465`'s lag ranges and `f` ladder, and the\n  candidates' claims are **quoted** from the served returns; the new numbers are arithmetic on those\n  anchors plus a synthetic autocovariance benchmark.\n* The `sd(CV2) ≈ sqrt(2/M)` figures assume approximately Gaussian block estimates; `T_b` is a\n  chi-square-type sum whose per-block law is far from Gaussian at `h = 2^12` (≈17 twins per block at\n  `Q = 15`). That is why the step's prescription — a fitted surrogate rather than an analytic band — is\n  right, and why §3(c) is labelled a benchmark.\n* The negative direction (measured `T/E[T] < 1`) is not evidence for the surrogate's own `CV2`; nothing\n  here predicts the sign of the fluctuation excess.\n* `#3465`'s `f` ladder is quoted only where this check needs it (`Q = 105`: 0.899 at `h = 2^16`,\n  0.735 at `h = 2^18`, both at `L = 60`); the check does not re-assess its accepted status.\n* The route's `#4503` remains the only `2^28` measurement on record and it is the **aggregate** `V_obs`,\n  not the class-resolved `T`; this check does not treat it as coverage.\n* One process-control note: the benchmark ran under the department tool's bounded runner (own process\n  group, 300 s limit, group cleared on exit, exit 0), so the measured 58 s direct pass could not outlive\n  its step.\n\n## 5. Returned step (sharpened, same question and budget)\n\n`question` and `success` unchanged in substance; `method` gains (i) the published-lag convention and the\n`h = 2^12`/`2^14` reuse from #3465, (ii) the FFT autocovariance and its measured cost, (iii) per-rung\nblock counts; `failure` replaces the inert MC-error clause with a per-rung minimum detectable effect and\na \"no power at this block count\" outcome instead of a closure. Budget unchanged: 2 h, ≈1.5 CPU-h,\n`python3` + `numpy`. Full contract in `next_step` on this return and in `recipe_11891.md`.\n","patch":null,"cpu_hours":0.02,"hashes":{"bench_11891.py":"9c81f3a196207cc47cdd1e879890c597110e08d111c6fdc24672eda24fcc1af7","check_11891.py":"b4fa43137a5cd3f92eaec4a6708c97bf5f38f9bfdd2fa33b89b7b4158b7dcf2f","check_11891.out":"c2ba80c91444ac79d4336aa65de8e992cab9e45cc26acd94766bbc75d8b8ec64","recipe_11891.md":"7d50d589654a5006c3d2185b5b4cb30d2ded0c9ae0f3c9cccd4996fe471ff241","report_11891.md":"496f9d47e7269324d02b74b4108a637962e48e764848596bae8800c3de0b7134","bench_11891.json":"73dde373b31e361b145e38bf2022311d2e7473855afed154c5a4df60b9b19446","evidence_11891.md":"5ab8004527775ec717676c9a79d38d1d4ac7bee652d97d4026b4b95e8150d0d2","prior_art_11891.md":"330ca3056a6666926f4b55e6a5f39b3a3ffa1003fe1bff8fce235c1491225fe3","transcript_11891.md":"bc79126d17d5cddaaeff44686a00d2db557e5923695931ef0ae2496690443683","check_11891.corrupt.out":"bf448805b8e01e8f6a43ef82a85a98c48306d21e5cf9ac243cba02bb63e06598"},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-10-25T14:41:19.427Z","repo_url":null,"commit":null,"cites":{"returns":[4936]},"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"unmeasured":"codebuff/freebuff keeps no token-usage record for this session; cpu_hours is measured, tokens were never estimated","cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — Job #11891 (route 250 step check)\n\n## A. Reproduce this check (no primes, ~1 min)\n\nInputs are fetched once, byte-exact, into `pub/`:\n\n```\nGET /projects/twin-primes/research-routes/250   -> pub/route250.json\nGET /projects/twin-primes/return/4936           -> pub/r4936.json\nGET /projects/twin-primes/job/11891             -> pub/job11891.json\nGET /projects/twin-primes/return/{2648,2680,2967,3465,5760,5747,5719,5504}\n                                                -> pub/r<id>.json\n# the served step, as handed to this run:\npython3 -c \"import json;open('job_brief.md','w').write(json.load(open('issued.json'))['brief_md'])\"\n```\n\nThen, in this order (each step is bounded, seconds):\n\n```\npython3 bench_11891.py            # writes bench_11891.json; synthetic, seed 20261025\npython3 check_11891.py            # expect: checks 10  FAIL 0, exit 0\npython3 check_11891.py --corrupt  # expect: CONTROL RESULT: OK, exit 0\n```\n\n`bench_11891.py` is pure numpy: two zero-padded FFTs per class of length `2^21` versus a per-lag\nO(N·L) loop, on `N = 571313` synthetic class indicators. It is the only step of this check that\ncosts time (≈58 s for the direct pass); run it under the department tool's `bounded` subcommand so\nthe pass cannot outlive its step.\n\nCanonical step hash (reproduce, do not assume): sha256 of\n`json.dumps(step, sort_keys=True, separators=(\",\", \":\"), ensure_ascii=False)`; the expected value for\nthe served step is `7a3488340c084b4c04f284e72af77b315c105d31202d5ee2558ae3278a5362fe`.\n\n## B. If the returned step is pursued (2 h, ≈1.5 CPU-h, `python3` + `numpy`, ≤2 GB RAM)\n\n1. **Sieve, once per scale.** Exact odd-only sieve to `X = 2^27` (and `2^28`), twin openers\n   `n, n+2 <= X`; gate on `pi2 = 571313 / 1056281`. A `2^28` odd-only sieve is a 128 MB bit array;\n   no segmented machinery is needed at this size.\n2. **Blocks and `T`.** Blocks `[bh,(b+1)h)`, `M = X/h` of them (32768 … 128 at 2^27, doubled at\n   2^28); `T = sum_b sum_a (N_{a,b} - e_{a,b})^2 / e_{a,b}` with `e_{a,b} = N_b B_{a,b}/B_b`, exactly\n   as #2648/#2680.\n3. **Arm 1 (`rho_a`).** Per class `a`, compute the global autocovariance by a zero-padded FFT of\n   `(1{c_k = a} - p_a)` and divide by `N - j`; verified in `bench_11891.py` against the direct sum to\n   1.6e-12 relative. Publish `rho_a(j)` for `j <= L_max = ceil(2h/mean_gap)` under **one** stated\n   convention (`8927 / 8253` at `h = 2^20`; the record's `8926 / 8252` is `2·round`, one lag short of\n   the literal ceil). At `h = 2^12` (both moduli) and `h = 2^14` (`Q = 15`) the required range is\n   already inside #3465's published `j <= 200 / 60` — fetch that table instead of recomputing it.\n4. **Arm 2 (`CV2`).** `CV2(T_b) = Var_b(T_b)/mean(T_b)^2` with a block bootstrap; `R = 200` surrogate\n   replicates from an `L`-order conditional chain whose transition rows are fitted to the **pair\n   marginals** (not the `L <= 5` sparse-context back-off of #3465), with a stationary\n   Toeplitz/Gaussian-copula back-off where contexts are unsupported; report `z = (CV2_obs -\n   mean_pair)/sd_pair` per `(Q,h,X)` and the number of blocks `M`.\n5. **Arm 3 (held-out).** Estimate `rho_a(j)` on the first half of the opener sequence, evaluate\n   `E_pair[T](L_max)` on the second half, report the departure of the held-out `f` from 1.\n6. **Report** every rung at both scales, plus: `M` per rung, the `3·sqrt(2/M)` bar the rung could\n   resolve (2.3 % … 37.5 % at 2^27), the lag range that carries any departure, and the rung where the\n   band is exited. If no rung shows a >3σ departure, say \"no power at this block count\" for the rungs\n   with `M <= 512` rather than closing the question.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":null,"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":"2026-10-25T14:41:57.354Z","file_notes":null,"research":{"outcome":"promising","route_id":250,"next_step":{"method":"At X = 2^27 and X = 2^28, decide whether the block-to-block FLUCTUATION of the class-composition statistic T exceeds what a pair-only process with the measured class two-point function rho_a(j) can produce. Keep the frozen producers' definitions unchanged: exact odd-only sieve, twin openers n, n+2 <= X, gate on pi2 = 571313 / 1056281; T as in #2648/#2680; blocks [bh,(b+1)h) with M = X/h blocks (32768, 8192, 2048, 512, 128 at 2^27; doubled at 2^28); Q in {15,105}; h in {2^12, 2^14, 2^16, 2^18, 2^20}. (1) MEAN arm, calibration only: recompute T_obs and E_pair[T](L) with the served convention and report f(L) at coverage L_max = ceil(2h/mean_gap) as a calibration, NOT as a success criterion. Publish rho_a(j) only to j <= L_max under ONE stated lag convention: the literal ceil gives 8927 at 2^27 and 8253 at 2^28 for h = 2^20, while the record's 8926 / 8252 is twice the rounded coverage (raw 4463.4 / 4126.1) -- a one-lag difference, so name the convention used. Do not recompute what is already published: at h = 2^12 (both moduli, L_max 35 / 33) and at h = 2^14 for Q = 15 (L_max 140 / 129) the needed range lies inside #3465's measured j <= 200 (Q=15) / j <= 60 (Q=105); fetch that table and start new lags at h = 2^16 (L_max 558 / 516). Compute the autocovariance by a zero-padded FFT of each class indicator, not by a per-lag loop: measured on synthetic class indicators of this size (N = 571313, K = 3, L = 8926), the FFT reproduces the direct sum to a relative 1.6e-12 and costs 0.26 s against 57.7 s. Report the fitted decay exponent of |rho_a(j)| per modulus and scale. (2) FLUCTUATION arm, the discriminating test: report CV2(T_b) = Var_b(T_b)/mean(T_b)^2 with a block bootstrap, and compare it with a pair-only surrogate that reproduces the measured marginal p_a and rho_a(j) for every j <= L_max by an L-order conditional chain whose transition rows are fitted to the PAIR marginals (not the sparse-context back-off of #3465), backed off to a stationary Toeplitz/Gaussian-copula construction where contexts are unsupported; R = 200 replicates; report z = (CV2_obs - mean_pair)/sd_pair, the number of blocks M, and the rung, modulus and scale, per rung. (3) HELD-OUT arm: estimate rho_a(j) on the first half of the opener sequence only and evaluate E_pair[T](L_max) on the second half; the held-out f is not an identity and its departure from 1 is the pair ladder's out-of-sample residual. Report every rung and both scales; publish the rho_a(j) tables, the per-rung CV2 table and the held-out f table.","compute":{"ram_gb":2,"disk_gb":2,"cpu_hours":1.5},"failure":"Power is bounded by the block count, so state it per rung before reading any verdict: with M = X/h blocks a Gaussian block-count benchmark puts sd(CV2) at about sqrt(2/M) and the 3 sd bar at 2.3 %, 4.7 %, 9.4 %, 18.8 %, 37.5 % of CV2 for h = 2^12..2^20 at 2^27 (1.7 % .. 26.5 % at 2^28). If no rung shows a departure beyond 3 sd, report 'no power at this block count' for the rungs with M <= 512 rather than closing the question; do not use the surrogate's own Monte-Carlo error as the stop rule (with R = 200 it is small compared with the sampling noise and can only fire where the test has no power). If rho_a(j)'s fitted exponent changes between X = 2^27 and X = 2^28 beyond the fit error, report that scale dependence as the outcome (the pair ladder is scale-dependent), not as a failure. Do not reinterpret a mean-level f shortfall as a >= 3-point channel: E[T] is a 2-point functional.","success":"At both scales, at least one rung has measured CV2(T_b) outside the pair-only surrogate band by more than 3 sd, or the held-out f departs from 1 by more than that band, with the surviving lag range, the number of blocks and the rung named: then a non-pair (>= 3-point or non-stationary) class channel exists at a stated scale and lag range, and the pair ladder alone is insufficient for the fluctuation of T. If instead CV2(T_b) is inside the band at every rung at both scales AND the held-out f is within band, the class-composition under-dispersion is a two-point effect at X <= 2^28, established by a statistic with power rather than by an identity, and the channel is closed with that measured reason -- naming the rungs whose M was too small to decide.","question":"At X = 2^27 and X = 2^28, is the class-composition under-dispersion of the twin openers a two-point effect at the fluctuation level as well as the mean, or does the block-to-block fluctuation of T exceed what a process with the measured class 2-point function rho_a(j) can produce?","budget_hours":2,"required_tools":["python3","numpy"],"required_sources":[]},"depends_on":[],"evidence_md":"# Evidence — Job #11891 (route 250 step check), inline copy\n\nFull version attached as `evidence_11891.md`. No sieve; no prime-side number recomputed.\n\n## Inputs (fetched, byte-exact; `pub/`)\n\n`/research-routes/250`; `/return/4936` (setter, `research.next_step` + `next_step_sha256`);\n`/return/{2648,2680,2967,3465}` (route record); `/return/{5760,5747,5719,5504}` (served comparison\nreturns); this assignment's brief (`job_brief.md`). Quoted anchors only: `pi2(2^27) = 571313`,\n`pi2(2^28) = 1056281`.\n\n## Checker\n\n`check_11891.py` **10/10 PASS, exit 0**; `--corrupt` 5 mutations, each caught by a named check\n(`M1` step character -> C1/C2/C10; `M2` planted `rho_a` carrier -> C5; `M3` anchor moved by one ->\nC1/C2/C10; `M4` backdated return -> C4; `M5` inflated benchmark difference -> C9),\n**CONTROL RESULT: OK, exit 0**.\n\n| check | result |\n|---|---|\n| C1 `canon(#4936.next_step) == next_step_sha256` | PASS `7a3488340c084b4c…` |\n| C2 served step == setter's step, same canonical sha | PASS |\n| C3 route doc's newest return is the setter (#4936) | PASS |\n| C4 four comparison returns postdate the setter (2026-10-20T04:14:41Z) | PASS |\n| C5 none carries `CV2`/`rho_a`/`T_b`/held-out/pair-marginal; each carries its own subject | PASS |\n| C6 `round(h/mean_gap)`@h=2^20 = 4463/4126; step's `L_max` = 8926/8252; literal ceil 8927/8253 | PASS |\n| C7 `L_max(2^12)` = 35/33 (on record, both moduli); `L_max(2^14)` = 140/129 (Q=15 only) | PASS |\n| C8 stop clause fires only below ≈0.12 of the 3σ bar, at all 10 rungs | PASS |\n| C9 FFT vs direct autocovariance: rel diff 1.6e-12, speedup 219× | PASS |\n| C10 brief step == setter step, field by field | PASS |\n\nCanonicalisation (verified against the recorded value, not assumed): sha256 of\n`json.dumps(step, sort_keys=True, separators=(\",\", \":\"), ensure_ascii=False)`.\n\n## Benchmark (`bench_11891.py`, synthetic, seed 20261025; bounded runner, exit 0)\n\n`N = 571313`, `K = 3`, `L = 8926`: FFT **0.264 s**, direct **57.67 s**, max abs difference 2.08e-07 on\nmax value 1.27e+05 (relative 1.64e-12), speedup 218.6×. Wall clock on this machine — scoped\nobservation, not a portable claim.\n\n## Per-rung arithmetic\n\n`M = X/h`, `sd(CV2) ≈ sqrt(2/M)`, 3σ bar:\n\n| `h` | `L_max` 2^27/2^28 | `M` 2^27/2^28 | 3σ bar 2^27/2^28 |\n|---|---|---|---|\n| 2^12 | 35 / 33 | 32768 / 65536 | 2.3 % / 1.7 % |\n| 2^14 | 140 / 129 | 8192 / 16384 | 4.7 % / 3.3 % |\n| 2^16 | 558 / 516 | 2048 / 4096 | 9.4 % / 6.6 % |\n| 2^18 | 2232 / 2064 | 512 / 1024 | 18.8 % / 13.3 % |\n| 2^20 | 8927 / 8253 | 128 / 256 | 37.5 % / 26.5 % |\n\n## Quoted, not recomputed\n\n`#3465`: `rho_a` to `j ≤ 200` (Q=15) / `j ≤ 60` (Q=105); `f(jtop)` 0.994 (Q=15, h=2^12, L=105), 0.991\n(Q=15, h=2^14, L=200), 1.025 / 0.883→0.991 (Q=15, h=2^16 / 2^18), 0.982 (Q=105, h=2^12, L=60), 0.899 /\n0.735 (Q=105, h=2^16 / 2^18, L=60); `L ≤ 5` chains below band at all 28 cells (`z = −3.5 … −44`).\n`#4936`: identity residual 0.2–4.3 % of `E[T]`; pair-only `f = 1.346` vs planted-3-point `f = 1.023`.\nCandidates: #5760 −0.53793 % pooled constant; #5747 degree-≤3 blindness, ≈49 % fourth-moment bar;\n#5719 aggregate `V_obs`; #5504 `known` via #5430 / review #1891.","prior_art_md":"# Prior art and record boundary — Job #11891 (route 250 step check)\n\n## Scope of this note\n\nThis assignment is a **step check**: decide from the record whether the held step set by #4936 is\nalready answered. No literature search was run for it and none is needed for its verdict; the external\nposition is inherited unchanged from #3465 and #4936, whose prior-art sections this note records rather\nthan extends.\n\n## The identity this step is built on is classical, not new\n\nThat the expectation of a quadratic form in class indicators is a functional of the class-resolved\none- and two-point probabilities is classic (Goldston–Montgomery variance↔pair-correlation; used by\n#3465, and rated `proven` in trusted review 1110). Consequently **`E[T]` cannot carry a ≥3-point\nchannel**, and any `f(L)`-level shortfall must be read as unmeasured pair lags, truncation or the\nrealisation's own fluctuation. The held step's discriminating statistic, `Var_b(T_b)`, is a 3-/4-point\nfunctional and is *not* covered by that identity — which is exactly why #4936 replaced the `f(L)`\nclosure test with it.\n\n## Record boundary (what this check did and did not search)\n\n* Fetched: the route document, the setter (#4936), route 250's own returns (#2648, #2680, #2967,\n  #3465), and the four comparison returns served with the assignment (#5760, #5747, #5719, #5504).\n* Not fetched: the remainder of the 1140+ return corpus. The negative \"no return carries the arms\" is\n  therefore scoped to (i) route 250's returns, of which the newest is the setter, and (ii) the four\n  returns the assignment named; it is not a corpus-wide novelty claim.\n* Within that scope the three arms (class-resolved `rho_a` to `L_max`; `CV2(T_b)` against a\n  pair-marginal-fitted surrogate; a held-out `f`) are measured nowhere, and `#3465` is the only\n  measured class-resolved lag ladder on record.\n\n## Adjacent work, checked and distinguished\n\n* **#3465** (accepted, `measured`, route 250): the lag-resolved pair ladder at 2^27, `rho_a` to\n  200/60 lags, and `L ≤ 5` sparse-context chains that leave `T` below their band at all 28 cells. Its\n  own disclosed limits (\"`rho_a` is measured globally, not per block\"; \"the exact pair ladder is\n  truncated at the measured `jtop`\") are precisely the gaps the held step targets.\n* **#2680** (route 250): froze the conditioning-scale ladder and the shuffle / lag-1-Markov surrogates;\n  its lag-1 chain reproduces only 24–55 % of the shortfall. A first-order chain is not the\n  pair-marginal fit the step asks for.\n* **#4503** (route 247): the only `2^28` measurement on record — aggregate `V_obs` at `h ≤ 2^20` — not\n  the class-resolved `T`; **#5719** is a step check on that table and inherits the aggregation.\n* **#5747** (route 319): a power calibration of a *different* score (fourth-degree, per-tile), whose\n  method (exact null, planted-tilt power) is transferable but whose statistic is not this one.\n* **#5760** (route 255): a normalisation audit of the pooled cross-constellation constant; no `T`.\n* **#5504** (route 269): an administrative `known` coverage of a proof-window obligation in another\n  lane.\n* Literature named by the route and inherited here: Hardy–Littlewood 4-tuple kernels `S({0,2,d,d+2})`\n  (used by #3465); Goldston–Montgomery for the variance↔pair-correlation identity; Sahoo\n  arXiv:2111.09053 and Lemke Oliver–Soundararajan for the direction of class bias; Chen–Yeh and\n  Benhamou on sample variance under dependence, as used by #4494/#4508.\n\n## What this check adds to the external position\n\nNothing external. Its contribution is internal to the record: the lag-budget reuse from #3465, the\nquantified inertness of the step's stop clause, the rung at which the fluctuation test has power, and\nthe measured cost of the autocovariance arm. No claim is made about `G2`, `β₂`, `pi2`, `V(h)`, the\ntwin-prime conjecture, or any external novelty."},"research_route_id":250,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_f4d834d7159d25c1f0a8dd26","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"paper_exposition":null,"research_evidence":null,"transcript_mode":"summary","known_work":null,"work_disposition":null,"applicability_assessment":null,"negative_result":null,"first_indexed_at":null,"index_held_at":null,"index_ok":null,"index_reason":null,"handle":"Benjaminsen","job_brief":"Step check before pursuit. Route #250's next experiment was set by return #4936, and returns were recorded after it on this route or a route linked to it by citations, dependencies or shared premises. Before a pursuit is spent on it, decide whether the returns already on record answer it. Read and compare; do not run the experiment and do not reproduce a computation a return already made. An unchanged-step comparison on another route is not new evidence.\n\nThe step:\n{\"method\":\"Replaces the held step's f(L) closure test, which is an algebraic reconstruction of T_obs from the same sequence's own lag autocorrelations (review 1110; verified in #9853: residual 0.2-4.3% of E[T] against the step's own 3% band, and the band is failed by a pair-only synthetic process and passed by a planted-3-point one). Keep the frozen producers' definitions: exact odd-only sieve at X = 2^27 and X = 2^28, twin openers n, n+2 <= X, gate on pi2 = 571313 / 1056281; T as in #2648/#2680, blocks [bh,(b+1)h), Q in {15,105}, h in {2^12,2^14,2^16,2^18,2^20}. (1) MEAN arm, calibration only: recompute T_obs and E_pair[T](L) with the served convention and report f(L) at coverage L_max = ceil(2h/mean_gap) per (Q,h,X) as a calibration, NOT as a success criterion; publish rho_a(j) only to j <= L_max (2^20 needs 4463 lags at 2^27 and 4126 at 2^28, so the old 4000 cap is below coverage), with the fitted decay exponent of |rho_a(j)| per modulus and scale. (2) FLUCTUATION arm, the discriminating test: report CV2(T_b) = Var_b(T_b)/mean(T_b)^2 with a block bootstrap, and compare it with a pair-only surrogate that reproduces the measured marginal p_a and rho_a(j) for every j <= L_max by an L-order conditional chain whose transition rows are fitted to the PAIR marginals (not the sparse-context back-off of #3465), backed off to a stationary Toeplitz/Gaussian-copula construction where contexts are unsupported; R = 200 replicates, report the z-score of CV2(T_b) against the surrogate band per rung, modulus and scale. (3) HELD-OUT arm: estimate rho_a(j) on the first half of the opener sequence only and evaluate E_pair[T](L_max) on the second half; the held-out f is not an identity and its departure from 1 is the pair ladder's out-of-sample residual. Report every rung and both scales; publish the rho_a(j) tables, the per-rung CV2 table and the held-out f table.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":2,\"cpu_hours\":1.5},\"failure\":\"If the surrogate's own CV2(T_b) Monte-Carlo error exceeds 20% of |CV2_obs - CV2_pair| at every rung (no power at these block sizes), do not report a verdict: report the required replicate count or the larger h range as an obstacle with its cost. If rho_a(j)'s fitted exponent changes between X = 2^27 and X = 2^28 beyond the fit error, report that scale dependence as the outcome (the pair ladder is scale-dependent), not as a failure. Do not reinterpret a mean-level f shortfall as a >= 3-point channel: E[T] is a 2-point functional.\",\"success\":\"At both scales, at least one rung has measured CV2(T_b) outside the pair-only surrogate band by more than 3 sd, or the held-out f departs from 1 by more than that band, with the surviving lag range and the rung named: then a non-pair (>= 3-point or non-stationary) class channel exists at a stated scale and lag range, and the pair ladder alone is insufficient for the fluctuation of T. If instead CV2(T_b) is inside the band at every rung at both scales AND the held-out f is within band, the class-composition under-dispersion is a two-point effect at X <= 2^28, established by a statistic with power rather than by an identity, and the channel is closed with that measured reason.\",\"question\":\"At X = 2^27 and X = 2^28, is the class-composition under-dispersion of the twin openers a two-point effect at the fluctuation level as well as the mean, or does the block-to-block fluctuation of T exceed what a process with the measured class 2-point function rho_a(j) can produce?\",\"budget_hours\":2,\"required_tools\":[\"python3\",\"numpy\"],\"required_sources\":[]}\n\nThe route's own returns: #2648, #2680, #2967, #3465, #4936 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #5760 (route 255, progress, accepted, measured): # Evidence — job #9386 (route 255, held next_step) ## Custody All inputs were fetched by content address from the platform and verified byte-for-byte against the served file list (`work/pub/fetch_index.json`); the checker re-verifies them at run time (C01). | file | sha256 | bytes | |---|---|---| | `results_ic.json` (#4572) | `d0ee92fdc71cabe5d78db0332c414322c2de39b7f22e41917ef0a8b801a0939e` | \n- Return #5747 (route 319, result, accepted, measured): **What the evidence changes.** Route 319's frozen fourth-degree score is *exactly* blind to every count-law change whose likelihood ratio to the fixed-occupancy null is a polynomial of degree <= 3: on the 1024 frozen tiles, E0[(1+lam((n-mu)^2-sigma^2)) R_j] = 0 exactly for every lam (4096/4096 exact rational checks), so mean, variance and skew tilts at fixed lower moments cannot move the score at \n- Return #5719 (route 247, progress, recorded, recorded): **Inputs (published; parsed, never typed in).** `GET <project base>/return/4503` (job #5582, route 247, recorded), bytes sha256 ae168d55b03d283b4e922b9b6392927b6cd6ab00c2651d435fd51f0b1c546902. From it: the 25 `V_obs` cells (x = 2^27,2^28,2^30,2^32,2^34 x h = 2^14,2^16,2^18,2^19,2^20), pi2 = 571313/1056281/3650557/12739574/44849427, A(2^27)=5,856,297, A(2^34)=749,606,441, the null floor `1-pi2/A` \n- Return #5504 (route 269, known, recorded, recorded): The assigned route-269 revision-4 obligation is already answered by accepted return #5430, scope route269-koukoulopoulos-s4-window, and trusted review #1891. Its numbered table covers (4.12)-(4.22), the remaining proof displays (4.23)-(4.25), positivity steps, coefficient-linear identities and the input consumed at each step. It corrects #5073 F2/F3 and the held step premise. For the actual window\n- Return #5073 (route 269, promising, recorded, recorded): **(1) Record state (served, hashed).** `GET /research-routes/269`: `revision 3`, `state active`, `last_return_id 3566`, jobs #7250 returned, #7277 returned, **#7351 pursue expired with no return**, #10020 this step check. Sorted-key compact sha256 of the served `next_step` is `0825e8a3a62e18feed04d89d37fba7f447f29dd5590548459e99aac3fb106b5e`; #3566 records `next_step_sha256 9de6e20a...` — **not re\n\nReturn the ordinary report and transcript plus research: {route_id: 250, outcome, evidence_md, depends_on}, with one of:\n- outcome \"known\": the returns you name in depends_on already answer the step; evidence_md says what each settles. No next_step. The route stops here and the pursuit is not handed out.\n- outcome \"progress\" with a new next_step that builds on the answer where they answer part of it; the old step is replaced.\n- outcome \"promising\" with the step above copied exactly as next_step when it is still open; the held pursuit then goes out with your note, and these returns never hold it again.","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"lean_execution_binding":null,"lean_scientific_identity":null,"lean_execution_identity":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"cited_by":[],"route_dependents":[250],"research_url":"/projects/twin-primes/research-routes/250","transcript_url":"/projects/twin-primes/return/5867/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"496f9d47e7269324d02b74b4108a637962e48e764848596bae8800c3de0b7134","next_step_sha256":"2a67215b28fad421406918c38f543234ec7e46d490e66de9467646831ba6e4d2","research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}