{"id":1584,"job_id":null,"problem_id":1,"lane_id":null,"type":"direction","user_id":42,"model":"deepseek-flash","provider":"deepseek","report_md":"# Direction: Chen's 248 TP gap and the path to 46 and below\n\n**Kind.** Jobless `direction` return (type `direction`), a self-contained\nsuccessor of the local bounded-gaps handoff `research/0020/`\n(`complex-sieve.html`, `bounded-gaps-complex-sieve.md`). It converts the browser\ninstrument to Python, verifies the finite layer three ways, formalises the\nelementary lemmas in Lean, and prices the road down the shift-count ladder from\nthe established `k = 50` (`H_1 ≤ 246`) to `k = 46` and below (`H_1 ≤ 216`, …).\n\n**Calibration.** *Proven*: Lemmas 1–9 of `derivation.md` (residue criterion,\nfinite certificate, parity, translation, local avoidance/CRT, window\noptimality). *Verified*: the three published constellations (admissible,\ndiameters 246/240/236); the min-kill reconstruction `H49` and its narrowest\n48-window `H48`; the exhaustive table `H(k) = 0,2,6,8,12,16,20,26,30,32,36,42,48,50`\nfor `k = 1..14`; the Chen-prime census below `10^6` (29 949 primes, max gap 342).\n*Measured*: the record Chen gaps. *Cited*: `H(k)` for `k = 40..52` (OEIS\nA008407), the Maynard chain and the `M_k` history. *Refuted/retracted*: the\nconstant 248. **Open: the analytic ratio at low `k`.** Nothing here proves any\nbound on `H_1` or `H_1^{Chen}`.\n\n## 1. What was built\n\n- `complex-sieve.py` — faithful, stdlib-only Python port of all three layers of\n  `complex-sieve.html` (residue classes, min-kill engine, narrow-window\n  extractor, presets H50/H49/H48, admissibility report, CLI, `--check-presets`).\n- `chen-gap-census.py` — the almost-twin (Chen) object: `Ω(n)`, semiprime and\n  `P_2` tests, Chen primes, gap census and record gaps, plus exhaustive `H(k)`.\n- `verify_sympy.py` — independent sympy re-derivation (polynomial non-vanishing\n  over `Z/pZ`, `factorint` classification, exhaustive `H(k)`); **all checks pass**.\n- `tests/test_complex_sieve.py` — 22 unit tests, **all pass**.\n- `run_checks.py` — one command that runs everything and writes\n  `out/checks-summary.{json,txt}`, `out/chen-census.json`, `out/hk-table.json`,\n  `out/sympy-verification.json`.\n- `lean/` — Lean 4 + Mathlib development. `TwinPrimeCore.lean` proves the\n  elementary layer (translation invariance of `Admissible` and of the diameter,\n  the parity normal form, the CRT-free finite reduction\n  `admissible_of_range_check`, the refutation of \"admissible ⇒ Nodup\") and\n  discharges `H50/H49/H48` by computation; `TwinPrimeMaynard.lean` proves the\n  conditional chain `maynard_chain` (`Admissible H`, `|H| = k`, `DHL k 2` ⇒\n  `H1Le (diam H)`). The analytic input is an explicit hypothesis, never an\n  axiom or `sorry`.\n- `split_under_limit.py` — verifies every artefact against the 5 MB upload\n  limit and splits an oversized document at section boundaries.\n\n## 2. The reduction, in one line\n\nFor an admissible `k`-tuple `H`, Maynard's theorem gives `H_1 ≤ diam H` as soon\nas the variational ratio clears the threshold: `M_k > 2/θ`. With Bombieri–\nVinogradov `θ = 1/2` the threshold is `M_k > 4`. The published record has\n`M_k > 4` at `k = 54, 50` and (2026, unreviewed) `k = 49, 48`; the rungs\n`k = 47, 46, 45, …` are unpriced. This programme supplies the combinatorial half\nexactly (`H(k)`, the admissible tuples, and their verification) and locates the\nanalytic half at each unpriced rung.\n\n## 3. The path to 46, priced\n\nThe prior-art audit (`prior-art-findings.md`) fixes the reading of the title.\n**248 is unsourced**: no published bound gives 248 for `H_1`, for the Chen gap,\nor as any `H(k)`; the established constant is **246 = H(50)** (Polymath8b) and\nChen is not its author — the nearest 2026 paper's only \"248\" is a table row\nindex. **46 is the shift count `k`**, not a diameter: `H(46) = 216` (OEIS\nA008407). So \"the path to 46 and below\" means lowering the certified shift count\n`k = 50 → 49 → 48 → 47 → 46 → 45 → …`, and the binding bounds are\n\n| `k` | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 40 |\n|---|---|---|---|---|---|---|---|---|\n| `H_1 ≤ H(k)` | 246 | 240 | 236 | 226 | 216 | 212 | 210 | 186 |\n\nThe recorded `M_k > 4` inputs are `k = 54` (Polymath8b Thm 3.9(vii),\n`M_54 > 4.00238`, BV only), `k = 50` (`M_{50,1/25} > 4.0043`, Zhang-type input)\nand the 2026 non-peer-reviewed `k = 49, 48`. **Not reached: `k = 47, 46, 45, …`**\n— the four rungs from the certified 50 to the target 46. The combinatorics is\nnot the bottleneck: `H(k)` is tabulated and the admissible tuples are explicit\n(`H48` is verified here). The bottleneck is the analytic ratio at each lower\n`k`, under a stated, audited distribution hypothesis. The handoff's own\n\"unverified 2026 claims of 212 or 186\" are exactly the `k = 45` and `k = 40`\nrungs of this ladder.\n\nHonest riders. (i) The `H(k)` values `k = 40..52` are cited from OEIS A008407,\nnot re-derived; only `k ≤ 14` is computed here. (ii) The 2026 `k = 49, 48`\nclaims are non-peer-reviewed at the search date; 246 remains the established\nrecord. (iii) The alternative reading — 46 as a diameter target `H_1 ≤ 46` —\nwould need `M_k > 4` at `k ≤ 12` (`H(12) = 42`, `H(13) = 48`), a categorically\nfurther requirement; no source uses 46 that way.\n\n## 4. Open gaps (see `derivation.md` §6)\n\n- **G1** `M_k > 4` at `k = 47, 46, 45, …` — the path to 46 and below.\n- **G2** an independent implementation of the hybrid-support generalised\n  eigenvalue, with truncation stability.\n- **G3** a `P_2` minorant with uniform level of distribution (the Chen analogue).\n- **G4** retraction of 248 as unsourced (established record 246, Polymath8b).\n- **G5** minimality of the cited optima `H(k)`, `k = 40..52`.\n\n## 5. Cheapest next experiment\n\nReproduce one published `M_k` value at a rung where the answer is known\n(Polymath8b `M_54 > 4.00238` under BV, or `M_{50,1/25} > 4.0043`), using the\neven-signature basis and the partition recursion on the hybrid support; only if\nthat reproduces should the next unpriced rung (`k = 47`, then `46`) be run.\nSuccess: the known value to the published precision. Failure: a mismatch, which\nlocalises the error in the basis, the support or the recursion before any new\nclaim is made. See `proposal-evidence.md` and `recipe.md`.\n\n## 6. Sources\n\n- Maynard, *Small gaps between primes*, Ann. of Math. 181 (2015) — the\n  multidimensional sieve and the `M_k` criterion (cited, not re-derived).\n- D. H. J. Polymath, *Variants of the Selberg sieve…*, arXiv:1407.4897 —\n  `M_54 > 4.00238` (Thm 3.9(vii)), `M_{50,1/25} > 4.0043` (Thm 3.13), `H_1 ≤ 246`\n  (cited).\n- Stadlmann, *Bounded gaps between primes*, arXiv:2608.31126 — `H_1 ≤ 240`\n  (2026; cited).\n- Song–Yue, *Bounded Gaps Between Primes: An Upper Bound of 236*,\n  eprint.iacr.org/2026/1893 — `H_1 ≤ 236`, `M_48 > 4` (2026, not peer-reviewed;\n  cited).\n- Hanxin Zhang, *A bound of 240 for gaps between primes*, Zenodo 22160080 (2026;\n  cited).\n- Bin Chen, *Small gaps between almost-twin primes*, arXiv:2402.00748, Forum\n  Math., doi:10.1515/forum-2024-0036 — almost-twin clusters `O(e^{7.63m})`\n  (cited; no fixed gap constant).\n- Bordignon–Johnston–Starichkova, arXiv:2207.09452 — explicit Chen (Goldbach\n  form); Goldston–Graham–Pintz–Yıldırım, arXiv:math/0609615 — `liminf ≤ 6` for\n  products of two distinct primes (different object).\n- OEIS A008407 (admissible-tuple optima `H(k)`; b-file fetched 2026-09-24) and\n  OEIS A109611 (Chen primes). The small `H(k)` and the first Chen primes are\n  re-derived here; the `k = 40..52` values are cited.\n- Local source `research/0020/complex-sieve.html` and\n  `research/0020/bounded-gaps-complex-sieve.md`, read as the primary handoff.\n\n## 7. Non-claims\n\nNo bound on `H_1` or `H_1^{Chen}`; no certified `M_k`; no proof of Chen's\ntheorem or of twin-prime infinitude. The constant 248 is **retracted as\nunsourced**, not endorsed; 46 is read as a shift count, and `H_1 ≤ 46` is not\nclaimed or approached. The instrument is exact for admissibility and diameter\nonly.\n","patch":null,"cpu_hours":0,"hashes":{"index.md":"f8ad21c9673098b1a2f041e7896f3ae1bbb92c4286c273a61712cfe424096d0a","recipe.md":"bcaf51f0b251f4f85724777fede8c277f1190d2ebee1e889f37d9ebe99195ff1","report.md":"54958577237dfd98c5547ab397f8d619bffa6562b1af9469b601d41c36f0fbca","derivation.md":"f220614ddf22f09bf6061c0b828568022883d8c95794e1557d45f34be160dbca","run_checks.py":"ccfb11ab9d1458bfe3fb90a302fbd2566a3f318771f22fb27cdb225c664fc64c","lean-README.md":"2fe259cb1d64565b821ea92404f0793ed314e91c9485ff6066162c25acd2a233","verify_sympy.py":"acad5cdfa435f72a8da20d104c7e27bd98d85648f47bf2d88d4638149c6bd9d1","complex-sieve.py":"186db42e0d17015e550095381fcbe820b76959c8cb8f2852c5fa202f8e8927b9","out-hk-cited.json":"5fac691e42e8d8fb359c920cb8df54b06c527fae1d5b320b1bf8cc1a61f81b4c","out-hk-table.json":"f5b4e373fc1944ea21e94ae5c9495198f8a3499e77b8ba5580d754c2017afcc2","chen-gap-census.py":"462d90020d9302bbf71e3f7bfdd4f279773246855b2e8661d617c5cbf365d1f1","out-lean-check.txt":"475e36fe761979660376a83756b34d8da2de5a0c0ab5d6a41acc108064a6c493","out-size-audit.txt":"d946569d252ba1c089739475acc971807c160466554c6d9d95beae31fc19592f","out-chen-census.json":"8198f1cd201a38ec052f4aa59e6870efc08f5e5e09a21ccb5656351162a6de58","proposal-evidence.md":"b7ebf5b613fb947cf8ed71c495bd5a89cf74f842536311a5e8aa363c1a40491a","split-under-limit.py":"352b214d5ab4cd5d1ee1826bec079cd05bbb3b2a53033496a127ad5da8daaf0b","prior-art-findings.md":"10a53802da2fb1fb1710171b27251dfc05b8f5bdccc87199122b119fffef331c","proposal-prior-art.md":"76729b06cceeb9763db5c5e31e8d9c0b2f373ba5ee4d2d19b7a3a7b9f8d84192","test-complex-sieve.py":"e3a5abae8912771f2d64a1f52d1d6226d95846d3ad4bd1b3ba27238f13fa9573","out-checks-summary.txt":"53024d49a521f37b6bc1821e6b4726ffcd2e156a79e9ea43b120e875e2e68386","lean-TwinPrimeCore.lean":"4e817ff526f5ae1da636cd57706544b40302a2e00ccd3a3be818f2fe56fc8bc8","out-checks-summary.json":"42f7b450f19c456c515c673a60ba54bfeeade9dfeaf17ddc3663399bb181128d","proposal-uncertainty.md":"92410f7e3c2ac8408b637d3378ce3100b907b362128971bb184cf53b3b5795c7","proposal-contribution.md":"2f90af153fba5789da7fe370ebea869e16d57f776a18a51819ff94b23e7b81f1","source-complex-sieve.html":"93c8f53c1659e010b70ec2f131c889124707f3f0af5cf3c8aa2a32e87e48d762","lean-TwinPrimeMaynard.lean":"b55ef4722cc9e0e072b77bdd16ab4d67159b98e0c35a9dc42e64bb440c0ca57a","out-sympy-verification.json":"c7d832537034d249f25df5efc485ca2fb756441f6f765d1d070b094bad7fa3cd"},"author_rung":"proven","status":"recorded","final_rung":"recorded","created_at":"2026-09-24T10:11:07.392Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[],"messages":[]},"tokens":{"log":"custom","input":191142,"models":{"deepseek-flash":152297},"output":152297,"source":"custom-jsonl","entries":209,"cache_read":45840896,"cache_write":0,"observed_models":["deepseek-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — reproduce every claim\n\nAll artefacts are uploaded to the project file store and fetched by sha256 from\n`<project base>/files/<sha256>` (the `index.md` lists the hashes; `<project\nbase>` is `https://solveathome.org/projects/twin-prime`). Fetch them into one\ndirectory; the scripts are stdlib-only except `verify_sympy.py` (sympy 1.14+).\n\nEnvironment: Python 3.13, sympy 1.14.0. Offline, deterministic, no floats in any\ndecision.\n\n```\n# 1. the converted instrument, all three layers, published presets\npython3 complex-sieve.py --check-presets\n#    expected stdout, exactly:\n#      H48: n=48 diam=236 admissible=True -> OK\n#      H49: n=49 diam=240 admissible=True -> OK\n#      H50: n=50 diam=246 admissible=True -> OK\n#    exit 0\n\n# 2. rebuild H49 by min-kill and extract H48 as its narrowest 48-window\npython3 complex-sieve.py --k 48 --L 246 --window 48\n#    expected: survivors: 49; narrowest 48-window: diameter 236,\n#    H = [0,6,8,...,234,236]; admissible: True\n\n# 3. Chen (almost-twin) gap census and exhaustive H(k)\npython3 chen-gap-census.py --N 1000000 --hk 14\n#    expected: Chen=29949 (prime case 2160, semiprime case 27789);\n#    max Chen gap 342; H(k) = {1:0,2:2,...,12:42,13:48,14:50}\n\n# 4. independent sympy re-derivation (V1-V8)\npython3 verify_sympy.py\n#    expected final line: RESULT: ALL PASS; writes out/sympy-verification.json\n\n# 5. the unit tests\npython3 -m unittest discover -s tests -v\n#    expected: Ran 22 tests ... OK\n\n# 6. everything at once, plus the 5 MB size audit\npython3 run_checks.py\n#    expected final line: RESULT: ALL PASS; writes\n#    out/checks-summary.json, out/checks-summary.txt, out/chen-census.json,\n#    out/hk-table.json\n\n# 7. the upload-size guarantee (/files max is 5 MB)\npython3 split_under_limit.py\n#    expected: largest < 5242880 B; oversized 0; OK\n```\n\nLean (only if the project-local toolchain is available; `lean-check.sh` is the\ndepartment's wrapper, not part of this upload):\n\n```\nbash lean-check.sh lean/Basic.lean lean/Examples.lean\n#    expected: OK for each file\n```\n\n**Hashes.** `out/checks-summary.json` records the sha256 of every uploaded\nartefact and the observed pass/fail of each check; `MANIFEST.json` (written by\n`split_under_limit.py --write`) is the canonical size/hash manifest. Any\ndisagreement between a served file and its manifest hash means the bytes moved;\nre-fetch by hash.\n\n**What the recipe does *not* establish.** No step computes a Maynard ratio\n`M_k`; the analytic inputs (Theorem A, the 246/240/236 record, the 248 constant)\nare cited, not executed. A passing recipe verifies the finite layer only.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"low","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":"475e36fe761979660376a83756b34d8da2de5a0c0ab5d6a41acc108064a6c493","name":"out-lean-check.txt","notes":["carries a hard-coded home directory: /Users/victor/workspace/twin-prime-conjecture/.solveathome/private/research/0020/direction/lea (line 3); on another machine that path does not exist. Use a path relative to the repository."]}],"research":{"outcome":"proposed","proposal":{"title":"Chen's 248 TP gap and the path to 46 and below","prior_art_md":"# Prior art and exact difference\n\n**Search date 2026-09-24.** Sources inspected: OEIS A008407 b-file and A109611;\narXiv API + PDFs (Polymath8b 1407.4897, Stadlmann 2608.31126, Bin Chen\n2402.00748, Bordignon–Johnston–Starichkova 2207.09452, GGPY math/0609615);\nIACR eprint 2026/1893 (Song–Yue) and Kintali (Prime-Gaps.pdf); Zenodo records\n(Hanxin Zhang h1_240, Ratliff); the project's local handoff `research/0020/` and\ncorpus. Full query log in `prior-art-findings.md`.\n\n## Verdicts\n\n- **248 — not found (retracted).** No published result gives a bounded-gap\n  constant 248, for `H_1`, for the Chen gap, or as any admissible-tuple diameter:\n  OEIS A008407 never equals 248 for `k ≤ 342`. The established constant is\n  **246 = H(50)** (Polymath8b, arXiv:1407.4897, Thms 3.3(i)/3.2(i)), and **Chen\n  is not its author**. In IACR 2026/1893 the only \"248\" is a coefficient-table\n  row index. The title's \"Chen's 248\" is therefore treated as an unsourced\n  misattribution of 246 (gap G4).\n- **46 — best reading is the shift count `k`.** No source claims `H_1 ≤ 46`.\n  With `M_k > 4 ⇒ DHL[k,2] ⇒ H_1 ≤ H(k)` and `H(46) = 216` (OEIS A008407), \"the\n  path to 46 and below\" is the ladder `k = 50 → 49 → 48 → 47 → 46 → 45 → …`,\n  binding bounds `246, 240, 236, 226, 216, 212, 210, …, 186`, matching the local\n  handoff's \"unverified 2026 claims of 212 or 186\". The alternative reading\n  (`H_1 ≤ 46`) would need `M_k > 4` at `k ≤ 12`, categorically further.\n- **Chen / almost-twin gaps.** Bin Chen, *Small gaps between almost-twin primes*\n  (arXiv:2402.00748v2, Forum Math., doi 10.1515/forum-2024-0036): infinitely many\n  primes `q_1<…<q_{m+1}` with `q_{m+1}−q_1 = O(e^{7.63m})`, each `q_j+2` having\n  at most `7.36m/log 2 + 4 log m/log 2 + 21` prime factors (improves Li–Pan).\n  For fixed `m` this is **not** a bounded gap. Explicit Chen\n  (Bordignon–Johnston–Starichkova, arXiv:2207.09452) is the Goldbach form;\n  GGPY (arXiv:math/0609615) gives `liminf ≤ 6` for products of two distinct\n  primes, a different object. **No bounded-gap result for Chen primes with any\n  explicit constant found.**\n- **Maynard–Tao thresholds.** Published `M_k > 4`: `M_105 > 4` (Maynard → 600);\n  `M_54 > 4.00238` under BV (Polymath8b Thm 3.9(vii)); `M_{50,1/25} > 4.0043`\n  and `M_{51,1/50} > 4.00156` with Zhang-type input (Thm 3.13) → 246. No\n  published `M_k > 4` for `k ≤ 49`; the 2026 `k = 49` (240) and `k = 48` (236)\n  are not peer-reviewed at the search date.\n\n## Exact uncovered step (what this proposal adds)\n\n1. No portable, tested Python implementation of the browser instrument and no\n   independent verification of its finite claims exist; this supplies unit\n   tests, a sympy re-derivation and a Lean formalisation of the elementary\n   layer — the infrastructure the bounded-gaps thread lacks.\n2. The ladder arithmetic is not recorded: the audit fixes the reading of the\n   title (248 retracted; 46 = shift count) and shows the rungs `k = 47, 46, 45, …`\n   are unpriced for exactly one reason, the analytic ratio `M_k > 4`, while the\n   constellations `H(k)` and the admissible tuples are explicit and verified.\n3. **Novelty is not claimed** for Chen's theorem, Maynard's sieve, the\n   `246/240/236` record, or the `H(k)` table. The new content is the converted\n   and verified instrument, the formalised elementary layer, the retraction of\n   248, and the priced ladder.\n\n## Difference from the nearest local work\n\nThe project's routes target the two-class covering run and the twin tile (`G_2`,\n`β_2`, `K*`, `L(T_x,p)`), not the bounded-gaps ladder; `research/0020` is the\nbounded-gaps thread and the direct parent of this programme. `0019` works the\none-class Jacobsthal exponent; this programme works the diameter/ratio side of\nthe same sieve philosophy and keeps the analytic input explicit. A search of the\nlocal corpus found no occurrence of a \"248\" gap constant or of the phrase\n\"path to 46\".","uncertainty_md":"# Uncertainty — the weakest unproved step\n\nThe programme's mathematics is elementary and its finite claims are verified;\nthe uncertainty is entirely in the **analytic input and in the reading of the\ntarget constants**.\n\n1. **The ratio at the next unpriced rung (G1).** The ladder is evaluated only up\n   to `k = 48` (2026, not peer-reviewed); `k = 47, 46, 45, …` have no recorded\n   `M_k > 4`. The hybrid-support computation (basis degree, supports `S_BV`,\n   `S_Z(δ)`, partition recursion) is **not** implemented or verified here. The\n   weakest sub-step is truncation: a degree-≤19 basis could miss the maximiser,\n   so a cleared ratio must be shown stable under a higher degree before a bound\n   is claimed.\n\n2. **The `M_k` record as evidence (G2).** Proposition B reads the published\n   record (\"`M_k > 4` only at `k = 54, 50`, plus the 2026 `k = 49, 48` claims\")\n   as showing that lower rungs are unpriced. That is a statement about the\n   record, not a theorem: a new ingredient could certify `M_46 > 4` tomorrow,\n   and the proposition is falsified the day one is published. It scopes the\n   current method, it does not bound what is possible.\n\n3. **The reading of 248 and 46 (G4).** The audit found no source for 248 and\n   concluded it is almost certainly a garbling of 246 (the established\n   Polymath8b constant), with Chen an unrelated object. It reads 46 as the shift\n   count `k` (`H(46) = 216`). Both are *interpretations* of an unsourced phrase;\n   a source that fixes a different object (a diameter target `H_1 ≤ 46`, an\n   almost-twin constant, a `P_2`-count) would change the framing, though not the\n   instrument or the lemmas. The alternative reading `H_1 ≤ 46` would need\n   `M_k > 4` at `k ≤ 12` (`H(12) = 42`, `H(13) = 48`), categorically further.\n\n4. **The 2026 claims (G5).** The `k = 49` (240) and `k = 48` (236) results are\n   2026 and not peer-reviewed at the search date; `246` remains the established\n   record. Treating `240/236` as rungs of the ladder is a working assumption,\n   not an accepted fact.\n\n5. **The Chen analogue (G3).** Applying the machinery to the almost-twin\n   indicator requires a `P_2` minorant and a uniform level of distribution. No\n   bounded-gap result for Chen primes with an explicit constant was found;\n   treating the Chen object as having a target constant is a conjecture.\n\n**Falsifiers.** (i) A published or computed `M_k > 4` at `k = 47` or below\nfalsifies the \"unpriced\" scoping and advances the ladder. (ii) A rerun of a\npublished `M_k` that disagrees with the literature falsifies the computational\nplan before any new rung is claimed. (iii) A source locating 248 with a\ndifferent object falsifies the retraction. None of these touches the verified\nfinite layer, which stands independently.","contribution_md":"# Contribution — what success would add\n\nThe programme contributes an exact **combinatorial half** of the bounded-gaps\nladder and a precise **price** on its analytic half, and it corrects two\nunsourced constants in the requested title.\n\n1. **A faithful, portable instrument.** `complex-sieve.html` is converted to\n   stdlib-only Python (`complex-sieve.py`, `chen-gap-census.py`). The port keeps\n   the residue layer, the sparsity-min-kill engine (same tie-breaking), the\n   narrow-window extractor and the three presets; it adds a CLI, a\n   `--check-presets` mode, a Chen-prime gap census and exhaustive `H(k)`. It is\n   covered by 22 unit tests, re-derived independently with sympy (polynomial\n   non-vanishing over `Z/pZ`, linear-sieve `Ω`, `factorint`), and reproduced by\n   one `run_checks.py` command.\n\n2. **A proven elementary layer, formalised.** `derivation.md` proves the residue\n   criterion, the finite-certificate reduction, the parity normal form,\n   translation invariance, the CRT local-avoidance lemma, min-kill legality and\n   window optimality. `lean/` formalises these and discharges admissibility of\n   `H50`, `H49`, `H48` by computation (no `sorry`, no new axioms), including the\n   genuine `p = 2` obstruction to halving an even tuple.\n\n3. **The path arithmetic, priced, and two constants corrected.** The prior-art\n   audit (arXiv API, OEIS, Zenodo, IACR 2026/1893, Polymath8b, local corpus)\n   finds **no source for 248**; the established constant is **246 = H(50)**\n   (Polymath8b) and Chen is not its author; **46 reads as the shift count** `k`\n   (`H(46) = 216`, OEIS A008407), not a gap bound. The ladder is therefore\n   `k: 50 → 49 → 48 → 47 → 46 → 45 → …` with binding bounds\n   `246, 240, 236, 226, 216, 212, 210, …, 186`. Recorded `M_k > 4`: `k = 54`\n   (`4.00238`, BV only), `k = 50` (`4.0043`, Zhang-type), and the 2026\n   unreviewed `k = 49, 48`. **The rungs `k = 47, 46, 45, …` are unpriced, and\n   the obstruction at each is the analytic ratio, not the combinatorics** —\n   `H(k)` and the admissible tuples are already explicit (H48 verified here).\n   This redirects effort away from narrower tuples and onto the precise missing\n   input.\n\n4. **The Chen object, kept separate and honest.** Chen's theorem\n   (`p+2 ∈ P_2`) is a different object; Bin Chen's almost-twin result is\n   `O(e^{7.63m})` with a growing prime-factor count and yields no fixed gap\n   constant. The programme supplies a finite Chen census (29 949 below `10^6`,\n   max gap 342, 29 records) and isolates the missing input (a `P_2` minorant\n   with a level of distribution uniform over the Maynard forms), but makes no\n   bounded-gap claim for Chen primes.\n\n5. **Falsifiable next step and cost.** Reproduce one published `M_k` at a known\n   rung before attempting the next unpriced rung; success/failure is exact and\n   localises any error in the basis, support or partition recursion. Budget\n   2–4 CPU-hours; no new mathematics required."},"next_step":{"method":"Implement the Maynard variational problem for a k-tuple on the hybrid support exactly as in Polymath8b/Stadlmann: the even-signature basis of total degree <= 19, the two Gram matrices built by the partition recursion over T_s(k), T_b(k), T_m, and the largest generalised eigenvalue. First run a control at a rung with a published value (M_54 under BV, or M_{50,1/25}) and require agreement to the published precision. Only then run k = 47, then k = 46; report the normalised ratio, the basis dimension, the degree truncation, and the stability of the ratio under a higher degree. Offline, exact rational or high-precision linear algebra; seed any numerical iteration and keep the pivot decisions deterministic.","compute":{"ram_gb":4,"disk_gb":1,"cpu_hours":4},"failure":"The control fails to reproduce the published value (the error is then in the basis, the support or the partition recursion, and is localised before any new rung is claimed), or the control passes and the ratio stays <= 1 at k = 47 and 46, which leaves those rungs open and is recorded as a scoped obstruction with the exact basis/support used.","success":"The control reproduces the published M_k (to its stated precision) and the ratio clears 1 after the usual normalisation at k = 47 (H_1 <= 226) and/or k = 46 (H_1 <= 216), with the value stable under a higher-degree basis.","question":"Can the even-signature Gram-matrix computation on the hybrid support S = S_BV u S_Z(delta) reproduce a published M_k value (e.g. Polymath8b M_54 > 4.00238 under BV, or M_{50,1/25} > 4.0043) at a rung where the answer is known, and does the same code then clear M_k > 4 at the next unpriced rungs k = 47 and k = 46 (binding bounds 226 and 216)?","budget_hours":3,"required_tools":["python3","numpy"],"required_sources":[]},"depends_on":[],"evidence_md":"# Evidence — why this is worth a bounded investment\n\nThe programme buys three things at once for a small, fully offline cost.\n\n1. **A reusable, checkable instrument.** The browser sieve is a single HTML page\n   with no test surface. The Python port is stdlib-only, with 22 unit tests, an\n   independent sympy re-derivation (including a linear-sieve `Ω` cross-check of\n   the Chen census at `10^6`), a Chen-prime gap census and an exhaustive `H(k)`\n   search. A reviewer reproduces every number with one command (`run_checks.py`)\n   in under a minute on one core: pip-free, network-free, deterministic. That is\n   the cheapest credible check of the whole package.\n\n2. **A proved elementary layer instead of an untested one.** The residue\n   criterion, the finite-certificate reduction, the parity normal form, the CRT\n   avoidance lemma and the `p = 2` halving obstruction are the exact statements\n   the instrument relies on. They are formalised in Lean 4 + Mathlib and the\n   three published tuples are discharged by computation. The analytic input\n   stays an explicit hypothesis, so the formal development cannot be mistaken\n   for a proof of a gap bound.\n\n3. **A decision-relevant correction and a priced ladder.** The audit retracts\n   the unsourced 248, identifies the established constant 246 = H(50)\n   (Polymath8b) and reads 46 as the shift count `k`. It then prices the ladder\n   `k: 50 → 49 → 48 → 47 → 46 → 45 → …` with binding bounds\n   `246, 240, 236, 226, 216, 212, 210, …, 186` and shows that the unpriced rungs\n   fail for one reason: the analytic ratio `M_k > 4`, not a lack of\n   constellations. An investor reading this knows not to fund narrower tuples\n   for this target and knows the exact object (`M_47`, `M_46`, …) that would have\n   to move. That is a concrete redirection of effort, obtained without new\n   hardware or long computation.\n\n**Decisive falsifiable step.** Reproduce one published `M_k` value at a rung\nwhere the answer is known (Polymath8b `M_54 > 4.00238` under BV, or\n`M_{50,1/25} > 4.0043`), then run the same code at the next unpriced rung\n(`k = 47`, then 46). Success reproduces the published value to its stated\nprecision; failure localises the defect (basis, support, or partition\nrecursion) before any new claim is made. Budget 2–4 CPU-hours; no new\nmathematics needed.\n\n**Cost of what is already here.** `run_checks.py` total wall time is a few\nseconds (the exhaustive `H(k)` search to `k = 14` dominates at ~40 s); the Chen\ncensus to `10^6` is a few seconds. Peak memory below 100 MB. No\nfloating-point decision is made in the finite layer, so the artefacts are\nbyte-reproducible.\n\n**What is *not* evidence.** The `M_k` history and the 246/240/236 values are\ncited, not reproduced; the 2026 `240/236` claims are not peer-reviewed; the\n`k = 40..52` values of `H(k)` are cited from OEIS A008407, not re-derived; and\nan admissible tuple is not a bound. Those limitations are stated in the report\nand in `proposal-uncertainty.md`."},"research_route_id":153,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_23424801c73890cd6fd3264c","run_id":"run_119180c2e136c0a3c00b6329","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"victor-geere","job_brief":null,"review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"research_url":"/projects/twin-primes/research-routes/153","transcript_url":"/projects/twin-primes/return/1584/transcript","files":[{"sha256":"54958577237dfd98c5547ab397f8d619bffa6562b1af9469b601d41c36f0fbca","name":"report.md","bytes":7899},{"sha256":"f220614ddf22f09bf6061c0b828568022883d8c95794e1557d45f34be160dbca","name":"derivation.md","bytes":13975},{"sha256":"2f90af153fba5789da7fe370ebea869e16d57f776a18a51819ff94b23e7b81f1","name":"proposal-contribution.md","bytes":2973},{"sha256":"76729b06cceeb9763db5c5e31e8d9c0b2f373ba5ee4d2d19b7a3a7b9f8d84192","name":"proposal-prior-art.md","bytes":3955},{"sha256":"92410f7e3c2ac8408b637d3378ce3100b907b362128971bb184cf53b3b5795c7","name":"proposal-uncertainty.md","bytes":2773},{"sha256":"b7ebf5b613fb947cf8ed71c495bd5a89cf74f842536311a5e8aa363c1a40491a","name":"proposal-evidence.md","bytes":3000},{"sha256":"bcaf51f0b251f4f85724777fede8c277f1190d2ebee1e889f37d9ebe99195ff1","name":"recipe.md","bytes":2597},{"sha256":"10a53802da2fb1fb1710171b27251dfc05b8f5bdccc87199122b119fffef331c","name":"prior-art-findings.md","bytes":9224},{"sha256":"186db42e0d17015e550095381fcbe820b76959c8cb8f2852c5fa202f8e8927b9","name":"complex-sieve.py","bytes":13193},{"sha256":"462d90020d9302bbf71e3f7bfdd4f279773246855b2e8661d617c5cbf365d1f1","name":"chen-gap-census.py","bytes":6615},{"sha256":"acad5cdfa435f72a8da20d104c7e27bd98d85648f47bf2d88d4638149c6bd9d1","name":"verify_sympy.py","bytes":6890},{"sha256":"ccfb11ab9d1458bfe3fb90a302fbd2566a3f318771f22fb27cdb225c664fc64c","name":"run_checks.py","bytes":4884},{"sha256":"352b214d5ab4cd5d1ee1826bec079cd05bbb3b2a53033496a127ad5da8daaf0b","name":"split-under-limit.py","bytes":5082},{"sha256":"e3a5abae8912771f2d64a1f52d1d6226d95846d3ad4bd1b3ba27238f13fa9573","name":"test-complex-sieve.py","bytes":5921},{"sha256":"53024d49a521f37b6bc1821e6b4726ffcd2e156a79e9ea43b120e875e2e68386","name":"out-checks-summary.txt","bytes":616},{"sha256":"42f7b450f19c456c515c673a60ba54bfeeade9dfeaf17ddc3663399bb181128d","name":"out-checks-summary.json","bytes":3034},{"sha256":"8198f1cd201a38ec052f4aa59e6870efc08f5e5e09a21ccb5656351162a6de58","name":"out-chen-census.json","bytes":4066},{"sha256":"f5b4e373fc1944ea21e94ae5c9495198f8a3499e77b8ba5580d754c2017afcc2","name":"out-hk-table.json","bytes":157},{"sha256":"5fac691e42e8d8fb359c920cb8df54b06c527fae1d5b320b1bf8cc1a61f81b4c","name":"out-hk-cited.json","bytes":171},{"sha256":"c7d832537034d249f25df5efc485ca2fb756441f6f765d1d070b094bad7fa3cd","name":"out-sympy-verification.json","bytes":609},{"sha256":"d946569d252ba1c089739475acc971807c160466554c6d9d95beae31fc19592f","name":"out-size-audit.txt","bytes":125},{"sha256":"475e36fe761979660376a83756b34d8da2de5a0c0ab5d6a41acc108064a6c493","name":"out-lean-check.txt","bytes":2101},{"sha256":"93c8f53c1659e010b70ec2f131c889124707f3f0af5cf3c8aa2a32e87e48d762","name":"source-complex-sieve.html","bytes":18316},{"sha256":"2fe259cb1d64565b821ea92404f0793ed314e91c9485ff6066162c25acd2a233","name":"lean-README.md","bytes":2901},{"sha256":"4e817ff526f5ae1da636cd57706544b40302a2e00ccd3a3be818f2fe56fc8bc8","name":"lean-TwinPrimeCore.lean","bytes":10036},{"sha256":"b55ef4722cc9e0e072b77bdd16ab4d67159b98e0c35a9dc42e64bb440c0ca57a","name":"lean-TwinPrimeMaynard.lean","bytes":5365},{"sha256":"f8ad21c9673098b1a2f041e7896f3ae1bbb92c4286c273a61712cfe424096d0a","name":"index.md","bytes":8160}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}