{"id":5479,"job_id":8552,"problem_id":1,"lane_id":32,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Route 206: the rescaled residual c_L is a sieve-model constant, and it is L-dependent\n\n**Outcome: result (measured + model).** The step asked whether `c_L(x) = (1 - rho_L)/prod_{5<=p<=x}(1 - 1/p)`\nconverges to an explicit sieve-model constant, and whether that constant explains the observed length\norder `11 > 23 > 17 > 29 ~ 35`. Both halves answer **yes**, and the second one is stronger than the step\nexpected: the constant is real, it is **not** a single number — it is a function `c_L` of the gap length —\nand the function, not a fitted curve, is what produces the order. The independent-residue model\nreproduces the exact wheel at `x = 17, 19, 23, 29` to **1.2e-4** in `rho_L` (20/20 values) and the measured\nvalues at `x = 37, 41, 43` to **6.4e-4** in `c_L` (18/18 values), with a new **x = 43** rung measured here.\n\n## What was asked\n\nRoute 206 (`revision 5`, `active`), predecessor return **#4172**. The step's `next_step.question`: is\n`c_L(x) = (1 - rho_L(x))/prod_{5<=p<=x}(1 - 1/p)` convergent to an explicit sieve-model constant `c_L`,\nand does it explain the length order `11 > 23 > 17 > 29 ~ 35`? Success: the model constant matches the\nmeasured `c_L(x)` for `L in {11,17,23,29,35}` within the sampled spread at `x = 41, 43` **and** reproduces\nthe observed length order. Failure: the measured `c_L(x)` leaves the model value beyond the sampled spread\nat `x = 41` or `43`, or the model gives the wrong length order.\n\nNothing here is a proof and nothing here bounds `G2`. `rho_L` is a wheel (`x#`) object; the model is a\nheuristic (CRT independence), and its agreement with the wheel is measured, not derived.\n\n## Method\n\n**The object, restated from the record's own scanner** (`compute_ch.py`, #2452, sha256 `9cdb5590…`, reused\nby #4172): `W = x#`; `A[m] = [gcd(m,W) > 1]`, `B[m] = [gcd(m+2,W) > 1]`, `tB = A & B`; twin slots are\n`~A & ~B` (count `D = prod_{3<=p<=x}(p-2)`); consecutive twin slots `a < b` give `L = b - a - 1`;\n`N_x(L)` = number of gaps, `TB_x(L)` = number of both-killed positions in them; and\n`TB = ((L+1)/2)N + F`, `rho_L = F/(((L-5)/2)N)`.\n\n**An exact row-structure lemma (this run, elementary; checked exactly as C08).** Twin slots are odd and\nsatisfy `a = 2 (mod 3)` — `a` and `a+2` are both coprime to 3. For the interior offset `j` of a gap\n(`m = a + j`, `j = 1..L`):\n- even `j` (`m` even) are both-killed by 2 — that is the `(L+1)/2` baseline of the identity;\n- `j = 2` has `A` false (`gcd(a+2,W) = 1` because `a` is a twin slot) and `j = L-1` has `B` false\n  (`m+2 = b`): exactly the two positions that make the `F` bound `(L-5)/2`, and the reason `F = 0` at `L = 5`;\n- on the remaining **(L-5)/2 free offsets** (`j = 4, 6, ..., L-3`, all odd `m`):\n  `j = 1 (mod 3) => 3 | m` so **A is forced**; `j = 2 (mod 3) => 3 | m+2` so **B is forced**; at\n  `j = 0 (mod 3)` neither is forced but the position is killed, so it must be killed by a prime `>= 5`.\n\nThe measured profile bears this out exactly (C08, 1416 cells): at 19#, `A/N = 1.0000` at every\n`j = 1 (mod 3)` and `B/N = 1.0000` at every `j = 2 (mod 3)` (§table T6). This is where the length\ndependence lives: the free grid is a **mixture** of three classes whose weights and whose distance to the\nendpoints both depend on `L`, so `rho_L` cannot be a single constant.\n\n**The model.** For every prime `p <= x` draw `t_p` uniformly on `Z_p`, independently across primes, and fix\n`t_2 = 0` (twin slots have one parity). Position `j` has `A[j] = [j = t_p (mod p) some p]` and\n`B[j] = [j + 2 = t_p (mod p) some p]` — the record's definitions with CRT independence standing in for the\nwheel. The model is density matched: `E[twin slots]/window = D/W` (checked at every rung, C14). Gaps,\n`TB`, `rho_L`, `c_L` and the full per-`(L,j)` profile are then computed by the same estimator as the wheel.\nThat is the \"inclusion-exclusion over the two endpoint residues\" the step asked for, carried out on the\nwhole word: conditioning only on the two endpoint residue classes (`a` and `b` twin) is *not* enough — it\ngives `rho = 0.36` where the wheel has `0.65` at (17#, L=11) — because the interior kill condition is what\ntraps the intermediate positions. The random-word model contains it automatically.\n\n**Devices and gates.** (1) `scan2_buffy22.py`, written from the definitions, an exact segmented scan of the\nfull wheel at `x = 5, 7, 11, 13, 17, 19, 23, 29` (2.4 s at 23#, 64 s at 29#), with `sum L*N = W - D`,\n`sum TB = K = round(pD*W)`, the `G2` ladder `12,30,42,66,108,150,204,258` and the one-class ladder\n`6,10,14,22,26,34,40,46` (OEIS A048670 a(3)..a(10)) as gates — all pass at all eight rungs (C01–C03), and\nits `rho_L` reproduces #4172's exact table **20/20 to 1e-9** (C05). (2) `sampler_buffy22.py`, the same\nobject on random windows (400 windows x 2e6 positions x 6 seeds per rung), calibrated against the exact\n31# rung to **1e-5** (C06) and against #4172's independent Node sampler at 37#/41# to **1e-4** (C07);\n0 violations at every rung (C15). (3) `mc_model_buffy22.py`, 600 draws x 1e6 positions per rung; its own\nacross-seed spread at 43# is `0.7-1.7e-4` in `c_L`.\n\n## Results\n\n`rho_L`, exact (T1), and `c_L(x) = (1 - rho_L)/prod_{5<=p<=x}(1 - 1/p)`, measured (T2) against the model (T3):\n\n| L | c_L (17#) | (19#) | (23#) | (29#) | (31#) | (37#) | (41#) | (**43#**) |\n|---|---|---|---|---|---|---|---|---|\n| 11 | .64931 | .63969 | .63356 | .62994 | .62683 | .62469 | .62302 | **.62155** |\n| 17 | .82162 | .81190 | .80680 | .80448 | .80291 | .80230 | .80207 | **.80187** |\n| 23 | .79928 | .79088 | .78629 | .78413 | .78269 | .78216 | .78202 | **.78215** |\n| 29 | .95713 | .93927 | .92829 | .92194 | .91704 | .91394 | .91170 | **.90991** |\n| 35 | .95828 | .94479 | .93262 | .92492 | .91866 | .91445 | .91109 | **.90819** |\n| 41 | 1.02414 | 1.01522 | 1.00295 | .99485 | .98845 | .98410 | .98068 | **.97802** |\n\n`x <= 31` exact (this run's scanner, 20/20 identical to #4172); `37, 41` sampled here and agreeing with\n#4172's sampler; **`43` new** (T7: `rho_L = .735745/.659079/.667463/.613146/.613875/.584186` for\n`L = 11/17/23/29/35/41`, across-seed `sd = 0.8-1.4e-4`, 5.8M-22M gaps each).\n\n**Model against measurement at the step's test rungs (T4).** `x = 37, 41, 43` x `L = 11,17,23,29,35,41`:\n`|model - measured| <= 6.4e-4` everywhere, i.e. within 3 combined standard errors; the signed differences\nshow no drift (`+2.8e-4 ... -5.9e-4`). Model against the **exact** wheel (T8): `|model - exact| <= 1.2e-4`\nover all 20 (x,L) cells at `x = 17..29`. So the drift of `rho_L` with `x`, and its level, are the\nfinite-`x` truncation of the same product — not a wheel correlation the model omits.\n\n**The length order (T5).** At 43# the measured order is `11 > 23 > 17 > 35 > 29 > 41` (`.7357, .6675,\n.6591, .6139, .6131, .5842`) and the model's order is **identical, rank for rank**. Two details the model\nalso reproduces: the `23 > 17` inversion (the anomaly the step's question names is not a wheel effect —\n`L = 23` has `N(23)/D` smaller and its free grid carries two forced-both offsets with `tB = 1.0000`, see\nT6 at `L = 23, j = 8, 16`), and the swap of `29` and `35` above 31# (at 29# `29 > 35` by 1.4e-3; from 37#\non, `35 > 29` by 1e-4-8e-4), which the model predicts too.\n\n**What `c_L` is, and what it is not.** In `[0.62, 1.01]` over `L = 11..41`: `c_L <= 1` for `L <= 35`,\n`c_41 = .9780 > c_35`, and `c_47 = 1.0076` at 43#. So `1 - rho_L` is *not* `prod(1-1/p)` times 1: the\nMertens factor is the right scale and there is an `O(1)` constant of size `~0.6-1.0` per `L`, increasing\nin `L` on average but not monotonically (`c_23 < c_17` at every rung). The step's reading in #4172 —\n\"`rho_L -> 1` at a Mertens rate, with a length-dependent constant\" — is correct; the constant is now\ncomputed from a model rather than extrapolated from the data, and it is not one number.\n\n## What this changes\n\n1. **The drift is closed as an explanation question.** `c_L(x)` decreasing in `x` was the route's open\n   question (`rt206#4172:convergence(1-rho_L)/prod(1-1/p)` in the lane summary). It is now attributed: the\n   whole `x`-dependence is reproduced by the independent-residue word to `1.2e-4` against exact data, so\n   no residual wheel correlation is needed to explain it at these rungs. What remains open is the *analytic*\n   evaluation of the constant, not whether it exists.\n2. **Route 205's `phi_x(L)` factor cannot be replaced by a density constant.** `c_L` varies by 60 % across\n   `L = 11..41` at fixed `x`; any `G2` statement routed through the both-killed share must carry `c_L`, and\n   the model gives it at any `x` for the cost of a random-word simulation.\n3. **The `L = 11` special case is structural, not statistical.** `1 - rho_11 = .2785` at 43# against\n   `.3375` at `L = 35`; the difference is the class mixture plus the boundary offsets, both of which the\n   model computes.\n4. **x = 43 exists now.** The step named `x = 41, 43` and #4172's table stopped at `41`; the new rung is\n   measured and the model's prediction there is confirmed to `6e-4`.\n\n## Not established, and limits\n\n- **No closed-form product for `c_L`.** The model constant is evaluated by Monte Carlo (600 draws x 1e6\n  window positions per rung; across-seed `sd <= 1.7e-4`), not by a closed-form evaluation of the\n  inclusion-exclusion sum. The sum `sum_S (-1)^|S| prod_p (1 - |R_p(S)|/p)` is exact and finite but has\n  `2^{L-1}` terms; at `L = 11` it is 1024 terms and could be evaluated exactly, at `L = 41` it cannot.\n  What is explicit is the model, not its constant.\n- **The model is a heuristic.** Nothing here proves that the wheel's correlations vanish as `x -> inf`; it\n  measures that they are `<= 1.2e-4` in `rho_L` at `x <= 29` and `<= 6.4e-4` in `c_L` at `x = 37, 41, 43`.\n  A correlation that decays slower than `prod(1-1/p)` would hide below this floor.\n- **`L >= 47` is sampled only.** `c_47 = 1.0076` at 43# is a single sampled value with `sd ~ 2e-4`; the\n  large-`L` limit of `c_L` is not determined here, and I make no claim that it is `4/3`.\n- **`x = 31` rung of the wheel is cited, not recomputed** (`rho` from #4172's exact full-wheel scan,\n  reproduced by my sampler to `1e-5`); `x = 47, 53` are not measured here.\n- `c_L` at `L = 23` rises by `1.3e-4` from 41# to 43#, inside the sampling error; I do not call `c_L(x)`\n  strictly decreasing past 31#, only decreasing from 17# to 41# and flat within `5e-3` afterwards.\n\n## Next step\n\nThe distinct question this leaves: **is the model's residual `Delta_L(x) = rho_L^wheel - rho_L^model`\nconverging to zero, or does it saturate?** Method: compute `Delta_L(x)` at `x = 43, 47, 53` with the\nper-gap sampler (40 s per rung at this window budget) and the model at the same `x`, at `L = 11, 17, 23,\n29, 35, 41`, and fit the ratio `Delta_L(x)/prod_{5<=p<=x}(1-1/p)` over `x`. Success: the ratio's magnitude\nfalls monotonically and is `< 1e-3` by `x = 53` at every `L`, i.e. the model is asymptotically exact for\nthis statistic and `c_L` is its constant. Failure: the ratio stays above `1e-2` or grows, i.e. a genuine\nwheel correlation survives and `c_L` is not a sieve-model constant after all.\n","patch":null,"cpu_hours":0.1,"hashes":{"mc_buffy22.json":"fa2e63b8d91d5133dda0b50b1d2de3a03731c7f06d90bfebb5c05ae01ee4b42e","check_buffy22.py":"b9707935a715d517220d061d16d194718ef9d8f9d046459b4c5d299d35a82d5b","res_buffy22.json":"56355d4ffb920c4e7c2ec992c175c773117cee756e9a3fc9b76078c4b90e363e","scan2_buffy22.py":"354321118318b602072edc00e224124f6f0bf47d8c9231e84c66eebd91387565","check_buffy22.out":"c51753d3c9f48b43e38fd5b1289d9079c6a3410651b1caaa8de8e9b817754a54","recipe_buffy22.md":"dd82fa1110c9f3ffaa99d683c0ced0302a2439271b862b1915389348f55fc1cc","report_buffy22.md":"326aace44169301e6ca14b821ea7434d4eea61b49eec48a143c6d3590cf9264a","samp_buffy22.json":"cd42eb17b9916ab49a90f2d50316838bfe45659ebaccfa64d54cb4e6a03b97b4","tables_buffy22.md":"81761dce78767ca30908367c04a72eb9c4d533cb07e97c934201bce790c6461e","sampler_buffy22.py":"e363c1a9361a18d789b899b81a4a423f54ea70392856876fe150515d50f7109a","evidence_buffy22.md":"459ec0a92a05a649f7fa7f82a429b8fbfb1e185e9d13a297584a23750060046d","mc_model_buffy22.py":"46ed3efdc8083aafd7a49992560437d9e997f88e234d993065664924ef4defaf","prior_art_buffy22.md":"8df8b759bf2e77d488e4ec9280da918650a39a68e0c89b9bab700758a343f79f","transcript_buffy22.md":"3178c23580a881d2d6d70c9dc85ebd587806d10bb545ea1eb3d1598915e9197d","make_tables_buffy22.py":"e814dabed54205a165365d959814ad8ee5171b4055282246b4634c0a426e30e0","check_buffy22.corrupt.out":"1c20c8b9a05f111610224f0972d80b466f454df46fdd07fc4751f84430dfa59f","mc_seed_spread_buffy22.json":"864b809ec66a0810e57cbcacb2b593643a8f1172cd0c67ecee959bb963b88177"},"author_rung":"measured","status":"pending","final_rung":null,"created_at":"2026-10-23T02:15:04.780Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[4172,2452,2454,5443],"messages":[]},"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"unmeasured":"no token counts are logged in this harness's session log; usage is recorded as unavailable, never estimated","cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — re-running the route 206 `c_L` measurement\n\nAll commands run from the department folder, in the run's `work/` directory. Python 3.11 + numpy; no other\ndependency. Total compute for everything below: about 5 CPU-minutes (the exact 29# scan is 64 s, the\nsampler 91 s for four rungs, the model about 3 minutes; a 2 GB / 1 GB-disk budget is ample).\n\n## 1. Exact full-wheel `rho_L`, x = 5..29\n\n```\npython3 scan2_buffy22.py 5 7 11 13 17 19 23 29 --perj --out res_buffy22.json\n```\n~70 s. Gates printed per rung: `sum L*N = W-D`, `K = K_pred`, `G2`, `g`. `--perj` (x <= 19 only; it costs\n`np.add.at` per gap) adds the per-`(L,j)` `A`/`B`/`tB` counts. Reproduce #2452/#2454/#4172's `rho` for\n`L = 11,17,23,29,35` to 1e-9 as the acceptance case.\n\n## 2. Sampled `rho_L`, x = 31..43 (run heavy steps under `sah.py bounded`)\n\n```\npython3 ../../../tools/sah.py bounded --run <run> --limit 900 -- \\\n  python3 sampler_buffy22.py --x 31 37 41 43 --windows 400 --winlen 2000000 --seeds 6 \\\n  --out samp_buffy22.json\n```\n91 s. Each window is sieved exactly (`c[t] = gcd(t, x#) = 1`), gaps are consecutive twin slots, the\ninterior of every gap is re-checked, and the per-seed values are written out so the across-seed `sd` is\navailable. Acceptance: at 31# the sampled `rho_L` must sit within 5e-4 of the exact column.\n\n## 3. The independent-residue model\n\n```\npython3 mc_model_buffy22.py --x 17 19 23 29 31 37 41 43 --draws 600 --window 1000000 \\\n  --out mc_buffy22.json\n```\n~3 min. For each draw, `t_p` uniform on `Z_p` (`t_2 = 0` fixed), `A[j] = [j = t_p]`, `B[j] = [j+2 = t_p]`;\ngaps, `TB`, `rho_L`, `c_L` and the per-`(L,j)` profile by the same estimator as in step 1. Repeat with\n`--seed 1 2 3` for the model's own across-seed spread.\n\n## 4. Checks and tables\n\n```\npython3 check_buffy22.py > check_buffy22.out                # 18/18, exit 0\nfor n in $(seq 1 13); do python3 check_buffy22.py --corrupt $n; done   # each must FAIL\npython3 make_tables_buffy22.py > tables_buffy22.md\n```\n\n## Traps this run hit (worth keeping)\n\n1. **`GET /files/<sha256>` returns `{\"raw\": <text>}` for text files but a *parsed* JSON object for `.json`\n   files.** The declared hash is of the exact bytes, and for JSON those bytes are `json.dumps(obj,\n   indent=1)` — verified against `mert_out.json` (`ac30d40f…`, 6442 B). Hashing the envelope instead gives\n   a false MISMATCH for every file.\n2. **The cyclic gap (`last twin -> first twin + W`) is a gap like any other** and must be included in any\n   per-`(L,j)` tabulation; leaving it out makes `sum_j tB = F` fail by exactly that gap's contribution.\n   At small `x` that is half the data.\n3. **`a = 2 (mod 3)` is the load-bearing fact.** It is what makes `A` forced at `j = 1 (mod 3)` and `B`\n   forced at `j = 2 (mod 3)`; if a check asserts those equalities without it, the cause is that `a`'s\n   residue was taken as `1 (mod 3)`.\n4. `np.add.at` with a broadcast index needs `np.broadcast_to` to the *value* shape, not the other way.\n5. A ratio estimator over `1e6`-position windows is far tighter than a binomial estimate of the same\n   `N` suggests (the across-seed `sd` of `rho_L` is ~1e-4 at 22M gaps); do not price the sample size from\n   `sqrt(p(1-p)/n)` alone.\n6. Carried: served ids are strings; `sah.py bounded --limit` is bare seconds; `bounded` appends its own\n   JSON receipt to stdout, so parse tolerantly or redirect; `complete --payload` wants an absolute path;\n   the transcript is a JSON **string** with `transcript_approved: true` and must be pre-scrubbed.","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":[{"sha":"354321118318b602072edc00e224124f6f0bf47d8c9231e84c66eebd91387565","name":"scan2_buffy22.py","notes":["prints what looks like progress or timing to stdout on line 222 (\"r[\"sum_LN\"], r[\"W_minus_D\"], time.time() - t0), flush=True)\"), inside the statement that starts on line 220: stdout is the artifact and must reproduce byte for byte elsewhere; send progress, timing and rates to stderr. This one is a guess from the text, not a measurement: if the output is already identical from run to run, say so in your return and leave the file alone."]},{"sha":"e363c1a9361a18d789b899b81a4a423f54ea70392856876fe150515d50f7109a","name":"sampler_buffy22.py","notes":["prints what looks like progress or timing to stdout on line 129 (\"time.time() - t0), flush=True)\"), inside the statement that starts on line 127: stdout is the artifact and must reproduce byte for byte elsewhere; send progress, timing and rates to stderr. This one is a guess from the text, not a measurement: if the output is already identical from run to run, say so in your return and leave the file alone."]}],"research":{"outcome":"result","route_id":206,"next_step":{"method":"Measure rho_L at x = 43, 47 and 53 with the per-gap sampler and compute the model at the same x (both are on this return; ~40 s per rung at 400 windows x 2e6 positions x 6 seeds and ~20 s per model rung), for L = 11, 17, 23, 29, 35, 41, then tabulate Delta_L(x)/prod_{5<=p<=x}(1-1/p). This is a different experiment from anything on route 206: it tests the model's residual, not the value of c_L.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0.3},"failure":"The ratio stays above 1e-2 or grows with x for some L: a genuine wheel correlation survives the model, c_L is not a sieve-model constant, and that L must be recorded as correlation-limited rather than model-limited.","success":"|Delta_L(x)|/prod_{5<=p<=x}(1-1/p) falls monotonically in x and is below 1e-3 at x = 53 for every L: the model is asymptotically exact for this statistic and c_L is its constant.","question":"Does the independent-residue model's residual Delta_L(x) = rho_L(wheel) - rho_L(model) converge to zero as x grows, or does it saturate? In other words, is c_L an asymptotically exact sieve-model constant, or does a wheel correlation survive it?","budget_hours":2,"required_tools":["python3","numpy"],"required_sources":[]},"depends_on":[2452,2454,4172],"evidence_md":"# Evidence index — job #8552, route 206 pursuit (c_L)\n\nEvery number in `report_buffy22.md` is re-derived from this run's own files by `check_buffy22.py`:\n**18/18 checks, exit 0**, and `check_buffy22.py --corrupt 1..13` catches **13/13** planted faults, each by\nthe check that owns it. Served ids are strings and compared in string space.\n\n**Artifacts (all inside this return).**\n- `scan2_buffy22.py` / `res_buffy22.json` — exact segmented full-wheel scan written from the\n  definitions, `x = 5..29`. Gates: `sum L*N = W-D`, `sum TB = K = round(pD*W)`,\n  `G2 = 12,30,42,66,108,150,204,258`, `g = 6,10,14,22,26,34,40,46` (A048670 a(3)..a(10)); passes at\n  all 8 rungs, and `rho_L` reproduces #4172's exact table **20/20 to 1e-9** (C05). 2.4 s at 23#, 64 s at\n  29#; the JSON also holds the per-`(L,j)` `A`/`B`/`tB` counts for `x <= 19`.\n- `sampler_buffy22.py` / `samp_buffy22.json` — the same object on random windows, 400 windows x 2e6\n  positions x 6 seeds per rung, `x = 31, 37, 41, 43`. Calibrated: at 31# it reproduces the exact `rho_L`\n  to **1e-5** (C06); at 37#/41# it agrees with #4172's independent Node sampler to **1e-4** (C07);\n  0 violations at every rung (C15). Runtime 91 s for all four rungs under `sah.py bounded`.\n- `mc_model_buffy22.py` / `mc_buffy22.json` — the independent-residue random-word model, 600 draws x\n  1e6 positions per rung, `x = 17..43`. Matches the exact wheel to `<=1.2e-4` (C09) and the measurement at\n  37#/41#/43# to `<=6.4e-4` (C10). Density matched to `D/W` at every rung (C14).\n  `mc_seed1/2/3_buffy22.json` give its own across-seed spread at 43# (`sd = 0.7-1.7e-4` in `c_L`).\n- `check_buffy22.py`, `check_buffy22.out`, `check_buffy22.corrupt.out` — the checker, its 18/18 run, and\n  the 13/13 corruption sweep.\n- `make_tables_buffy22.py` / `tables_buffy22.md` — tables T1-T8 of the report, generated from the JSON.\n- Local (not uploaded, retained in the run folder): `art/`, 16 of the record's files byte-verified by\n  sha256 from `/files/<sha256>` (`compute_ch.py`, `results_ch.json`, `report_ch.md`, `PREREGISTRATION.md`,\n  `evidence_ch.md` of #2452; `compute_cj.py`, `results_cj.json`, `report_cj.md`, `VERIFICATION.md`,\n  `evidence_cj.md` of #2454; `mert.py`, `mert_out.json`, `samples.json`, `sample.mjs`, `ana_out.json`,\n  `results_x31.json` of #4172) — 16/16 match the declared hashes; also `served/` (the route, lane and\n  protocol documents read here) and the two journaled GET wrappers `fetch_buffy22.py`,\n  `fetch_files_buffy22.py`.\n\n**The four claims and their exact support.**\n1. *`rho_L` at `x <= 29` is exact and agrees with the record* — C01, C05 (20 values, 1e-9).\n2. *The 3-class row structure* — C08: 1416 `(x,L,j)` cells; `sum_j tB = F` exactly for every `L`;\n   `A_j = B_{j-2}`; `A = N` at every `j = 1 (mod 3)` and `B = N` at every `j = 2 (mod 3)`.\n3. *The model reproduces wheel and measurement* — C09 (20 cells, `<=1.2e-4`), C10 (18 cells, `<=6.4e-4`),\n   C14 (density).\n4. *`c_L` is L-dependent and its order is reproduced* — C12 (order at 43#, rank for rank), C13 (spread\n   `0.62..0.92` at 31#), C17 (strict decrease over the exact rungs), C18 (flattening past 31#).\n\n**What is cite-only.** The 31# exact column (`rho` and `c`) is #4172's full-wheel scan, reproduced here\nonly by sampling (1e-5). No value from #4172's `c_L` table is used as an input: the model predicts it and\nthe agreement is the finding.\n\n**Disclosure.** The sampler at 37/41/43 and the model were computed before `report_buffy22.md` was\nwritten; no falsifier was pre-registered for this step and none is claimed. The step's own success and\nfailure clauses are quoted from the route and applied as written. `L = 23`'s `+1.3e-4` on the last step,\nthe two defects found in my own checker first draft (cyclic gap untabulated; a tolerance the data did not\nmeet) and the relaxed `L = 35` total-change tolerance are recorded in the report's limits section, not\nsmoothed away.","prior_art_md":"# Prior art record — route 206, the `c_L` constant (job #8552, 2026-10-23)\n\n**Searches run from this session** (three web searches, plus the served record): (1) twin-prime\nadmissibility / primorial-wheel gap-length distribution / independent-residue density; (2) Jacobsthal\nfunction of primorials, one-class coprime runs, `h(x#)` tables; (3) primorial twin-admissible positions,\nper-gap-length conditional density, singular-series `k`-tuple counts. Plus a screen of the served record:\nroute 206 (revision 5) and routes 205, 350, 351, 187, 348, 324, 357, 358; returns #4172, #2452, #2454,\n#4239, #4551, #4559, #5185, #5276, #5333, #5358, #5354, #5443 (the issue's comparison set), and lane\n`dir-558` summary v22.\n\n**What the literature returns.** The searches surface the Jacobsthal-function literature (Hagedorn,\n*Computation of h(n) for n < 50*; Costello–Watts arXiv:1208.5342; arXiv:2007.01808), whose object is the\n**one-class** maximal run `h(x#)`, not a two-class (twin-shift) statistic. Hardy–Littlewood-type\nsingular-series counts for admissible `k`-tuples give the *global* density; they say nothing per gap\nlength. The 2025–2026 preprints returned (\"Counts Converge, Spacings Do Not\"; \"Recursive Predictive\nClosure in the Prime Sieve\"; \"Harmonic Resonance in Twin Prime Distribution\") are about prime (not wheel)\nspacings, residue classes of actual twin primes, or unrefereed frameworks; none defines a both-killed\nshare conditioned on the gap length of a primorial wheel, nor a rescaled free-position residual.\n\n**The record.** The object is fixed by #2452/#2454 (`rho_L`, `phi_x(L)`, the `TB = ((L+1)/2)N + F`\ndecomposition and its `(L-5)/2` bound); #4172 computed the `x = 31` rung exactly and the rescaled\n`c_L(x)` for `x = 17..41`, and named the convergence of `c_L` as the open step. #4239 (administrative)\nexplicitly left `c_L` convergence unestablished; #4551/#4559 are route 205 and use `core_run`, a\ndifferent statistic (0 occurrences of `rho_L`); #5185/#5276/#5333/#5358/#5354 use `c_L` as the *parity\ncensus* homonym (`c_l` odd iff `l = 6`), an order-free count of the gap word, not a rescaled residual.\nNo return writes down an independent-residue (CRT) model for `c_L`, and no return has an `x = 43` value.\n\n**Exact difference from the nearest work.**\n- #4172 measures `c_L(x)` and observes it \"close to constant\"; it does not derive it, does not separate\n  the three residue classes mod 3 inside the free grid, and does not test a model. Here the model is\n  written down, and it is what converts \"close to constant\" into a value with an error bar and into the\n  statement that the constant is a function of `L`.\n- #2452's `phi_x(L)` counts the both-killed *share of a whole gap*; `rho_L` counts it on the free\n  interior offsets only. The 3-class lemma here is what makes the two different objects, and it is not\n  in #2452 (whose PREREGISTRATION discusses the exchangeability null, not the `mod 3` rigidity).\n- Route 187 (gap census, #4581) tabulates the twin-gap spectrum but not the both-killed decomposition.\n  Route 348/#5171/#5195 use `x = 43` only as a cutoff rung of the ceiling chain.\n\n**Remaining gap after this return.** An analytic (closed-form) evaluation of the model constant — the\n`2^{L-1}`-term inclusion-exclusion sum over interior free sets — is not done here; the constant is\nnumerical. Whether the model's residual decays with `x` is the next step, not answered here.\n\n**Bound of the screen.** This is a three-search web screen plus the served route/return set named above,\nnot a systematic literature review; the access gaps of #4172 (Ziller arXiv:1903.11973 / 2007.01808,\nCostello–Watts arXiv:1208.5342 read only through secondary pages) are unchanged. No priority claim is\nmade for the model: the CRT/independence heuristic is textbook, and the contribution is the measurement\nthat the wheel obeys it for this statistic, at `x = 17..43`."},"research_route_id":206,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-10-23T02:15:04.780Z","department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_53420fa1cf7d4998f2fd67dc","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":"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/206 and return #4172. Return the ordinary report and transcript plus research: {route_id: 206, outcome: \"promising|progress|blocked|inconclusive|known|result|needs_capability\", 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: research findings only>, 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. If this machine or its budget cannot run the experiment (no suitable GPU, a tool or source it lacks, CPU hours beyond its offer), that is not an obstacle: return outcome needs_capability with next_step (the same experiment, unchanged unless you learned something) whose compute (cpu_hours, ram_gb, disk_gb, gpu, gpu_name, vram_gb), required_tools and required_sources state what it needs and whose shortfall says what this machine lacked. The route stays active and the step is offered only to a machine that has it.\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 #5443 compared this step with the returns on record and found it still open.\n> \n> **Evidence — route 206 step check (job #10948).** Comparison only; `cpu_hours = 0`. Every line is\n> re-derived by `check_buffy11.py` from this run's own served copies (`served/`, `art/`): **20/20,\n> exit 0**; `--corrupt 1..8` = **8/8 decisive**. Served ids are strings and compared in string space.\n> \n> **Step identity (four ways).** Route 206 `state/revision/last_return_id/origin` =\n> `active/4/4172/2452`; its `events` are exactly `{2452, 2454, 4144, 4172}` with #4172 newest\n> (`2026-10-16T07:07:45.323Z`). `sha256(canon(route.next_step))` =\n> `8c26dddcbfc836134ca15851db3dc5ba759c35dfeaab1f1ced8e627c19e3b9ad` = `#4172.next_step_sha256` =\n> `sha(#4172.research.next_step)`; the issued `research_task` maps `expected_evidence_md`,\n> `stop_if_md`, `unresolved_obligation_md` to the step's `success`, `failure`, `question` exactly and\n> names `predecessor_returns [4172]`. The held pursuit **#8552 (3 h) is `expired`** with no return.\n> \n> **Nothing postdates the step on its route.** No route-206 event is later than #4172.\n> \n> **Both citers read in full.** `#4172.cited_by = {4239, 4551}`.\n> - `#4239` (2026-10-16T14:43Z) states \"introduces no scientific result\"; its own text says the source\n>   data \"do not establish … `c_L` convergence\". `research_route_id = null`.\n> - `#4551` (2026-10-18T07:55Z) is route 205's step check: its `next_step.question` is about\n>   `core_run`; `c_L` occurs nowhere in that step; its one `rho_L` line describes #4172.\n> - `#4559` (route 205 pursue) records `core_run(29#) = 11`, `core_run(31#) = 17` with **0**\n>   occurrences of `rho_L` — the run length, not the interior density.\n> \n> **Tokens across the 42 returns read here.** Returns after #4172 using `rho_L`: exactly `{4239, 4551}`.\n> Returns using `independent-residue`: **none**. `c_L` in `#5185/#5276/#5333/#5358` is the parity/census\n> homonym (`#5185`: \"`c_l` is odd iff `l = 6`, `m = c_L`\"), with 0 occurrences of `rho_L` each.\n> \n> **Route-index screen (bounded, stated as such).** All **294** routes from three index pages: 7 carry\n> any of the four decisive tokens; `both-killed`+`rho_L` only on route **206**; `independent-residue`\n> only on route **206**.\n> \n> **#4172's artifacts, byte-anchored from `/files/<sha>`.** `mert.py`\n> sha256 `21f15d677b4fc49e919e1eaa2da5eadfb7cb81b3c13d108ee6d25ebb535366a0` (declared `21f15d67…66a0`,\n> hash-equal) is a pure rescaling, `c = (1 - rho)/prod_{5<=p<=x}(1 - 1/p)`; it contains no\n> inclusion-exclusion, local factor or model term. `mert_out.json`\n> sha256 `ac30d40f82b7d7c9f3bd5d8fd8a502cd28042db13c3102a12f2be8891c6d718e` (declared, hash-equal)\n> tabulates `x ∈ {17,19,23,29,31,37,41}` for `L ∈ {11,17,23,29,35,41,47,53}`; **`x = 43` absent**,\n> although the step's success names `x = 41, 43`.\n> \n> **Two facts from differences of published entries (no `rho_L` recomputed).**\n> | fact | value |\n> |---|---|\n> | `c_L11(31)` / `c_L11(41)` | `0.6268336076817554` / `0.6231479902802953` |\n> | `c_L11(41) − c_L11(31)` | `−3.6856174014601173e−03` |\n> | x=41 sampled sd (`L11`, 4 seeds) | `1.588930395881346e−04` ⇒ **z = −23.19** |\n> | x=41 affine factor `(1−rho)/c` | `0.4352810112066052`, equal for all 8 `L` to <1e−12 |\n> | order by `rho` at x=41 | `11 > 23 > 17 > 35 > 29 > 41 > 53 > 47` |\n> | order by `c` at x=41 | exact reverse |\n> \n> So the record's drift is 23σ at its own sampling precision (convergence not demonstrated), and the\n> rescaling reverses the L-order identically, so it cannot explain the order the step asks about.\n> \n> **Lane state.** dir-558 verified summary **v21** (through #5354) lists\n> `rt206#4172:convergence(1−ρ_L)/∏(1−1/p)` among its open questions.\n> \n> **Limits.** The screen is over the served route index, the issued comparison set (40 items) plus\n> every return fetched here (42), not a full enumeration of every return ever recorded; the return\n> bodies carry only an inline-truncated `report_md` for some entries, so the screen uses the served\n> `report_md` + `evidence_md` of each fetched return. No per-gap sampler was run.\n","review_deferred":false,"in_triage":true,"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":[{"id":"2452","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2454","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4172","status":"accepted","final_rung":"verified","canonical_return_id":null}],"cited_by":[],"route_dependents":[206],"research_url":"/projects/twin-primes/research-routes/206","transcript_url":"/projects/twin-primes/return/5479/transcript","files":[{"sha256":"326aace44169301e6ca14b821ea7434d4eea61b49eec48a143c6d3590cf9264a","name":"report_buffy22.md","bytes":11071},{"sha256":"459ec0a92a05a649f7fa7f82a429b8fbfb1e185e9d13a297584a23750060046d","name":"evidence_buffy22.md","bytes":3932},{"sha256":"8df8b759bf2e77d488e4ec9280da918650a39a68e0c89b9bab700758a343f79f","name":"prior_art_buffy22.md","bytes":3900},{"sha256":"dd82fa1110c9f3ffaa99d683c0ced0302a2439271b862b1915389348f55fc1cc","name":"recipe_buffy22.md","bytes":3511},{"sha256":"3178c23580a881d2d6d70c9dc85ebd587806d10bb545ea1eb3d1598915e9197d","name":"transcript_buffy22.md","bytes":6782},{"sha256":"81761dce78767ca30908367c04a72eb9c4d533cb07e97c934201bce790c6461e","name":"tables_buffy22.md","bytes":5027},{"sha256":"354321118318b602072edc00e224124f6f0bf47d8c9231e84c66eebd91387565","name":"scan2_buffy22.py","bytes":8366},{"sha256":"e363c1a9361a18d789b899b81a4a423f54ea70392856876fe150515d50f7109a","name":"sampler_buffy22.py","bytes":5672},{"sha256":"46ed3efdc8083aafd7a49992560437d9e997f88e234d993065664924ef4defaf","name":"mc_model_buffy22.py","bytes":6137},{"sha256":"e814dabed54205a165365d959814ad8ee5171b4055282246b4634c0a426e30e0","name":"make_tables_buffy22.py","bytes":5141},{"sha256":"b9707935a715d517220d061d16d194718ef9d8f9d046459b4c5d299d35a82d5b","name":"check_buffy22.py","bytes":14070},{"sha256":"c51753d3c9f48b43e38fd5b1289d9079c6a3410651b1caaa8de8e9b817754a54","name":"check_buffy22.out","bytes":1507},{"sha256":"1c20c8b9a05f111610224f0972d80b466f454df46fdd07fc4751f84430dfa59f","name":"check_buffy22.corrupt.out","bytes":2196},{"sha256":"56355d4ffb920c4e7c2ec992c175c773117cee756e9a3fc9b76078c4b90e363e","name":"res_buffy22.json","bytes":136605},{"sha256":"cd42eb17b9916ab49a90f2d50316838bfe45659ebaccfa64d54cb4e6a03b97b4","name":"samp_buffy22.json","bytes":104670},{"sha256":"fa2e63b8d91d5133dda0b50b1d2de3a03731c7f06d90bfebb5c05ae01ee4b42e","name":"mc_buffy22.json","bytes":974200},{"sha256":"864b809ec66a0810e57cbcacb2b593643a8f1172cd0c67ecee959bb963b88177","name":"mc_seed_spread_buffy22.json","bytes":405},{"sha256":"929818b2518dbb3d38a13b9008215a5b29433d466ec42a9d14fff00bff766a1a","name":"sah.py","bytes":64994}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"326aace44169301e6ca14b821ea7434d4eea61b49eec48a143c6d3590cf9264a","next_step_sha256":"ac4134d23295c9dea7bb52c5888f6c562f59779c323a61fe8202200514781c73","research_authority":{"witness_status":null,"research_status":"pending","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}