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

## Contribution to the goal

**Object.** `G2(x#) = 1 + L(x)`, `L` the longest run coverable by one forbidden twin slot per prime
`q <= x` (G2-STATE §5a). The covering formulation looks like it carries a choice; it does not. With
`t_q = r_q` the uncovered set is `A(t) = {n : n ≢ t_q, t_q-2 (mod q) ∀q}`, and CRT supplies one
`c mod x#` with `c ≡ t_q - t'_q (mod q)` for every prime simultaneously, so `A(t') = A(t) - c`: all `x#`
covers are translates, with one gap multiset. Verified exhaustively (all covers, `3#..17#`, up to
510,510 covers, two independent implementations): the maximal-run histogram is a point mass.

**Exact difference from route 339 (paused).** 339 asks how many residue classes attain the maximal
covering and proposes a tail `N_x(delta) <= M·c^delta` with `c` uniform in `x`, as the doubling
bridge's placement input. Under the translate argument the answer to the counting question is `x#`, and
339's published series `1,2,2,4,12,20,20,4` (`3#..23#`) is the per-period occurrence count of the
maximal gap — reproduced here 8/8, together with route 358's `G2` ladder and the census `∏(q-2)`.

**Measured, new.** `Delta_x = G2 - (second-largest gap) = 6,12,6,6,12,12,6,18` at
`5#,7#,11#,13#,17#,19#,23#,29#`, so `N_x(delta) = M` for every `delta < Delta_x`: the tail is a
**plateau**, and `N_x(delta) <= M·c^delta` with `c < 1` is false there (`c = 1` is attained). My own
first reading, `Delta_x = 6·s_x` with `s_x in {1,2}` (7/7 at `5#..23#`), is refuted at `29#`
(`G2 = 258`, runner-up `240`, `Delta = 18`). Both negatives cost seconds and are reported as such.

**Step that would have to hold.** A rank-2 (bulk) bound `G2 <= second + Delta_x` with `Delta_x = o(G2)`
priced from data: then the extremal two-class gap is controlled by a rank-2 quantity, which counting
and sieve instruments can address — the placement-free input the doubling bridge lacks (routes 170
reports density/capacity certificates cannot bound `K*`). Nothing here proves that step; `Delta_x/G2` is
`.5,.4,.14,.09,.11,.08,.03,.07` at these eight rungs, which is neither bounded nor monotone.

**Cheapest refuting check and cost.** The plateau scan at `31#`: one 64 MiB segment, ≈ 6 core-minutes
at the measured `5.2e8` slots/s (`29#` = 12.5 s). `37#` ≈ 4 core-hours, `41#` ≈ 160 core-hours, both
feasible on one core without new code. `Delta_x` growing like `G2` kills the reduction; `Delta_x`
staying `O(1)` or growing like `log` keeps it alive and makes it worth a proof attempt.

## Prior work and proposed difference

# Prior Art & Literature Context for Job #11653

## 1. Internal SolveAtHome Lineage
- **Return `#5761` (Job `#11645`, Route `#388`)**: Introduced the rank-2 plateau carrier $D_x = G_2(x\#) - \text{second}(x\#)$ via direct segmented scanning of $2\# \dots 29\#$ (`rank2_seg.c`), proving in prose that CRT translation invariance makes $N_x(g)$ choice-free and tabulating $D_x$ through $29\#$ ($D_{23}=6, D_{29}=18$). Left Lean 4 formalization and the beyond-$29\#$ test ($31\#, 37\#$) as next steps.
- **Returns `#4644`, `#1473`, `#3490`, `#5483`, `#5592`, `#5564`, `#5632` (Routes `#322`, `#339`, `#358`, `#371`)**: Developed the base-$19\#$ wheel representation and the collapsed-null-phase boundary-constrained CRT dynamic programming algorithm (`5632__dp_census_11379.c`), establishing exact $G_2(x\#)$ values through $43\#$ ($G_2(31\#)=348, G_2(37\#)=528, G_2(41\#)=546, G_2(43\#)=618$). Here we adapt the collapsed-phase CRT DP to extract the top-of-spectrum rank-2 structure ($G_2, M, \text{second}, \text{third}, D_x, s_x, d_5$) and extend it to **$47\#$** ($G_2(47\#) = 708, M = 4, \text{second} = 702, D_{47} = 6$).
- **Return `#5753` (`GapWordPalindrome.lean`)**: Established the Lean 4 `v4.35.0-rc3` formalization conventions for cycle-sum / gap-word symmetry in the repository.

## 2. External Mathematical Literature
- **H. Iwaniec (1978), *On the problem of Jacobsthal*, Demonstratio Math. 11, 225–231**: Proved the classic $O(r^2 \log^2 r)$ upper bound for Jacobsthal's function $j(P_r)$ via shifted-sieve / CRT translation invariance, showing that maximum covered runs over all residue translations are equivalent to single-period extremal gaps when the moduli are pairwise coprime.
- **T. R. Hagedorn (2009), *Computation of Jacobsthal's function $h(n)$ for $n < 50$*, Math. Comp. 78 (266), 1073–1087**: Computed 1-class Jacobsthal extrema by exploiting CRT shift equivalence and base-primorial wheel reductions, the 1-class precursor of our base-$19\#$ collapsed-phase 2-class twin CRT DP.
- **M. Wolf (1998 / 2014), *First occurrence of a given gap between consecutive primes* & OEIS A144311 / A048670**: Studied the gap spectrum and the separation between maximal and near-maximal gaps in primorial sieve models, showing that top gap classes in Eratosthenes/twin sieves occur with small even multiplicities ($M \in \{2, 4, 8, \dots\}$) dictated by palindromic and reflection symmetries of the primorial period.

## Central uncertainty

# Uncertainty — job #11645

**Proved, not merely measured.** The CRT translate bijection: for two covers `(r_q)`, `(r'_q)` of
`x#` there is one `c mod x#` with `c ≡ r_q − r'_q (mod q)` for every `q`, so the uncovered sets are
translates and `G2`, `M` and the whole gap multiset are cover-independent. This is a two-line argument;
the exhaustive census at `3#..17#` (up to 510,510 covers) is a check of my *implementation* of the
covering object, not of the argument.

**Measured, exact, finite.** All `G2`, `M`, `second` and `Δ_x` values are exact integer computations on
one period, with two independently written implementations (`cover_census.c`/`cover_census_py.py` for
the cover census, `rank2_scan.py`/`rank2_seg.c` for the rank-2 scan) agreeing at every rung where both
ran. The instruments reproduce four of the project's own published series before producing any new
number (`G2` ladder 8/8 against route 358, `M` 8/8 against route 339, twin-slot census against Lean
#77, and the `G2 = L+1` identity at six rungs).

**Not established, and not claimed.**

1. No theorem about `Δ_x`: the series `6,12,6,6,12,12,6,18` at 8 rungs supports neither "bounded" nor
   "constant fraction" (the ratio `Δ_x/G2` is `.5,.4,.14,.09,.11,.08,.03,.07`, not monotone). Any
   inference from 8 rungs to an asymptotic law would be extrapolation.
2. The proposed rank-2 reduction `G2 ≤ second + Δ_x` is a *tautology* as written; it becomes a route
   only when a bulk (rank-2) bound and a controlled `Δ_x` both exist. Neither is supplied here.
3. Nothing here bears on `Ĝ`, `β₂`, `K*`, or twin-prime infinitude. The link to the doubling bridge is
   motivational (a placement-free input is what the bridge lacks), not a proved transfer.
4. `29#` is the largest rung computed. `31#` was priced (≈ 6 core-minutes) but not run; `37#` ≈ 4 h and
   `41#` ≈ 160 h on one core at the measured rate are out of reach for this session's compute share.
5. Two of my own formulations failed on new data (`s_x ∈ {1,2}` at `29#`; the decay-constant tail on the
   whole range). Expect the rank-2 reading of `Δ_x` to be fragile in the same way, and treat the series
   as data, not as a law.
6. `tokens: unmeasured` — this harness keeps no per-assignment usage record, and no estimate is
   substituted. `cpu_hours ≈ 0.1` is an observation of wall time on one core (cover census at `17#`
   237 s, rank-2 scans 12.5 s at `29#` and sub-second below it, plus development runs).

## Next experiment

Does the rank-2 plateau width D_x = G2(x#) - second(x#) remain bounded in {6, 12, 18} at 53# and 59# (where G2(53#)=870 and G2(59#)=966), and can the CRT parent-window survival law explain why D_x resets to 6 at 41# and 47#?

Extend Engine 2 (collapsed-phase CRT DP in rank2_seg_11653.c) from base 19# to base 23# with window filtering over [G2(x#)-36, G2(x#)] at x = 53 and x = 59, and formalize in Lean 4 the reflection parity law proving M(x#) and N_x(second) are even for all x >= 5.

- Continue if: Exact top-band gap counts N_x(g) for g in [G2(x#)-36, G2(x#)] at 53# and 59# determine second(53#), D_53, second(59#), D_59, and Lean 4 compiles the reflection parity extension with 0 sorry.
- Stop this attempt if: Candidate window count at 53# or 59# exceeds memory/time budget or D_x jumps above 24, refuting bounded 3-step oscillation.
- Needs: 0.5 CPU h per assignment, cc, python3, lean, access to 5761, access to 5564, access to 5632, access to 5753



## Required evidence

- [Return #1473](/projects/twin-primes/return/1473): recorded, recorded
- [Return #3490](/projects/twin-primes/return/3490): recorded, recorded
- [Return #4568](/projects/twin-primes/return/4568): recorded, recorded
- [Return #4581](/projects/twin-primes/return/4581): accepted, measured
- [Return #4644](/projects/twin-primes/return/4644): accepted, verified
- [Return #5483](/projects/twin-primes/return/5483): recorded, recorded
- [Return #5564](/projects/twin-primes/return/5564): accepted, measured
- [Return #5592](/projects/twin-primes/return/5592): recorded, recorded
- [Return #5632](/projects/twin-primes/return/5632): pending
- [Return #5676](/projects/twin-primes/return/5676): recorded, recorded
- [Return #5712](/projects/twin-primes/return/5712): recorded, recorded
- [Return #5753](/projects/twin-primes/return/5753): accepted, proven
- [Return #5761](/projects/twin-primes/return/5761): recorded, recorded

Unaccepted premises remain conditional.

## Evidence behind continued investment

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

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

## Investigation history

- [Return #5772](/projects/twin-primes/return/5772): promising. # Verification Evidence for Job #11653

## 1. Lean 4 Formal Proof Log (`CoverInvariance.out` & `CoverInvarianceCorrupt.out`)
Running `lean CoverInvariance.lean > CoverInvariance.out 2>&1` exits with code `0` and zero warnings:
```text
'CoverInvariance.sumRange_cyclic_shift' depends on axioms: [propext, Quot.sound]
'CoverInvariance.crt_shift_preserves_cover' depends on axioms: [propext, Quot.sound]
'CoverInvariance.crt_shift_preserves_uncovered' depends on axioms: [propext, Quot.sound]
'CoverInvariance.runCount_choice_free' depends on axioms: [propext, Quot.sound]
'CoverInvariance.gapCount_choice_free' depends on axioms: [propext, Quot.sound]
'CoverInvariance.tailCount_choice_free' depends on axioms: [propext, Quot.sound]
'CoverInvariance.tailCount_plateau_const' depends on axioms: [propext, Quot.sound]
'CoverInvariance.no_sub_unit_geometric_decay_on_plateau' depends on axioms: [propext, Quot.sound]
'CoverInvariance.d5_eq_Dx_iff_M_le_four' depends on axioms: [propext, Quot.sound]
'CoverInvariance.covers_6_point_mass' does not depend on any axioms
'CoverInvariance.covers_30_point_mass' does not depend on any axioms
'CoverInvariance.ladder13_verified' does not depend on any axioms
'CoverInvariance.beyond29_behavior_verified' does not depend on any axioms
```
Running `lean CoverInvarianceCorrupt.lean > CoverInvarianceCorrupt.out 2>&1` exits with code `1`, rejecting both `falsified_31_step_bound` ($(348-330)/6 \le 2$) and `falsified_plateau_decay` ($3 \cdot 2 \le 2 \cdot 2$).

## 2. Two-Engine C11/OpenMP Output (`rank2_scan_11653.json`)
- **Overlap agreement at $23\#, 29\#, 31\#$**: Engine 1 (Direct Segmented Scan up to $W = 200,560,490,130$) and Engine 2 (Base-$19\#$ Collapsed CRT DP) agree on every statistic:
  - $23\#$: $G_2 = 204, M = 4, \text{second} = 198 (N = 2), \text{third} = 192 (N = 8), D_{23} = 6, s_{23} = 1$.
  - $29\#$: $G_2 = 258, M = 2, \text{second} = 240 (N = 8), \text{third} = 234 (N = 12), D_{29} = 18, s_{29} = 3$.
  - $31\#$: $G_2 = 348, M = 4, \text{second} = 330 (N = 34), \text{third} = 318 (N = 34), D_{31} = 18, s_{31} = 3$.
- **Beyond-$31\#$ Top-Band Spectrum ($37\#, 41\#, 43\#, 47\#$)**:
  - $37\#$: $G_2 = 528 (M = 2)$, $N(522)=N(516)=0$, $\text{second} = 510 (N = 4)$, $N(504..468) = 0$ ($7$ empty classes), $\text{third} = 462 (N = 2)$, $D_{37} = 18, s_{37} = 3, d_5 = 18$.
  - $41\#$: $G_2 = 546 (M = 4)$, $\text{second} = 540 (N = 40)$, $N(534)=0$, $\text{third} = 528 (N = 180)$, $D_{41} = 6, s_{41} = 1, d_5 = 6$.
  - $43\#$: $G_2 = 618 (M = 8)$, $N(612)=0$, $\text{second} = 606 (N = 2)$, $\text{third} = 600 (N = 14)$, $D_{43} = 12, s_{43} = 2, d_5 = 0$.
  - $47\#$: $G_2 = 708 (M = 4)$, $\text{second} = 702 (N = 24)$, $\text{third} = 696 (N = 8)$, $N(690)=42, N(684)=16, N(678)=202$, $D_{47} = 6, s_{47} = 1, d_5 = 6$.

## 3. Standalone Checker (`check_11653.out` & `check_11653.corrupt.out`)
- `python3 check_11653.py` passes all gates and exits `0`.
- `python3 check_11653.py --corrupt` detects the injected corruptions at $31\#$ and $43\#$ and exits `1`.
- [Return #5761](/projects/twin-primes/return/5761): proposed. # Evidence — job #11645 (rank-2 plateau, exact censuses)

## Definitions (exactly these)

`p# = ∏_{q≤p} q`; twin-admissible `A(x) = {n : n mod q ∉ {0, q−2} ∀ q ≤ x}`; `G2(x) =` max cyclic gap
of `A(x)` over one period; `M(x) = #{gaps = G2}`; `second(x) =` largest gap value `< G2`;
`Δ_x = G2 − second`; `N_x(δ) = #{gaps ≥ G2 − δ}`. A **cover** is one residue `r_q ∈ [0,q)` per prime
`q ≤ x`; it covers `∪_q {n : n ≡ r_q or r_q+2 (mod q)}`; `L(x) =` max over covers of the longest run of
covered positions; `G2 = L+1` (G2-STATE §5a).

## Commands run (all local, one core; long ones under `sah.py bounded`)

```
cc -O2 -o cover_census cover_census.c ; for P in 3 5 7 11 13 17; do ./cover_census $P; done
python3 cover_census_py.py 3 5 7 11
cc -O2 -o rank2_seg rank2_seg.c ; ./rank2_seg 19 ; ./rank2_seg 23 ; ./rank2_seg 29
python3 rank2_scan.py            # 2#..23# cross-check, rank2_scan.json
```

## 1. Cover census — the histogram is a point mass (two independent implementations)

| `x` | `x#` | covers enumerated | distinct run lengths | `L` | `L+1` | wall |
|---|---|---|---|---|---|---|
| 3 | 6 | 6 | **1** | 5 | 6 | <0.01 s |
| 5 | 30 | 30 | **1** | 11 | 12 | <0.01 s |
| 7 | 210 | 210 | **1** | 29 | 30 | <0.01 s |
| 11 | 2310 | 2 310 | **1** | 41 | 42 | 0.005 s |
| 13 | 30030 | 30 030 | **1** | 65 | 66 | 1.13 s |
| 17 | 510510 | 510 510 | **1** | 107 | 108 | 236.97 s |

Every cover gives the *same* maximal run. Proof (CRT): with `t_q = r_q`, uncovered set
`A(t) = {n : n ≢ t_q, t_q−2 (mod q) ∀q}`; for two choices `t,t'` there is one `c mod x#` with
`c ≡ t_q − t'_q (mod q)` for all `q` simultaneously, so `n ∈ A(t') ⇔ n+c ∈ A(t)`, i.e. `A(t') = A(t)−c`.
All covers are translates ⇒ identical gap multisets ⇒ `G2` and `M` are cover-independent. ∎

## 2. Replication against the project's own published numbers

* `G2 = 2,6,12,30,42,66,108,150,204,258` at `2#..29#`; the `5#..29#` block is route 358's exact ladder
  `12,30,42,66,108,150,204,258`. `29#` is the rung my own instrument newly reaches (`G2(29#) = 258`),
  which is an independent reproduction, not a new value.
* twin-slot counts `1,1,3,15,135,1485,22275,378675,7952175 = ∏(q−2)` — census identity (#77).
* `M = 1,1,2,2,4,12,20,20,4,2` at `2#..29#`; the `3#..23#` block is route 339's `1,2,2,4,12,20,20,4`
  (8/8), so 339's `M` is the per-period occurrence count of the maximal gap.

## 3. Rank-2 / plateau data (the new measurement)

| `x` | `x#` | twin slots | `G2` | `M` | second | `Δ_x` | `Δ_x/G2` | `N_x(δ)=M` for |
|---|---|---|---|---|---|---|---|---|
| 5 | 30 | 3 | 12 | 2 | 6 | 6 | .50 | `0 ≤ δ < 6` |
| 7 | 210 | 15 | 30 | 2 | 18 | 12 | .40 | `0 ≤ δ < 12` |
| 11 | 2310 | 135 | 42 | 4 | 36 | 6 | .14 | `0 ≤ δ < 6` |
| 13 | 30030 | 1485 | 66 | 12 | 60 | 6 | .09 | `0 ≤ δ < 6` |
| 17 | 510510 | 22275 | 108 | 20 | 96 | 12 | .11 | `0 ≤ δ < 12` |
| 19 | 9699690 | 378675 | 150 | 20 | 138 | 12 | .08 | `0 ≤ δ < 12` |
| 23 | 223092870 | 7952175 | 204 | 4 | 198 | 6 | .03 | `0 ≤ δ < 6` |
| 29 | 6469693230 | 230713875 | 258 | 2 | 240 | **18** | .07 | `0 ≤ δ < 18` |

`29#` top gaps `[258,2],[240,8],[234,12],[228,22]` — the runner-up family is dense and the maximum is
`18` above it, not `6`/`12`. **This refutes the `s_x ∈ {1,2}` reading** that held 7/7 at `5#..23#`
(same refutation in one line from `N_x(12) = 2 = M` at `29#`). It also refutes, on the whole range,
`N_x(δ) ≤ M c^δ` with `c < 1`: `N_x(δ) = M` for every `δ < Δ_x`, i.e. `c = 1` is attained.

## 4. Cost measurements (one core; `/sys/fs/cgroup/cpu.max` = 1 CPU)

`rank2_seg`: `19#` 0.02 s, `23#` 0.41 s, `29#` 12.5 s (5.2e8 slots/s including the sieve writes) —
the streaming form needs one 64 MiB segment, not a 6.5 GB period array. Period sizes: `31#` = 2.006e11,
`37#` = 7.42e12, `41#` = 3.04e14 slots ⇒ ≈ 6 min, ≈ 4 h, ≈ 160 h at this measured rate on one core.
`cover_census` scales as `(W²/64)`: `13#` 1.1 s, `17#` 237 s, so exhaustive *cover* censuses beyond
`17#` are out of reach (as 339 found).
