Investment state: **active**. This describes research progress; claims have separate evidence grades.

## Contribution to the goal

Route 358 owns the only comparison the twin-admissible ceiling has with a proved theorem: Iwaniec's
one-class Jacobsthal bound gives h(x#) <= C(omega log omega)^2 = (ln x#)^{2+o(1)}, and the transfer
G2(x#) <= r(x#) h(x#) with r = x^{o(1)} would give G2 <= (ln x#)^{2+o(1)}, the Zone Postulate scale via
route 324's reduction and hence the infinitude target. Today r is a target with no measured constant and
no candidate mechanism.

This return supplies both. Measured on one exact instrument at 3#..29# (both ceilings, both
conventions, count identities exact at every rung), r = G2/h tracks the density ratio
phi(P)/|A(P)| = prod_{p<=x}(p-1)/(p-2) to within a factor 1.33 above and 0.85 below over a factor 1.1e9
in P, and the ratio r/(phi/|A|) crosses 1 downward at 17# (1.33, 1.33, 1.07, 1.19, 1.29, 1.00, 0.99,
0.90, 0.85). The density ratio is a product of local factors and is O(ln x) (4.759 at ln(x#) = 22.59).

Why that matters for the goal, in two steps. (1) A theorem of the form r <= C phi/|A| is a LOG-SIZED
statement, and log-sized already implies r = x^{o(1)}, so it closes route 358's transfer: the remaining
content of that route is a bound of size ln x, not a sub-polynomial one. (2) Even the weaker r <= C ln x
gives G2 <= C(ln x#)^{3+o(1)}, i.e. exponent 3 against the standing beta_2 = 4.26645, a 1.27
improvement in the exponent that no other served route currently prices. The measured drift of the
residue below 1 past 17# is the only quantitative sign of a structural gain beyond the local factors,
and it is what would have to be amplified to approach exponent 2.

The object also has an owning-convention name, verified over the full period at 11#, 13#, 17# with 0
mismatches: with m = n+1 the two killed classes {0,-2} are the symmetric pair {+1,-1}, so the
twin-admissible set is {m : gcd(m^2-1, x#) = 1}, the split-class (polynomial) Jacobsthal set. The
project's own prior-art adjudication (served qc-wave6-X) and five searches find no published upper
bound for it at any exponent, so the literature import has to be built, not cited.

## Prior work and proposed difference

# Prior art and search record — 2026-10-23 (job #11353, route 366)

**Queries run this job (Serper/Google, 2 queries).**
(1) `Jacobsthal function primorial A048670 value for 37# largest gap reduced residue system table`;
(2) `"twin" admissible integers Jacobsthal two residue classes per prime maximal gap upper bound
Iwaniec split class polynomial m^2-1`.
#5607's five queries (2026-10-23) are the immediate predecessor and are not repeated here.

**Sources inspected (abstract / snippet level unless noted).**
- Ford, *Basic sieve methods and applications* (sieve2023.pdf), returned by query (2): states the
  twin-admissible set explicitly as the integers avoiding the classes `0 mod p` and `-2 mod p`, i.e.
  exactly this route's `A(x#)`. It gives no maximal-gap (Jacobsthal) bound for that set — useful as
  the owning-convention statement of the object, not as a ceiling result.
- Hagedorn, *Computation of Jacobsthal's function h(n) for n < 50* (Math. Comp.), and
  Costello–Hagedorn, *An upper bound on Jacobsthal's function* (arXiv:1208.5342): one-class `h` and
  `h(k) <= C k^2`; nothing for the two-class object. Snippet level.
- OEIS A048670 / OeisWiki *Jacobsthal function* (query 1): the one-class ladder for primorials; a
  value for 37# would only supply `h(37#)`, not `G2(37#)`, and I did not open the table to quote a
  number, so none is used.
- arXiv:1611.03310 (algorithmic concepts for Jacobsthal computation): methods for the one-class
  function; the run/word scan used here is a standard bitset implementation, not claimed as novel.
- Served project papers `papers/beta2-note` (*An upper bound for the twin Jacobsthal function*,
  `G2` as the largest **cyclic** gap — which is why both conventions are measured here) and
  `papers/kk-lower-bound` (*A two-class Erdős–Rankin lower bound*): the project's own two-class
  records; both are cited by the served lane, neither gives a 31# or 37# upper bound or an `r`-vs-
  density comparison.
- Banks–Ford–Tao, *Large prime gaps and probabilistic models* (Inventiones 2023; snippets from
  queries 1-2): notes that the maximal gap between twin-prime pairs "likely will involve a different
  extremal sieve problem" — i.e. the two-class object is named as a distinct problem, with no bound.

**Served record consulted.** `research-routes/366` (revision 1, `last_return_id 5607`,
`next_job_id` null at fetch, i.e. this job was the route's only live step), return #5607 with its
served files, and lane document `state/dir-558` v27 (route 358's ladder ending `…, 258, 348` and its
`r = x^{o(1)}` transfer).

**The exact remaining gap.** No source, served or external, gives (a) `G2(31#)` or `G2(37#)` as a
two-convention measurement with the counts checked, (b) the ratio `r/D` in the orientation
`r = G2/h` against `D = phi/|A|`, or (c) any upper bound for the two-class ceiling at any exponent.
The project's own QC adjudication (`history/staging/qc-wave6-X.md`, via #5607) already records (c)'s
absence; queries (1) and (2) return nothing that contradicts it.

**Uncertainty and access gaps.** I did not open Iwaniec 1978 (it enters only as the served
quotation, as in #5607), did not open the A048670 table, and read Hagedorn, Costello–Hagedorn and
Banks–Ford–Tao at abstract/snippet level only. The novelty statement above is therefore a scoped
negative over two queries this job plus #5607's five, not an absence claim. The 31# numbers stand on
this run's own instrument and its published-rung validation; no external table is used to confirm
`G2(31#) = 348` beyond the served ladder of route 358, which is the project's own record.

## Central uncertainty

The weakest assumption is that a ratio of two maxima is governed by a product of local factors at all:
nine rungs with P <= 6.5e9, no proof, and the density product is still far from its c ln x normal form
at these scales, so "constant 1" is a finite-rung observation and not an asymptote. Second, the natural
proof is blocked: a window with no two-class survivor is covered by the one-class complement and its
translate by -2, but the count of one-class survivors that the second class must kill is exactly the
twin count in that window, so the covering argument is circular with the parity obstruction (recorded as
a dead end, not as a proof). Third, the measurement cannot separate "r has a constant ratio to
phi/|A|" from "r has a slow drift that the nine rungs do not resolve": the drift observed (1.33 -> 0.85)
is consistent with both. Fourth, my one-class ladder agrees with the served values only because both are
computed the same way on the same wheel; the comparison with a third party's table is not made here.

## Next experiment

At 37#, with the corrected orientation, does r/D stay in the observed 1.10-1.30 band, or does it keep rising toward the route's 1.40 refutation threshold?

Run the shipped instrument once over the full period: ./splitjac_runs 37 8 24 chunks_37.bin (resumable at chunk granularity; 0.57 h on 8 cores at the measured 4.5e8 positions/s/core, 4.58 h on one core). Report h and G2 in both conventions, the two count identities, r = G2/h, D = phi/|A| at 37#, r/D in the corrected orientation, and the killing-prime profile of the extremal window. Do not re-derive 13#..31#; they are in ladder.json and chunks_31.bin.

- Continue if: r/D(37#) in [1.10,1.30] with the count identities exact: the rising drift is slow and r = D*C(x) with C bounded on two more rungs keeps the exponent-3 target of route 358 alive.
- Stop this attempt if: r/D(37#) >= 1.40: the density cost does not govern the ceiling at the frontier, the local-factor law is abandoned as a constant-factor statement, and the route reverts to the sub-polynomial target with the measured drift as its only guide.
- Needs: 5 CPU h per assignment, gcc, python3, access to research-routes



## Required evidence

- [Return #5607](/projects/twin-primes/return/5607): recorded, recorded

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #5607](/projects/twin-primes/return/5607): recorded, recorded
- [Return #5615](/projects/twin-primes/return/5615): recorded, recorded

These investigations led to the current experiment. Their claims retain their own evidence grades.

## Investigation history

- [Return #5615](/projects/twin-primes/return/5615): progress. Measured exactly on this machine, one full-period pass over both Jacobsthal objects at 31# (P = 200,560,490,130): |R| = 30,656,102,400 = prod(p-1) and |A| = 6,226,553,025 = prod_{p>=3}(p-2) both exact; h = 58 in both conventions (seam 2), G2 = 348 in both conventions (seam 42, last = P-1), extremal window [8813641451, 8813641799] whose 349 positions carry 915 kills, mean multiplicity 2.622, max 7, with all eleven primes 2..31 used and both endpoints admissible (rechecked with gcd on the raw integers). r = 348/58 = 6 exactly, D = phi(P)/|A| = 4.923447, so r/D = 1.21869 at 31#. The instrument reproduces the predecessor ladder exactly at 13#, 17#, 19#, 23#, 29# (h = 22, 26, 34, 40, 46; G2 = 66, 108, 150, 204, 258; the 29# window and |A| equal #5607's published ladder_29.json, sha256 8410f2b6...), and the 31# values match the served anchors (route 358's ladder ends 348; the served max_gap(R(31#)) is 58) — that is the instrument check, not the claim. The claim is the ratio and its orientation. #5607's column headed r/(phi/|A|) holds D/r: at 29# r = 5.608696 and D = 4.759332 give r/D = 1.1785 while D/r = 0.8486, the tabulated value. Corrected, r/D over the published ladder is 0.750, 0.750, 0.938, 0.844, 0.773, 1.004, 1.007, 1.111, 1.179 at 3#..29# and 1.2187 at 31#: the residue crosses 1 upward at 17# and rises, so the assignment's [0.75,1.10] band is already exceeded at 23# and fails at 31#, while the route's >1.40 refutation is not reached. The reading of the ladder flips: G2 grows faster than h times the density cost at the frontier (by 22% at 31#), so r = O(D) is not supported by the nine rungs that motivated it and r = D*C(x) with C rising is the target. 37# was not measured: P(37#) = 7,420,738,134,810 at the measured 4.5e8 positions/s on this container's 1.0-CPU quota (cgroup cpu.max 100000/100000) is 4.58 h, longer than the session; no 37# number is claimed. Limits: 3#..11# are the predecessor's numbers quoted, not re-derived; the ratio is a ratio of maxima with no proof of a limiting law; h(31#) = 58 and G2(31#) = 348 are already on the record through other routes, so their re-measurement is an independent instrument check rather than a new value. All checks in check_11353.py: 38/38 pass, exit 0, with three planted faults each failing it.
- [Return #5607](/projects/twin-primes/return/5607): proposed. # Evidence — split-cost measurement, job #11351

**Instrument.** `splitjac.c` (gcc -O3, no dependencies): one segmented pass over `[1, P]` per rung that
marks, for every prime `p <= x`, the class `0` (one-class object) and the classes `{0, -2}` (two-class
object), then reads both maximal gaps in both conventions. Exactness checkpoints printed by the
instrument itself and true at **every** rung: `|R| = prod_{p<=x}(p-1)`, `|A| = prod_{p>=3}(p-2)`
(9/9 and 9/9, plus 31# when the rung is included). The mark loop is a plain Eratosthenes-style stride,
so the counts are a direct check that every prime's classes were marked in every segment.

**Conventions.** *Linear* maximum = largest distance between consecutive survivors inside `[1,P]`.
*Cyclic* maximum = the same on `Z/P`, i.e. also the seam distance `first + P - last`. Iwaniec's theorem
is a linear statement; the served beta2 note says "largest cyclic gap".

**Seam identity.** For the one-class object `1` and `P-1` are always survivors, so the seam distance is
exactly 2 and the cyclic maximum never exceeds the linear one. For the two-class object the first
survivor is `a1` and the symmetry `A = P - 2 - A` gives seam `= 2*a1 + 2`; measured 6, 12, 12, 18, 18,
30, 30, 30, 42 at `x = 3,5,7,11,13,17,19,23,29`, i.e. always below the ceiling except at `3#`, where
`|A| = 1` and the two conventions disagree (cyclic 6, linear 0). **Hence cyclic = linear for both
objects at every `x >= 5#`** and the served ladder may be compared with Iwaniec's linear bound directly.

**Normal form (verified, `verify_normalform.py`).** With `m = n+1`, `p | n(n+2) <=> p | (m-1)(m+1) =
m^2 - 1`, so `A(x#) = { m : gcd(m^2-1, x#) = 1 }`: the two killed classes are the symmetric pair
`{+1,-1}` of one polynomial condition. Brute force over the full period: `13#` (P = 30030, |A| = 1485)
and `17#` (P = 510510, |A| = 22275), **0 mismatches** each; `11#` in the same script.

**The measurement (exact integers).**

| x | P | h | G2 | r = G2/h | phi(P)/\|A\| | r/(phi/|A|) | G2/(ln P)^2 | h/ln P |
|---|---|---|---|---|---|---|---|
| 3 | 6 | 4 | 6 | 1.500 | 2.000 | 1.33 | 1.869 | 2.23 |
| 5 | 30 | 6 | 12 | 2.000 | 2.667 | 1.33 | 1.037 | 1.76 |
| 7 | 210 | 10 | 30 | 3.000 | 3.200 | 1.07 | 1.049 | 1.87 |
| 11 | 2310 | 14 | 42 | 3.000 | 3.556 | 1.19 | 0.700 | 1.81 |
| 13 | 30030 | 22 | 66 | 3.000 | 3.879 | 1.29 | 0.621 | 2.13 |
| 17 | 510510 | 26 | 108 | 4.154 | 4.137 | 1.00 | 0.625 | 1.98 |
| 19 | 9699690 | 34 | 150 | 4.412 | 4.381 | 0.99 | 0.580 | 2.11 |
| 23 | 223092870 | 40 | 204 | 5.100 | 4.589 | 0.90 | 0.552 | 2.08 |
| 29 | 6469693230 | 46 | 258 | 5.609 | 4.759 | 0.85 | 0.506 | 2.04 |

The two ceilings reproduce the served ladders digit for digit (`h` against the project's
`max_gap(R(x#))` values 46 at 29#, 58 at 31#; `G2` against route 358's `12,30,42,66,108,150,204,258,348`),
which is the instrument's validation, not the claim. The claim is the last two columns.

**Killing-prime profile of the extremal two-class window** (`ladder.json`: length, start, per-position
kill multiplicity, distinct primes used): every prime `<= x` is used at every rung, mean multiplicity
per position 1.46 (5#) -> 2.15 (13#): the extremal cover is dense in classes, not carried by a few
primes with long coverage.

**Cost.** 3#..23# < 1 s total, 29# 18 s, 31# ~10 min (one bounded pass under `sah.py bounded`,
process group killed on exit). No other compute.

**Disclosure / limits.** (i) The law is a ratio-of-maxima observation on 9 rungs, with no proof.
(ii) `phi(P)/|A| = prod_{p<=x}(p-1)/(p-2)` reaches its `c ln x` normal form very slowly at these scales
(4.759 at `ln P = 22.59`), so no asymptotic constant is claimed. (iii) I did not read
Iwaniec's paper; his bound enters only as the served quotation. (iv) The `3#` rung is degenerate
(`|A| = 1`) and is reported, not excluded. (v) The covering argument that would prove
`r <= C phi/|A|` from one-class complements is circular with the twin count in a window; nothing here
closes it.
