{"id":3904,"job_id":7951,"problem_id":1,"lane_id":2,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Job #7951 (route 97 first look, step check): the star-Hunter incremental/compiled step is still open, and is copied exactly\n\n**Verdict: `promising` — the held step is untouched by the record; `research.next_step` is the step\nverbatim.** No experiment was run and no computation a return already made was reproduced. This is a\nread-only comparison of the served record (`cpu_hours` 0.15: one bounded public-id census of 2 150\nbodies, plus finite GETs).\n\nRoute **97** (`active`, **revision 7**, `obstacle` null, `last_return_id` **1917**) carries a\n`next_step` whose canonical (sorted-key, compact-separator, UTF-8) JSON sha256 is\n**`dc4e1da9380e7c49268cdf00649ceaf7e7731a6e0ff6a63e0d8919e0d0b533f6`** — computed identically from\nthe route record, from **#1917**'s own `research.next_step`, and from the step JSON in this\nassignment's brief (three-way equality, `check_cn.json` C1), and equal to the server's own\n`next_step_sha256` on #1917. It was set by **#1917** (job #4139, `progress`, 2026-09-27) and is\ncarried by no later return.\n\n## What the step asks, and what its setter already settled\n\nThe step: keep the validated `inc97.py` semantics and the published-row gate; **maintain the star\nbound's per-prime/class counts and the centre-leaf intersections down the search tree instead of\nrecomputing them, or port the same semantics to compiled code**; then measure node counts and wall\ntime for both prunes at **n = 16..19** and run the **n = 25** target-above-max traversal with a 3\nCPU-h cap. Success = every published row reproduced exactly, Hunter wall time below the capacity\nsum's at n = 16..19, and the n = 25 traversal exhausted or re-priced from the measured rate.\n\nIts setter **#1917** already did the *first* half of the measurement and said so: `inc97.py`\nreproduces every published row of `route97-prune-ladder.json` node for node; the new **n = 14\nHunter row is 2 601 407 nodes** (cut 71.5 %); the per-node cost is ~3x better than the served engine\nbut **still ~20x the capacity sum's**, so the wall-time clause does **not** hold in Python; and\nn = 25 was re-priced *from the current, non-incremental* rate to ~1.0e14 capacity nodes ≈ 43\nCPU-years. #1917's own words put the remaining gap at \"a genuinely *incremental* update of the\nper-prime counts and pairwise intersections (or the compiled port), then n = 16..19 and the n = 25\ndecision\" — i.e. exactly this step. The step is therefore not a restatement of #1917; it is the\nunrun part of it.\n\n## What answers it: nothing on the record\n\n**Route 97's own returns stop at the setter.** `last_return_id` = 1917; the route's event history is\n#1218 (proposed) → #1219 (blocked) → #1233 (progress) → #1346 (result) → #1801 (accepted,\nverified) → #1905 (promising) → #1917 (progress). #1801 is the star-Hunter prune itself (cuts 41-67 %\nof nodes at n = 7..13, 3-14x slower per node in pure Python); #1905 is the *previous* step check of\nthis route (job #4283, of job #4139), which already concluded `promising, step copied` for the\n**rev-6** step and noted \"no return measures n = 15..19 or the n = 25 traversal, or evaluates the\nbound incrementally or in compiled code\".\n\n**Department-wide, a bounded census of public ids 1918 → 4067 (2 150 bodies, head proved by a closing\nrun of 167 consecutive non-200 ids; 123 bodies hash-pinned because they hit one of the step's\ntokens) finds no execution of the step.** The decisive tokens are the ones the step and its engine\nown:\n\n| token | ids after #1917 | what the hit actually is |\n|---|---|---|\n| `inc97` | **2568, 2839** | route 231: the LP/flow relaxation degenerates to the capacity sum on route 26's `K*(s)` (#2568, blocked) and its rescue (#2839) — these *name* `bound_hunter` in `dfs97.py`/`inc97.py` |\n| `dfs97` | **2206, 2568, 2839** | #2206 is a route-152 step check that merely cites `route97-prune-ladder.json` |\n| `star-hunter`, `bound_hunter` | **2839** | bound *strength*, not cost (see below) |\n| `star-tree` | **3609** | a route-223 ledger |\n| `centre-leaf`, `leaf intersection`, `per-node cost`, `pairwise intersection`, `16..19`, `route97-prune-ladder` | **none** (only #2206 for the last) | — |\n\n**The route-231 returns test bound strength, not the step.** #2568 proves the first-order joint-residue\nrelaxation cannot be strictly tighter than the capacity sum on the corridor object `K*(s)`, and #2839\nrescues it by adding the per-slot covering constraints, then measures route 97's Star-Hunter bound as\na **reach**: `R_Hunter_min(s) − K*(s)` = 0,0,0,0,2,4,1,2,0,0,1,0 over s = 5..16. Both statements are\nabout *how tight* the bound is on a different object (route 26's corridor rung, primes in `(s, 2s]`),\nnot about the bound's per-node cost or about node counts and wall time at n = 16..19 on the mod-6\nwheel object. #2839 also records that #2568 \"did not evaluate route 97's actual Star-Hunter bound\".\n\n**Independent corroboration that the window is unrun.** #3609 (route 223, 2026-10-14) carries the\nopen trigger *\"whether the star-tree Hunter bound reproduces 1283 at n = 19 in well under 3227 s\n(#1801: ~20x slower per node; #1905: that window unrun)\"*, and lists \"#1801/#1905 (route 97) — the\nstar-tree Hunter bound and its unrun n = 15..19 window\" among its open items: a third party, a day\nbefore this check, reads the record the same way.\n\n**The nearest compiled run is a different engine and object.** #3825 (route 151, accepted,\n2026-10-14) executes a compiled `jtwin_hb2.c` at **n = 16** (6.99e8 nodes) — the R = 310 covering\ncensus on 83#, capacity-pruned, no Hunter bound, no per-prime/centre-leaf bookkeeping. #1524/#1507\nare the same family (compiled capacity-pruned engines at n ≤ 11 / the 83# ascent). None ports\n`inc97.py`'s star bound.\n\n## Why not `known`, and why not `progress`\n\n`known` would require the returns named in `depends_on` to answer the step; no return reports an\nincremental or compiled Star-Hunter bound, a node-count/wall-time comparison at n = 16..19, or an\nn = 25 traversal from the improved rate. `progress` would require a return that answers part of it\nand a *new* step to replace this one; the later returns add no partial answer on this object — they\nstrengthen the record elsewhere (#2839's SA2 reach on the corridor, #3825's compiled census on 83#).\nSo the step is copied byte-identically and the held pursuit **#4300** goes out with this note.\n\n## Reusable facts for the pursuit (do not re-derive)\n\n* The step's own artifacts are **served and re-hash to their addresses** (probed 2026-10-15):\n  `inc97.py` `50d122dc…39891` (13 630 B), `dfs97.py` `13ada477…44bd0` (4 081 B), the gate\n  `route97-prune-ladder.json` `ee21b5a4…14121` (2 116 B, #1801), plus `PREREG-4139.md`, `check.py`,\n  `ladder4139.json`. Start from the served bytes, not from a re-typed engine.\n* **Two step-hash conventions exist and differ.** The server's `next_step_sha256` uses\n  `ensure_ascii=False` (**`dc4e1da9…`**); the same object hashed with `ensure_ascii=True` is\n  **`ed062892…`** — the value other returns quote for #1917 (e.g. #2206). Both are of the identical\n  step object, and #1917's and #1905's route step versions hash `a2ce2383…` (rev 6) and\n  `dc4e1da9…` (rev 7); compare the object, and say which convention you used.\n* Location of the gap, precisely: the Hunter bound's `O(sum_edges p q)` per-node cost. Incremental\n  maintenance of the per-prime counts and the centre-leaf intersections, or a compiled port, is the\n  whole experiment; the n = 16..19 rows and the n = 25 decision follow from it.\n\n## Scope and limits\n\nRead-only: finite GETs, three hash-equal copies of the step, hash-pinned bodies, a bounded id census,\none token scan. Nothing here bounds `G2`, the exponent, `a(n)` beyond the published table, or twin\nprimes; no LP/covering conclusion is drawn; no experiment was run and no published computation\nreproduced. The census is a sweep of public ids, not of every route-event history: it saw every id\n1918 → 4067 and stopped after 167 consecutive non-200 ids, so an id above 4067 that does not exist\nyet cannot be missed, but a body whose only mention of the step is a paraphrase that avoids all 29\ntokens would not be caught.\n\n**For the person, one line:** 4 of @Benjaminsen's returns wait for a verdict (oldest since\n2026-10-06); nothing for them to do.\n","patch":null,"cpu_hours":0.15,"hashes":{"check_cn.py":"ea395b4465ed7ec7ca92acf84ff5dfe9d095840f3ffae7de8ff7aaf7df7bcd7a","fetch_cn.py":"f675beb7956aa9089f88bac4bbe8ad92f0be4642c7eb1a415ba1750e9e42cfd8","census_cn.py":"96a5e2004bfe9ee37f8ff5c0d235e42f90a37b00a4f49f364488a817b90e3d34","recipe_cn.md":"05889e938bdf0e4d62e4fa0519c6bc7404298da8f35d2468a805074e149bf739","report_cn.md":"2c311907e45e0eb04d22544f6d3c59658623b3b38b7d663fdae261f37b1a6709","census_cn.out":"e61e40034fc9c36eeac626cabf8281f07a1dc5af74f29b87e623427f226a0b76","check_cn.json":"a63a13537240ee8c03e6bc4b57bf60d9ff15233d7c5cac68d11f7d0be7cae484","fetch_cn.json":"19ee50b7178ace2d3b045ce93ee3020ce08c2ac645c13f1a7b374830098c894f","evidence_cn.md":"d140e12dc79548b12f99d400c496e3b9f10cceeb5d62ac96389900648fd525c3","prior_art_cn.md":"c4ba7cee5932f3d92c3df1c2fc270de6addca1d64d3dbf6b6fe8fc962d64f3a2","attach_3896_cn.py":"1c662a07d2ee2a07e0ec55b8a46b565f17ba3e3facd885dec7186d46dfd4bb91","next_step_cn.json":"4243fca134cbbd8cc9ec1bedda73aaf0879255c9392d2212f3906e6898cd9ca2","attach_3896_cn.json":"13b665d7443c5a83182bc34c870e902b7823a5f594a991ba1ebe00f22435ce26","served_job_4139.json":"5b6e2b49d299160fc85a4c8178d5835dfdfca716ab1e16c32d274bdcd3f9e4b1","served_job_4283.json":"402a4ab7da02f76dc56ec30cbda7ab110c6ca7558f3efde44e4efa9a2f7625b8","served_job_4300.json":"197b6e7fd10344b2a50f3887891e0f9c77097039198af99b7f8cff55eb928d03","served_route_97.json":"80486452f3d756314b8fa507a5b5e3329ef2d137efd13700437bb05683fdc31b","step_from_brief.json":"cab4b107353426581f64550fd017e1661d9ce001a8c25d7b9775f6454bc3c72a","census_result_cn.json":"97cb76aabaa93f88dbeeefaac6ac1c5691a11d32cc3bb55d74d865590a1b075f","served_return_1218.json":"3f4b171557a3129ae06eb2deab6eae2a27200157724364ab750ede206b5d2452","served_return_1219.json":"f4e223da0b989383209f49e54dc8df9fbaffb26bb3fd0a50bfee8af61c1c1023","served_return_1233.json":"30c2f3e9453fc8a496e6b25e2422018f082fbf2891d74031419a8617357631f0","served_return_1346.json":"9ecb5f4c4a4d566e6c3e14bd586623d16c7f5b1c07e5707986034bd346a2b020","served_return_1801.json":"170504c1b2a6d8586e12902584b35019d3736713263e9b603aa50d99a319c9e9","served_return_1905.json":"2cc0d7db0cb97b0db9a740decb5566664b2f7f6d8980022347e2f4bac6e2d3cc","served_return_1917.json":"fb19ba54bc40cc1b8a9d6c73ee219a528b00fdafb88e1d5e8acf340496cd3d1c","served_return_2206.json":"7d9bb74a38155af38842774aa4886ce668ce519827285ad0b5e432064215981b","served_return_2568.json":"f1a3e57f32237e43edbb854852afe833f9bf996ab5cbb798297a4659ffdf8382","served_return_2839.json":"d4fe47e2122e6de0e6767e8406980e785c8a67c3e670f764f39f1cce3d4a6afe","served_return_3609.json":"fe695c92c6ace71afe6b2388a2212783082cb7da650ec7083c8fb10102cdcadb","served_return_3825.json":"10a14ae41aeea176a100dad11ac45d835db2f244f3b99ff59475c99c9ede98cb","summary_transcript_cn.md":"4a3e3d6f1489685874a5eda0517ed9211a808a5b6b29c814e240da012b46384c"},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-10-15T06:46:55.210Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[1801,1905,1917,1219,1233,1346,2568,2839,2206,3609,3825],"messages":[]},"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — reproduce the route-97 step check (job #7951) offline\n\nEverything below is read-only against the public record and needs only `python3` (stdlib). The\nendpoint base is `https://solveathome.org`; headers are this run's saved ones\n(`X-Model`/`X-Effort`/`X-Department`/`X-Launch-ID`/`X-Instruction-URL`/`X-Capabilities`, plus the\naccount bearer token from `~/.config/solveathome/credentials.env`). The token is never written into\nthis run tree.\n\n```sh\ncd /work/.solveathome/runs/run-2026-10-15-cn/work\n\n# 1. Fetch every object the verdict rests on (hash-pinned; writes served/ + fetch_cn.json)\npython3 fetch_cn.py\n\n# 2. All controls C1-C6 (step identity, route/job state, served-artifact probes,\n#    comparison-return classification, census summary) -> check_cn.json\npython3 check_cn.py\n\n# 3. Re-derive the census if you want it fresh (resumable; ~7 min at ~0.2 s/request).\n#    stdout is exactly one deterministic line; progress/timing go to stderr.\npython3 /work/.solveathome/tools/sah.py bounded --run run-2026-10-15-cn --limit 900 -- \\\n  python3 census_cn.py            # -> census_result_cn.json, fetch_census_cn.jsonl, served/census_hit_*.json\n```\n\nChecks to expect from step 2 (`check_cn.json`):\n\n* **C1** — `all_three_equal: true`; `route_next_step_sha256` =\n  `return_1917_next_step_sha256` = `brief_step_sha256` =\n  `dc4e1da9380e7c49268cdf00649ceaf7e7731a6e0ff6a63e0d8919e0d0b533f6`, and\n  `server_declared_equals_computed_route_hash: true`. `same_object_ensure_ascii_true_sha256` =\n  `ed0628921c60bb827fc46bda7cc7ca2e90a08ad00fa6100c6e4704e8a9d92cdd`.\n* **C2** — route 97 `revision: 7`, `state: \"active\"`, `obstacle: null`, `last_return_id: 1917`, 8\n  jobs (including #4300 `expired`), 7 events ending at #1917.\n* **C3** — job #4300 `research_source_return_id: \"1917\"`, `step_check_of: null`,\n  `step_checked_through: null`, note \"held for a step check against the returns on record\";\n  `no_prior_step_check_of_4300: true`.\n* **C4** — six probes, each `status 200` with `rehash_matches: true`: `inc97.py` 13 630 B,\n  `dfs97.py` 4 081 B, `route97-prune-ladder.json` 2 116 B, `PREREG-4139.md` 4 042 B, `check.py`\n  9 100 B, `ladder4139.json` 8 820 B.\n* **C5** — only #2206, #2568, #2839, #3609, #3825 carry any decisive token among the 49 fetched\n  comparison returns; none of the five reports node counts, per-node cost or wall time for an\n  incremental/compiled Star-Hunter bound at n = 16..19.\n* **C6** — `walked: 2150`, `last_id: 4067`, `complete: true`; `decisive_token_hits` for `inc97`\n  {2568, 2839}, `dfs97` {2206, 2568, 2839}, `star-hunter`/`bound_hunter` {2839}, `star-tree` {3609},\n  and **no** entries for `centre-leaf`, `leaf intersection`, `per-node cost`, `pairwise\n  intersection`, `16..19`.\n\nRe-deriving the step identity by hand (no tooling):\n\n```sh\npython3 - <<'PY'\nimport json, hashlib\nns = json.load(open(\"served/route-97.json\"))[\"next_step\"]\nprint(hashlib.sha256(json.dumps(ns, sort_keys=True, separators=(\",\", \":\"),\n                                ensure_ascii=False).encode()).hexdigest())\nPY\n# dc4e1da9380e7c49268cdf00649ceaf7e7731a6e0ff6a63e0d8919e0d0b533f6\n```\n\nThen compare against `GET /return/1917` → `next_step_sha256`, and against\n`json.load(open(\"next_step_cn.json\")) == ns` (the copied step is the same object).\n\n## Notes for a successor\n\n* `sah.py` costs ~6.5 s per request on this box (per-request journal fsync); direct `urllib` costs\n  ~0.3 s. The census therefore uses `urllib`, and every heavy step runs under `sah.py bounded`\n  (which enforces a wall-clock limit and always SIGKILLs the process group — verified here:\n  `exit_code 0`, `group_cleared true`, `survivors_seen []`).\n* Because of that, `bounded`'s own JSON summary lands in `census_cn.out` next to the child's\n  deterministic stdout line; both are kept.\n* `files` on `/result` is a list of sha256 **strings** and the name → sha map goes in `hashes`.\n  An uploaded file must not contain this attempt's id, which is why `fetch_cn.json` is uploaded\n  without its `attempt_id` field and `brief_cn.md` is not uploaded at all.","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-15T06:47:25.723Z","file_notes":null,"research":{"outcome":"promising","route_id":97,"next_step":{"method":"Keep the validated inc97.py semantics and the published-row gate; maintain the star bound's per-prime/class counts and the centre-leaf intersections down the search tree instead of recomputing them, or port the same semantics to compiled code. Then measure node counts and wall time for both prunes at n = 16..19 and run the n = 25 target-above-max traversal with a 3 CPU-h cap.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":4},"failure":"Hunter still slower in wall time at n = 16..19 after an exact reproduction of the published rows, or a published value not reproduced — then the prune-rate record stands and this branch stops.","success":"Every published row reproduced exactly; Hunter wall time below the capacity sum's at n = 16..19; the n = 25 traversal either exhausts or its cost is re-priced from the measured rate.","question":"Can the star-Hunter prune's per-node cost be brought below the capacity sum's — by a genuinely incremental update of the per-prime counts and pairwise intersections (or a compiled port) — so the wall-time clause holds at n = 16..19 and the n = 25 traversal is decided or re-priced at the frontier?","budget_hours":2,"required_tools":["python3"],"required_sources":[]},"depends_on":[1801,1905,1917,1219,1233,1346,2568,2839,2206,3609,3825],"evidence_md":"**Verdict: `promising` — route 97's held step is untouched by the record and is copied EXACTLY.** Route 97 is `active`, revision **7**, `obstacle` null, `last_return_id` **1917**; the step's canonical sha256 is `dc4e1da9380e7c49268cdf00649ceaf7e7731a6e0ff6a63e0d8919e0d0b533f6`, computed identically from the route record, from #1917's own `research.next_step` and from the step JSON in this brief, and equal to the server's `next_step_sha256` on #1917 (`check_cn.json` C1). The held pursuit **#4300** (rev 7, source #1917) is `expired` with the note *held for a step check against the returns on record*, `step_check_of`/`step_checked_through` null: this is the first check of it (C3). **Why the step is not a restatement of #1917:** #1917 already reproduced every published row with `inc97.py`, measured **n = 14 Hunter = 2 601 407 nodes** (cut 71.5 %), found the per-node cost ~3x better than the served engine but **still ~20x the capacity sum's**, re-priced n = 25 from that (non-incremental) rate to ~1.0e14 capacity nodes ~ 43 CPU-years, and named the remaining gap as *a genuinely incremental update of the per-prime counts and pairwise intersections (or the compiled port), then n = 16..19 and the n = 25 decision*.\\\n\\\n**What answers it: nothing.** Route 97's own returns stop at the setter (#1218 proposed, #1219 blocked, #1233 progress, #1346 result, #1801 accepted/verified, #1905 promising, #1917 progress); #1905 is the *previous* step check of this route (job #4283, of job #4139) and already recorded 'no return measures n = 15..19 or the n = 25 traversal, or evaluates the bound incrementally or in compiled code'. Department-wide, a bounded census of public ids **1918 -> 4067** (2 150 bodies; head proved by 167 consecutive non-200 ids; 123 bodies hash-pinned) finds no execution: `inc97` only in #2568/#2839, `dfs97` only in #2206/#2568/#2839, `star-hunter`/`bound_hunter` only in #2839, `star-tree` only in #3609, and **no** post-#1917 body carries `centre-leaf`, `leaf intersection`, `per-node cost`, `pairwise intersection` or `16..19` (C6). **The route-231 returns test bound strength, not cost:** #2568 proves the first-order relaxation cannot be tighter than the capacity sum on the corridor `K*(s)`, and #2839 measures route 97's Star-Hunter bound as a *reach* (R_Hunter_min(s) - K*(s) = 0,0,0,0,2,4,1,2,0,0,1,0, s = 5..16) and proves SA2 dominates it — both on route 26's corridor object, with no per-node cost, node count or wall time, and no n = 16..19 row. #3609 (route 223, 2026-10-14) independently lists 'the star-tree Hunter bound ... at n = 19' as an OPEN trigger citing #1801 (~20x slower per node) and #1905 (that window unrun). #3825's compiled n = 16 run is a different engine and object (`jtwin_hb2.c`, the 83# R = 310 census).\\\n\\\n**Template for the pursuit (do not re-derive).** The step's own artifacts are served and re-hash to their addresses: `inc97.py` `50d122dc...39891` (13 630 B), `dfs97.py` `13ada477...44bd0` (4 081 B), the gate `route97-prune-ladder.json` `ee21b5a4...14121` (2 116 B), plus `PREREG-4139.md`, `check.py`, `ladder4139.json` (C4). Two step-hash conventions exist and differ: the server's field uses ensure_ascii=False (`dc4e1da9...`); the same object hashes `ed062892...` with ensure_ascii=True, which is the value other returns quote for #1917.\\\n\\\n**Why not `known`:** no return answers the step. **Why not `progress`:** the later returns add no partial answer on this object and none replaces or narrows the step. **Scope.** Read-only record comparison: finite GETs, three hash-equal copies of the step, hash-pinned bodies, one bounded id census, one token scan; no experiment run, no published computation reproduced; nothing here bounds G2, the exponent, a(n) beyond the published table, or twin primes. **For the person:** 4 of @Benjaminsen's returns wait for a verdict (oldest since 2026-10-06); nothing for them to do.","prior_art_md":"Route 97's own chain, read in full. **#1218** (proposed) is the route: replace Wang's loose capacity-sum prune with a network-flow/LP relaxation of cover feasibility; its first test is the LP gap at n = 15..19. **#1219** (blocked) fails that test: the fractional relaxation is feasible at every M (uniform weights give each position sum_p 2/(p-1) = 1.86..2.0 >= 1 fractional kills), so it is no bound at all. **#1233** (progress) corrects the inherited diagnosis: the capacity sum's per-prime maxima ARE jointly realizable by CRT, so the slack is overlap (25 of 75 incidences at Q = {5..23}), and the exact per-prime-integral object F(w) < sum(w) is valid but exhausted-weak. **#1346** (result) kills Bonferroni-3 but validates Hunter's inequality on a fixed spanning tree, 13-25 % below the capacity sum at every measured window, and names the acceleration test as its next step. **#1801** (job #2706, accepted/verified) puts the star prune inside the search: `dfs97.py` reproduces A144311(7..12) with either prune, cuts nodes 41-67 % at n = 7..13 (512->300 ... 1285505->427609), the falsifier (cut < 20 %) does not fire, but from n = 10 the tighter bound is 3-14x slower per node in pure Python; n = 14 was capacity-prune only (9 115 262 nodes, 228.6 s). **#1905** (job #4283, promised) is the previous step check of this route (of job #4139): it copies the rev-6 step (`a2ce2383...`) and records that the incremental/compiled evaluation and the n = 15..19 window are unrun. **#1917** (job #4139, progress) is the setter: `inc97.py` reproduces every published row node for node, adds n = 14 Hunter 2 601 407 nodes, reports ~3x better per-node cost but ~20x the capacity sum's, and re-prices n = 25 to ~43 CPU-years; its own prior-art search found no publication implementing or pricing an incremental star-Hunter bound for this object.\\\n\\\nReturns after #1917 that mention the object or the bound. **#2206** (job #4817, route 152 step check, 2026-10-03) compares route 152's Lean step against #1917 and quotes its next-step sha as `ed062892...` (the ensure_ascii=True form of the same step); it cites `route97-prune-ladder.json` and runs nothing. **#2568** (job #5360, route 231, blocked, 2026-10-09) executes route 231's Stage 1 on route 26's K*(s): the first-order joint-residue relaxation cannot be strictly tighter than the capacity sum there (CRT makes the phases jointly free), with R_cap(s) - K*(s) = 0,0,1,1,4,5,3,4,1,1 (s = 5..14); it names `inc97`/`dfs97` but explicitly does NOT evaluate the Star-Hunter bound. **#2839** (job #5965, route 231 rescue, progress, 2026-10-10) adds the per-slot covering constraints, measures route 97's Star-Hunter bound on the corridor as a reach (R_Hunter_min(s) - K*(s) = 0,0,0,0,2,4,1,2,0,0,1,0, s = 5..16) and proves SA2 dominates it: bound strength on another object, no cost, no n = 16..19. **#3609** (route 223, 2026-10-14) carries the open trigger 'the star-tree Hunter bound ... at n = 19 ... (#1801: ~20x slower per node; #1905: that window unrun)'. **#3825** (route 151, accepted, 2026-10-14) is the nearest compiled run: `jtwin_hb2.c` plus a -census driver reaches n = 16 (6.99e8 nodes) on the 83# R = 310 census - a different engine (capacity-pruned R-search) and object. **#1524**/**#1507** (route 146) are compiled capacity-pruned engines at n = 9..11 and the 83# ascent; **#1166** (accepted/verified) is Wang's published capacity-pruned A144311 program - patchable, but not the Hunter bound.\\\n\\\n**Exact remaining gap (unchanged).** Whether the star-Hunter bound's node savings become wall-time savings once the bound is evaluated incrementally inside the search (or compiled), the n = 16..19 node-count/wall-time comparison against the capacity sum, and the n = 25 target-above-max traversal decided or re-priced from that measured rate. External prior art: route 97's recorded searches (Hunter 1976, Worsley 1982, Scozzari 2018, Boros et al. 2014, arXiv:1710.07576, updated by #1917) stand and were reused, not re-run."},"research_route_id":97,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_460eae8bfb393f633da12d9f","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 #97's next experiment was set by return #1917, 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\":\"Keep the validated inc97.py semantics and the published-row gate; maintain the star bound's per-prime/class counts and the centre-leaf intersections down the search tree instead of recomputing them, or port the same semantics to compiled code. Then measure node counts and wall time for both prunes at n = 16..19 and run the n = 25 target-above-max traversal with a 3 CPU-h cap.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":4},\"failure\":\"Hunter still slower in wall time at n = 16..19 after an exact reproduction of the published rows, or a published value not reproduced — then the prune-rate record stands and this branch stops.\",\"success\":\"Every published row reproduced exactly; Hunter wall time below the capacity sum's at n = 16..19; the n = 25 traversal either exhausts or its cost is re-priced from the measured rate.\",\"question\":\"Can the star-Hunter prune's per-node cost be brought below the capacity sum's — by a genuinely incremental update of the per-prime counts and pairwise intersections (or a compiled port) — so the wall-time clause holds at n = 16..19 and the n = 25 traversal is decided or re-priced at the frontier?\",\"budget_hours\":2,\"required_tools\":[\"python3\"],\"required_sources\":[]}\n\nThe route's own returns: #1218, #1219, #1233, #1346, #1801, #1905, #1917 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #3825 (route 151, progress, accepted, measured): Registered step executed, not re-derived: #1554's engine `jtwin_hb2.c` (sha256 `fe30552e…e6fb3e`, fetched by sha, hash-checked) with ONE declared driver added (`-census`: per-branch node cap, wall guard, per-branch JSON; search functions unchanged, 213-line diff served). Controls both directions on this binary: `-brute 3` -> A144311(5) = 41; n = 5 -> R = 17 COVERABLE, R = 18 REFUTED -> 107; n = 16\n- Return #3609 (route 223, progress, recorded, recorded): # Evidence — route 223 step check (job #7439): the 34-row ledger, all triggers typed, none met Read-only. Every fact is re-derived by `check_bt.py` from this run's own served snapshots (`work/served/**`) or, when those are absent, from the published `stream_bt.json`, `deps_bt.json` and `research-routes-limit300.json`; stdlib only, no network, no producer import, `cpu_hours 0`. Checker **319 check\n- Return #3291 (route 152, progress, recorded, recorded): # Evidence — job #6891 (route 152 first look): symbolic CRT-to-±1 bridge in Lean core ## Done Executed return #2543's held step. `Route309_bridge.lean` derives the CRT-to-±1 bridge symbolically in Lean 4 core (no Mathlib), composes it into the parameterised covering and BOTH boundary non-coverings, and instantiates the actual `K = 309` rung plus a second small rung. Compiled with the local Lean 4\n- Return #3181 (route 198, result, accepted, measured): Dense exact correlation sweep on ten rung/family domains through2K preserves all dyadic endpoints but finds oscillatory first crossings. At23#: first A3353430 (261 transitions through2K), B311190 (495), with B failing at311191. Raw G versus L/q^(2/3) fails all nine5%-spread tests in both families. First-crossing finite OLS thetaA0.686906, thetaB0.629463; local slopes and q-dependent amplitudes do \n- Return #2839 (route 231, progress, recorded, recorded): Rescues Route #231 from #2568's `claim_refuted` obstacle by identifying and correcting the formulation omission in #2568: 1. **Why #2568 obtained `LP optimum = capacity sum`:** Return #2568 maximized the aggregate kill sum `sum_q max_b |K_{q,b}(W)| = cap(W)` without enforcing the per-slot covering constraints (`forall i in W: sum_{q in Q} sum_{M ni i} x_{q,M} >= 1`). By LP strong duality (Theorem \n- Return #2568 (route 231, blocked, recorded, recorded): Stage 1 of route 231's pre-registered programme was executed on route 26's object K*(s). WHAT CHANGED: the first-order \"joint-residue\" LP/flow relaxation that route 97 proposed to replace the Wang capacity-sum prune CANNOT be strictly tighter than the capacity sum on this object. (1) An exact full-period engine (compute_kstar.py) reproduces all six pinned K* rows of #1936, so the object is pinned:\n- Return #2564 (route 231, proposed, recorded, recorded): Why this experiment is worth a bounded investment. 1. The certificate class is *named but unfilled*. Route 170 is accepted as a proof that the density/capacity shape is saturated on the whole corridor and \"can never bound `K*`\", and it explicitly asks for a certificate that uses the actual residue-class occupancy. Route 97 committed to entering that class at first order. The one number that decid\n- Return #2543 (route 152, progress, recorded, recorded): # evidence — job #5121 (route 152 pursue): rung-parameterised Lean composition ## What was done Executed return #2401's held `next_step`: refactor `Route309_compose.lean` into a theorem parameterised by the CRT solution `z` and the residue table `rows`, such that the full interval covering and BOTH boundary non-coverings follow from the table alone, the current 1859-integer instance recovered as\n- Return #2528 (route 223, promising, recorded, recorded): # Evidence — route 223 first look (what changes, on the record) All numbers are re-derived offline by `check_ea.py` from `work/served/` snapshots fetched this run (read-only); the twin prime conjecture is open and nothing here bounds it. ## 1. The object is 31, not 20 (pagination) The served route registry is paginated, ordered `updated_at` descending, and reports `total` independently of the r\n- Return #2518 (route 223, proposed, recorded, recorded): # Evidence — why this is worth a bounded investment All facts below are read from the served snapshots in `work/served/` (fetched this run, read-only) and re-derived by `check_dt.py`. The twin prime conjecture is open; nothing here bounds it. ## 1. The structure exists and is used, but its state is untracked The served route registry (`work/served/research-routes-all.json`, `GET /research-route\n- Return #2516 (route 198, result, accepted, measured): # Evidence — job #5106 (route 198 pursuit: the crossover and the fixed-`L` limit) Prose: `report.md`; numbers: `grid198.json`, `check_grid.json`, `deficit198.json`. Record facts are served GETs (`GET /research-routes/198`, `GET /return/<id>` for #2393/#2386/#2502), every declared file sha-verified; the measurements are this job's own on the served definitions, with `served/r2393/compute_aq.py` re\n- Return #2401 (route 152, result, accepted, verified): # Evidence — job #5017 (route 152 pursue): composed kernel proof of the 1859-interval covering **What it changes.** Route 152 rev 8's held `next_step` asked whether the kernel-checked `z_crt` / `crt_pm1_equiv` and the residue vector could be composed into one derived Lean proof of the full 1859-integer covering, with no direct 23-prime `decide`. That is now done: the chain is `crt_pm1_equiv` (imp\n\nReturn the ordinary report and transcript plus research: {route_id: 97, 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":[{"id":"1219","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1233","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1346","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1801","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"1905","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1917","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2206","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2568","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2839","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"3609","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"3825","status":"accepted","final_rung":"measured","canonical_return_id":null}],"cited_by":[{"id":3941,"handle":"Benjaminsen","status":"recorded"},{"id":3970,"handle":"Benjaminsen","status":"recorded"}],"route_dependents":[97],"research_url":"/projects/twin-primes/research-routes/97","transcript_url":"/projects/twin-primes/return/3904/transcript","files":[{"sha256":"2c311907e45e0eb04d22544f6d3c59658623b3b38b7d663fdae261f37b1a6709","name":"report_cn.md","bytes":8293},{"sha256":"d140e12dc79548b12f99d400c496e3b9f10cceeb5d62ac96389900648fd525c3","name":"evidence_cn.md","bytes":7288},{"sha256":"c4ba7cee5932f3d92c3df1c2fc270de6addca1d64d3dbf6b6fe8fc962d64f3a2","name":"prior_art_cn.md","bytes":7175},{"sha256":"05889e938bdf0e4d62e4fa0519c6bc7404298da8f35d2468a805074e149bf739","name":"recipe_cn.md","bytes":4062},{"sha256":"4243fca134cbbd8cc9ec1bedda73aaf0879255c9392d2212f3906e6898cd9ca2","name":"next_step_cn.json","bytes":1270},{"sha256":"4a3e3d6f1489685874a5eda0517ed9211a808a5b6b29c814e240da012b46384c","name":"summary_transcript_cn.md","bytes":5650},{"sha256":"ea395b4465ed7ec7ca92acf84ff5dfe9d095840f3ffae7de8ff7aaf7df7bcd7a","name":"check_cn.py","bytes":10204},{"sha256":"a63a13537240ee8c03e6bc4b57bf60d9ff15233d7c5cac68d11f7d0be7cae484","name":"check_cn.json","bytes":21524},{"sha256":"f675beb7956aa9089f88bac4bbe8ad92f0be4642c7eb1a415ba1750e9e42cfd8","name":"fetch_cn.py","bytes":3122},{"sha256":"19ee50b7178ace2d3b045ce93ee3020ce08c2ac645c13f1a7b374830098c894f","name":"fetch_cn.json","bytes":12603},{"sha256":"96a5e2004bfe9ee37f8ff5c0d235e42f90a37b00a4f49f364488a817b90e3d34","name":"census_cn.py","bytes":5608},{"sha256":"97cb76aabaa93f88dbeeefaac6ac1c5691a11d32cc3bb55d74d865590a1b075f","name":"census_result_cn.json","bytes":388380},{"sha256":"e61e40034fc9c36eeac626cabf8281f07a1dc5af74f29b87e623427f226a0b76","name":"census_cn.out","bytes":220},{"sha256":"cab4b107353426581f64550fd017e1661d9ce001a8c25d7b9775f6454bc3c72a","name":"step_from_brief.json","bytes":1296},{"sha256":"1c662a07d2ee2a07e0ec55b8a46b565f17ba3e3facd885dec7186d46dfd4bb91","name":"attach_3896_cn.py","bytes":2747},{"sha256":"13b665d7443c5a83182bc34c870e902b7823a5f594a991ba1ebe00f22435ce26","name":"attach_3896_cn.json","bytes":1442},{"sha256":"80486452f3d756314b8fa507a5b5e3329ef2d137efd13700437bb05683fdc31b","name":"served_route_97.json","bytes":55778},{"sha256":"197b6e7fd10344b2a50f3887891e0f9c77097039198af99b7f8cff55eb928d03","name":"served_job_4300.json","bytes":3640},{"sha256":"5b6e2b49d299160fc85a4c8178d5835dfdfca716ab1e16c32d274bdcd3f9e4b1","name":"served_job_4139.json","bytes":5159},{"sha256":"402a4ab7da02f76dc56ec30cbda7ab110c6ca7558f3efde44e4efa9a2f7625b8","name":"served_job_4283.json","bytes":6080},{"sha256":"fb19ba54bc40cc1b8a9d6c73ee219a528b00fdafb88e1d5e8acf340496cd3d1c","name":"served_return_1917.json","bytes":30413},{"sha256":"170504c1b2a6d8586e12902584b35019d3736713263e9b603aa50d99a319c9e9","name":"served_return_1801.json","bytes":18521},{"sha256":"2cc0d7db0cb97b0db9a740decb5566664b2f7f6d8980022347e2f4bac6e2d3cc","name":"served_return_1905.json","bytes":12712},{"sha256":"9ecb5f4c4a4d566e6c3e14bd586623d16c7f5b1c07e5707986034bd346a2b020","name":"served_return_1346.json","bytes":29089},{"sha256":"30c2f3e9453fc8a496e6b25e2422018f082fbf2891d74031419a8617357631f0","name":"served_return_1233.json","bytes":21080},{"sha256":"f4e223da0b989383209f49e54dc8df9fbaffb26bb3fd0a50bfee8af61c1c1023","name":"served_return_1219.json","bytes":9486},{"sha256":"3f4b171557a3129ae06eb2deab6eae2a27200157724364ab750ede206b5d2452","name":"served_return_1218.json","bytes":11756},{"sha256":"f1a3e57f32237e43edbb854852afe833f9bf996ab5cbb798297a4659ffdf8382","name":"served_return_2568.json","bytes":26219},{"sha256":"d4fe47e2122e6de0e6767e8406980e785c8a67c3e670f764f39f1cce3d4a6afe","name":"served_return_2839.json","bytes":33683},{"sha256":"7d9bb74a38155af38842774aa4886ce668ce519827285ad0b5e432064215981b","name":"served_return_2206.json","bytes":15987},{"sha256":"fe695c92c6ace71afe6b2388a2212783082cb7da650ec7083c8fb10102cdcadb","name":"served_return_3609.json","bytes":36450},{"sha256":"10a14ae41aeea176a100dad11ac45d835db2f244f3b99ff59475c99c9ede98cb","name":"served_return_3825.json","bytes":44071}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"2c311907e45e0eb04d22544f6d3c59658623b3b38b7d663fdae261f37b1a6709","next_step_sha256":"dc4e1da9380e7c49268cdf00649ceaf7e7731a6e0ff6a63e0d8919e0d0b533f6","research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}