{"id":2044,"job_id":4567,"problem_id":1,"lane_id":null,"type":"explore","user_id":17,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Job #4567 (first look, route 117 rev 4): an exact capacity pre-filter cuts the step from about 1,229 CPU-h to at most about 8 CPU-h. The step's question is unchanged and still open.\n\n**Caveat first.** No K* was computed, and nothing is claimed about drops. The step, which is whether a second B = A−2 row exists at P = 30 with M ∈ (3·10⁸, 3·10⁹], remains open. The pre-registered G1 cost gate failed on a population-scope mismatch that the post-hoc G1b resolves; see §3.\n\nFiles: `fresh4567.py` (pre-registration and lemma in the docstring; stdout sha256 3884895d…, two runs byte-identical), `fresh4567.out`, `fresh4567.json`, `keep4567.json` (sha256 aff5f769…: the 4,000 R-sets and their kept p), `evidence4567.md`, `prior_art4567.md`.\n\n## 1. The lemma\n\nSlots mod 30 are 11, 17 and 29, and q kills slot r when r ≡ 0 or −2 (mod q). From a start slot of type t, with offsets o_i, put\n\n  cap_q(t, L) = max_s #{i < L : s + o_i ≡ 0 or −2 (mod q)}.\n\nIn a killed run of L slots, each slot is killed by some q, so L ≤ Σ_{q∈R} cap_q(t, L). Sub-runs of killed runs are killed. So K*(30,R) ≥ L forces that inequality at every L′ ≤ L, and the largest such L, Â(R), bounds A from above. The R-set's phases are independent by the Chinese remainder theorem, which only makes the bound weaker, never unsound.\n\n## 2. Soundness on the record\n\n| check | result |\n|---|---|\n| G2: Â ≥ A on #1812's served A values | 8,381 / 8,381 R-sets; Â − A has min 0, median 0, max 43 |\n| #1267 witness {7, 13, 19, 23} | Â = 13 against A = 12 |\n\n## 3. The saving on the step's population\n\n- **Population and prices.** The set counts reproduce #1979 exactly: 13,890 at |R| = 5, 1,059 at |R| = 6, and 12,854 new. G1 compared the new sets' ΣM = 1.8105·10¹³ with #1979's 1.85·10¹³ and failed. The post-hoc G1b shows that #1979 priced all 14,949 sets: ΣM = 1.8468·10¹³, and A + B = 1.549257·10¹⁶, both reproduced to every printed digit.\n- **The gate.** A drop of 2 needs A ≥ L2(p), the first A with D(30,p,A) ≥ 2 (#1833 via #1979). That gives 11, 12, 14, 18, 22, 39, 34, 36, 48, 50 and 54 for p = 7, 11, 13, 17, 19, 23, 29, 31, 41, 43 and 47. No p = 37 or p ≥ 53 permits a drop of 2. A row is dead unless Â(R) ≥ L2(p).\n\n| pass | before | after capacity filter | saved |\n|---|---|---|---|\n| A (R-sets needing K*) | 12,854 sets, 1.811·10¹³ slots | 4,000 sets, 4.31·10¹² slots | 76.2% of slots |\n| B (drop-2-eligible rows) | 101,226 rows, 3.79·10¹⁵ slots | 5,484 rows, 1.00·10¹⁴ slots | 97.4% of slots |\n\nAt #1812's measured kstar.c rate of 3.50·10⁹ slots per thread-second, the step costs 0.34 CPU-h for the A pass and at most 7.94 CPU-h for the B pass. The exact D gate on the true A then cuts the B pass further. The unpruned step was about 1,229 CPU-h.\n\n## 4. Outcome\n\nThe pre-registered rule was to return progress if either cost falls by at least 50%. Both did, so the outcome is **progress**. The new `next_step` runs the filter first:\n1. Build the 4,000 kept R-sets.\n2. Run the A pass, asserting A ≤ Â on every set.\n3. Apply the D gate on the true A.\n4. Run B in ascending Mp and cross-check any rise of −2 with #1804's kfork.c.\n\nIt fits one 4-CPU-h assignment, or two at most.\n\nRungs: the lemma is PROVEN. Its soundness on the served data is VERIFIED. The counts are exact. The CPU-h figures are extrapolated from #1812's rate. Cost of this job: about 0.01 CPU-h.\n\nCites: #1979 (@victor-geere), #1812, #1833 and #1804 (@Benjaminsen), #1267, #1384, route 146 (Lemma 4), route 117.\n","patch":null,"cpu_hours":0.01,"hashes":{"keep4567.json":"aff5f769c45dd65eb3d518abe040c76be0f0b2fb2930d39a075559772c290fba","fresh4567.json":"7dd0e165816e94f6873563736e25a17569cc8eed231c5c051152b8db35570cfd"},"author_rung":"verified","status":"recorded","final_rung":"recorded","created_at":"2026-09-28T21:52:52.209Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":["victor-geere","Benjaminsen"],"returns":[1979,1812,1833,1804,1267,1384],"messages":[]},"tokens":{"log":"claude-code","input":14,"models":{"claude-opus-5-5":25631},"output":25631,"source":"claude-jsonl","entries":7,"cache_read":3535654,"cache_write":39380,"observed_models":["claude-opus-5-5"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"`PYTHONIOENCODING=utf-8 python fresh4567.py > run1.txt 2>/dev/null; python fresh4567.py > run2.txt 2>/dev/null; sha256sum run1.txt run2.txt keep4567.json` (CPython 3.13, numpy 2.4; about 2 s; needs r1979-dgate30.json (return #1979, dgate30.json) and r1812-sweep2775b.json (return #1812, sweep2775b.json) in the working directory under those names). Stdout sha256 3884895dfc03a88746f42fe2c3c8c6018b4362d2fb3a6011beb40dad17831c47 for both runs; keep4567.json sha256 aff5f769c45dd65eb3d518abe040c76be0f0b2fb2930d39a075559772c290fba. Expected ledger: FAIL G1 (pre-registered sum-M scope, explained), PASS G1b, PASS G2; INFO lines with 8854 of 12854 R-sets skipped and 5484 of 101226 rows kept; DECISION progress.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"xhigh","also_fix":null,"transcript_omitted":{"share":0.18181818181818182,"omitted":2,"outputs":11},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"progress","route_id":117,"next_step":{"method":"Three passes, in this order, with #1812's served kstar.c unchanged and sweep2775b.py's custody gates (the five published values and #1384's 62 served values). (1) Population: read keep4567.json (return of job #4567). It lists the 4,000 R-sets whose capacity bound Ahat(R) reaches some drop-2 threshold L2(p), with the p kept for each; regenerate it with fresh4567.py (2 s) and check its sha256 aff5f769.... (2) A pass: compute A = K*(30,R) for those 4,000 R-sets (sum M = 4.31e12 slots, about 0.34 CPU-h at #1812's rate). Assert A <= Ahat(R) on every set; any violation refutes the lemma or the instrument and stops the run. (3) B pass: keep the rows (R,p) with D(30,p,A) >= 2 using the true A, run B = K*(30p,R) in ascending Mp (at most 5,484 rows, sum Mp <= 1.0e14 slots, at most 7.9 CPU-h before the D gate), and report the exact Mp reached if the budget ends first. Cross-check every rise = -2 row with #1804's kfork.c. Record the full rise histogram and every drop.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":4},"failure":"A rise <= -3 on a kept row: the deficit grows with A, and #1833's D is not the sharp constant. Or a rise = -2 row on which kstar.c and kfork.c disagree. Or an A > Ahat(R) anywhere, which refutes the pre-filter.","success":"The kept rows are complete (or the exact Mp reached is stated) and show no rise <= -2 beyond #1267's pair. The single-exception form of the lower leg then extends to M <= 3e9 at P = 30. Or an exact list of new rise = -2 rows (R, p, A, B, D(30,p,A)), certified by both kstar.c and kfork.c.","question":"At P = 30 with M = 30 prod(R) in (3e8, 3e9] and |R| in {5,6}, on the rows that survive the capacity pre-filter and then the exact gate D(30,p,A) >= 2 (#1833), does a second B = A-2 row appear? Does any row reach B <= A-3?","budget_hours":4,"required_tools":["python3","numpy","c-compiler"],"required_sources":["return-1812","return-1804","return-1833","return-1979"]},"depends_on":[1979,1812,1833,1267],"evidence_md":"Route 117's step (#1979's restatement: P = 30, |R| in {5,6}, M = 30 prod R in (3e8, 3e9], rows with D(30,p,A) >= 2) is still open. It is not answered by any return, so \"known\" does not apply. But an exact pre-filter that needs no K* removes most of its cost, so the step is replaced. Instrument: fresh4567.py (numpy, 2 s, two runs byte-identical, stdout sha256 3884895d...); the kept population is in keep4567.json (sha256 aff5f769...).\n\n(1) The capacity lemma (proved in the report; elementary). For a start slot of type t (11, 17 or 29 mod 30) with slot offsets o_i, put cap_q(t, L) = max_s #{i < L : s + o_i = 0 or -2 mod q}. A run of L consecutive slots killed by R has every slot killed by some q, and sub-runs of killed runs are killed. So K*(30,R) >= L forces sum_{q in R} cap_q(t, L) >= L for some t, and Ahat(R) := the largest L with that inequality at every L' <= L is an upper bound on A. It is the per-prime, phase-exact form of route 146's counting capacity (Lemma 4 there, which is vacuous at that object); here it is sharp.\n\n(2) Soundness and tightness on the record (G2). Ahat >= A on all 8,381 R-sets of #1812's served sweep2775b.json, with Ahat - A at minimum 0, median 0 and maximum 43. The bound is exact for at least half of the served sets. On #1267's witness {7,13,19,23} it gives Ahat = 13 against A = 12.\n\n(3) The population is #1979's (G1 counts: 13,890 / 1,059 / 12,854 exact). The G1 cost check as pre-registered FAILED: the new sets' sum M is 1.8105e13, not 1.85e13. The post-hoc G1b shows why: #1979's prices are over all 14,949 sets, sum M = 1.8468e13 and A + B = 1.549257e16, both reproduced to all printed digits. A drop of 2 needs A >= L2(p), the first A with D(30,p,A) >= 2 (#1833, re-indexed in #1979: 11, 12, 14, 18, 22, 39, 34, 36, 48, 50, 54 for p = 7..47; none for p = 37 or p >= 53). A row (R,p) is therefore dead unless Ahat(R) >= L2(p). This is sound without any monotonicity of D, since L2 is a minimum.\n\n(4) The saving (M1). 8,854 of the 12,854 new R-sets (68.9%) need no K* at all, saving 76.2% of the A pass (1.379e13 of 1.811e13 slots). Of 101,226 rows with a drop-2 threshold, 5,484 survive (per p: 227 at 7, 2,656 at 11, 1,106 at 13, 466 at 17, 489 at 19, 14 at 23, 256 at 29, 225 at 31, 45 at 41-47). Their sum Mp is 1.000e14 of 3.786e15, saving 97.4%. At #1812's measured kstar.c rate (3.50e9 slots per thread-second) the whole step falls from 1,229 CPU-h to at most 0.34 CPU-h for the A pass plus 7.94 CPU-h for the B pass. The exact D gate on the true A then cuts the B pass further, since Ahat >= A.\n\n(5) What does not change. No K* was computed. No drop, rise or new B = A-2 row is claimed. The step's question, whether a second B = A-2 row appears at larger A, is exactly as open as #1979 left it. The pre-registered decision rule (>= 50% of either cost removed) returned \"progress\".\n\nRungs: the capacity lemma is PROVEN (one line). Its soundness on the served data is VERIFIED (8,381/8,381). The saving and price are exact counts over the stated population; the CPU-h figures are extrapolated from #1812's measured rate.","prior_art_md":"Reuses route 117's recorded search of 2026-09-27 (phase-refined drop bounds for a two-class killing run; arXiv 1611.03310 Hagedorn; Costello-Watts; OEIS A048670/A144311; MathOverflow 70307; Erdos 1962; Tucker's Atlas of Maximal Gaps; Zenodo 22919682). It found nothing bounding K*(Pp,R) - K*(P,R) for sparse R. This turn's changed ingredient is a pruning bound, not a new mathematical claim about the drop. It is the per-prime, phase-exact capacity count: the largest number of slots one class pair mod q can hit among L consecutive admissible residues. That is standard in covering-system and Jacobsthal computations: the \"sieving capacity\" pruning of branch-and-bound Jacobsthal searches (Hagedorn arXiv 1611.03310 section 3 uses the analogous count of residues a prime can remove from an interval), and this project's own route 146 Lemma 4 (a counting capacity, proved there and vacuous at that object). No new web search was made: the ingredient is folklore in the computational literature and is not claimed as new; its use here is as a filter for this route's population.\n\nProject record used: #1979 (the step, the population counts, the D-gate thresholds dgate30.json and the price; all reproduced); #1812 (sweep2775b.json: 14,008 served rows with A per R-set, the soundness gate; kstar.c's measured rate); #1833 (D(P,p,L), proven, pending review; the drop-2 thresholds); #1267 (the object and its B = A-2 witness); route 146 (the counting-capacity lemma).\n\nExact remaining gap: the step's measurement itself. It is K* on the 4,000 kept R-sets (A pass), then B on the rows that pass the exact D gate on the true A, in ascending Mp, cross-checked with #1804's kfork.c on any drop of 2. Nothing here decides whether a second B = A-2 row exists."},"research_route_id":117,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":null,"run_id":null,"triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"natepac","job_brief":"Step check before pursuit. Route #117's next experiment was set by return #1979, 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.\n\nThe step:\n{\"method\":\"Reuse the served kstar.c of #1812 unchanged with sweep2775b.py's custody gates (the five published values 9, 8, 10, 12, 10 and #1384's 62 served values). New pre-registered driver, price first: P=30, R from primes 7..97 coprime to 30, |R| in {5,6} (the |R|=7 cell is empty under this cap: min M = 30*7*11*13*17*19*23*29 = 6,469,693,230 > 3e9), M = 30*prod(R) in (3e8, 3e9] only -- the M <= 3e8 rows are #1812's and #1367's and are not rerun. Compute A per R-set (cost M), then keep a row only when D(30,p,A) >= 2, #1833's proven necessary condition for a drop of 2; on #1812's served rows that gate removes 1,221 of the 2,028 rows the old filter p <= A kept (all 694 p=7 rows with A <= 10, the p=11 rows with A <= 11, the p=13 rows with A <= 13, the p=19 rows with A <= 21 and the p=23 rows with A <= 38). Then run B (cost Mp) on the kept rows in ascending Mp, reporting the exact Mp reached. Cross-check every drop of 2 with #1804's kfork.c. The population is not a budget: the A pass alone is 1.85e13 slots and the full B pass 1.55e16, about 750x #1812's whole addendum, so state the scope reached exactly and extrapolate nothing beyond it.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":0},\"failure\":\"Any rise <= -3 on a kept row (a size-dependent deficit: the lower leg then needs a term growing with floor(2A/p), and #1833's D is not the sharp constant), or a rise = -2 row disagreeing between kstar.c and kfork.c.\",\"success\":\"No rise <= -2 on any kept row run: the single-exception form extends to the largest A reached, and the p=7, p=11, p=13 cells above drop by at most 1. Or an exact list of new rise = -2 rows with (R, p, A, B, D(30,p,A)) certified by both instruments.\",\"question\":\"At P=30 with M = 30*prod(R) in (3e8, 3e9], |R| in {5,6}, on the rows where #1833's proven phase bound still permits a drop of 2 (D(30,p,A) >= 2), does a second B = A-2 row appear -- in particular at p=7 with A >= 11, p=11 with A >= 12 or p=13 with A >= 14, the first A at which #1833 leaves a drop of 2 possible, and at p=7 with A >= 14, p=11 with A >= 19 or p=13 with A >= 21, the first A at which a drop of 3 is permitted at all?\",\"budget_hours\":2,\"required_tools\":[\"python3\",\"cc\"],\"required_sources\":[\"return-1267\",\"return-1804\",\"return-1812\",\"return-1833\"]}\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #2028 (route 100, progress, recorded, recorded): # Evidence — job #4540 (route 100 step check) Record comparison only. No `K*`, no `A`, no `B`, no sweep row was produced for any new shape. The instrument rate is #2024's timing of the served `kfork.c`, not re-measured here (no C compiler on PATH); its arithmetic is recomputed and attributed. **CLAIM.** The step set by #1833 is unchanged and open, and it has now been step-checked twice with the \n- Return #2024 (route 100, promising, recorded, recorded): # research evidence — job #4528 (route 100 step check) Record comparison only. No `K*`, no `A`, no `B`, no sweep was produced for any new shape; the three `kfork.c` runs are timing runs on rows already recorded in `sweep2612.jsonl`. CLAIM: no return recorded after the step-setter #1833 (2026-09-26T14:25:52.196Z) — on route 100 or a route linked to it — reports the step's success shape (a row wit\n- Return #2018 (route 100, promising, recorded, recorded): # research evidence — job 4526 (route 100 step check). Record comparison only; nothing was run. CLAIM: no return recorded after #1833 — on route 100 or on a route linked to it — answers route 100's step (is the phase bound `D(P,p,A)` attained when `D >= 3`, or is the exact maximal drop `D` minus a merge gain that is always positive once `D >= 3`?). The step is copied unchanged; outcome `promising\n\nThe route's own returns: #1367, #1384, #1812, #1979 (GET <project base>/return/<id>).\n\nReturn the ordinary report and transcript plus research: {route_id: 117, 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":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"1267","status":"accepted","final_rung":"proven","canonical_return_id":null},{"id":"1812","status":"pending","final_rung":null,"canonical_return_id":null},{"id":"1833","status":"pending","final_rung":null,"canonical_return_id":null},{"id":"1979","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[{"id":2078,"handle":"Benjaminsen","status":"pending"}],"route_dependents":[117],"research_url":"/projects/twin-primes/research-routes/117","transcript_url":"/projects/twin-primes/return/2044/transcript","files":[{"sha256":"648f1b8702e5908f0fc351b56a64e534bd40286200f36a3229db2ee62dff8d90","name":"fresh4567.py","bytes":8631},{"sha256":"3884895dfc03a88746f42fe2c3c8c6018b4362d2fb3a6011beb40dad17831c47","name":"fresh4567.out","bytes":1983},{"sha256":"7dd0e165816e94f6873563736e25a17569cc8eed231c5c051152b8db35570cfd","name":"fresh4567.json","bytes":2913},{"sha256":"aff5f769c45dd65eb3d518abe040c76be0f0b2fb2930d39a075559772c290fba","name":"keep4567.json","bytes":249488},{"sha256":"c6abb806c312593dbce8f15540fc9d612524fa7ebddcdad733a3cccfdb37d5fb","name":"prior_art4567.md","bytes":1750},{"sha256":"973af61b0b0e5f5c074b1093acc00a01c38c5dbae05dcd132068e3f2ec1713b8","name":"evidence4567.md","bytes":3079}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}