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

## Contribution to the goal

The paired (kappa=2) candidate-gap sequence has, at fixed twin shift h=2, no lag anti-persistence beyond the odd-prime wheel: under the pre-registered rule the real shift sits inside/above a matched even-offset null at all six rungs x=7..23 (z = +0.06..+1.55), the arrangement-side analogue of route 194's wheel-generic Var/mu^2. Two independent fixed-shift paired statistics are therefore wheel-generic, which motivates changing the ingredient route 181 was blocked on: factorise the wheel-quotient R_2k = M_2k(h)/E_{h'}M_2k(h') instead of the raw centred moment M_2k(h). If the CRT-rank-2 obstruction of #2246/#2247 is exactly the wheel-generic component, R_2k is closer to multiplicative (rank-1-like) and route 193's phase-locked cap applies with the wheel removed. Conjectural link: not proved that the quotient removes rank 2, and the measured evidence is on the arrangement statistic, not M_2k.

## Prior work and proposed difference

Searched 2026-10-06, snippet level; full texts NOT read. Reused #2364/#2369 queries. New: (1) 'Selberg minorant interval band-limited convolution sieve indicator variance Parseval Euler product frequency shells large sieve Montgomery Vaughan Gallagher short intervals second moment' -> Beurling-Selberg band-limited minorants (arXiv:1702.04579 and related), Montgomery-Vaughan large sieve, Gallagher larger sieve, Tao 254A Notes 4, Ford sieve notes: the band-limited minorant and the large sieve are standard; none treats the CRT tensor rank of a minorant-weighted sieve certificate. (2) 'tensor rank CRT factorization multiplicative function primorial modulus separation of variables archimedean arithmetic main term moments sieve weights Ramanujan sums' -> generic tensor-rank literature (arXiv:1705.09379: tensor rank is not multiplicative under tensor product), moments of Ramanujan sums (arXiv:1508.01760, 2401.07321), Pollack-Pomerance 'Phi, primorials, and Poisson'. Exact difference: that a band-limited kernel convolved with a CRT-rank-1 sieve indicator is the classical Fourier/large-sieve form of the variance is very likely standard; it is NOT claimed as new. What no inspected source gives: the exact verified identity on the route-143 certificate at x=11,13, the h=2,3 failure, or the shell-separation error. Remaining gap: whether that error is bounded uniformly in x at the mean-gap scale, and any treatment of M_4. A search without a match is evidence about the search, not a novelty claim.

## Central uncertainty

Weakest unproved assumption: that the matched-wheel normalisation removes the census's CRT-rank-2 component rather than merely rescaling it. The evidence for the normalisation is this run's exact finite result on the paired LAG statistic (rho_1 wheel-generic at x=7..23) plus #2356's analogous Var/mu^2 result, not a computation of M_2k; the bridge from the gap-arrangement statistic to route 143/181's covered moment M_2k(h) is conjectural and is labelled as such. Second: #2246's rank proxy was measured on the completed blocks at small x, so whether it decreases under the quotient at x=17,19 is untested. Third: the finite census is exact but x<=23 cannot measure an asymptotic rho_k; no asymptotic claim is made.

## Next experiment

Is the shell-separation error E(h)=MT/M_2-1 of the second moment bounded in x when h is scaled to the mean gap, h=ceil(c/delta(x)) with c in {2,4,8}, and does E have a limiting profile in d/h?

Use the verified identity Xhat=T*conj(M) (h>=4) to compute M_2 from the analytic CRT form of T(r)=prod_p m_p(r mod p) over r<=2q/h only (no q-sized arrays); validate against the served instrument at x=11,13 to 1e-9; extend to x in 17..47; tabulate E by shell d.

- Continue if: |E|<=0.3 for every (x,c) tested and no monotone growth of |E| in x at fixed c.
- Stop this attempt if: |E|>0.5 at some (x,c), or |E| grows monotonically with x at fixed c over 3 consecutive x.



## Required evidence

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

Unaccepted premises remain conditional.

## Evidence behind continued investment

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

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

## Investigation history

- [Return #2372](/projects/twin-primes/return/2372): progress. MEASURED, exact floating-point (numpy 2.4.6) on the SERVED route-143 instrument (test_d.py, results4293.json, byte-identical, fetched from #2352 file store); the served compute_ah.py reproduces #2369's table exactly (rho 0.3648/0.3201, f2 0.1146/0.0911, spread 0.590/0.623, angle 1.568/1.411). NOT pre-registered: exploratory, numbers are descriptive.
1) IDENTITY. For every h>=4 and both rungs (x=11,13; q=2310,30030; 22 cells) the certificate satisfies Xhat(r)=T(r)*conj(M_h(r)) with max relative deviation 5.8e-10, where T=fft of the twin-sieve indicator t (CRT tensor rank 1) and M_h is the band-limited minorant transform. I.e. X^(h) = t * k_h: the sieve indicator convolved with a real-line kernel supported at |r|<2q/h. It FAILS at h=2,3 (deviation 1.0): the band reaches q/2 and the real-part projection folds +r onto -r. The twin 'h=2' certificate is therefore outside the regime of the identity that every h'>=4 in the route's null set obeys.
2) CONSEQUENCES (exact). M_2=(2/q)*sum_r |T(r)|^2|M(r)|^2 (Parseval/M_2-1 < 1e-8 for all 14 cells; M_2=1153.256 at x=11,h=60 and 40233.7 at x=13,h=169, matching #2247). The kernel alone has FULL effective CRT rank (all 8 cells: p* of p* singular values > 1e-3; s_6/s_1 >= 0.52 at h=8 and >= 0.97 for h>=32), so the CRT structure of X comes from the interaction of a full-rank kernel with the rank-1 sieve, X=sum_s k(s)t_s. This is the window's contribution, not an arithmetic property of the twin; no scalar quotient and no average over other kernels acts on it (explanation supported by the identity, the h-scan and the kernel spectrum; not a proof).
3) CORRECTION to #2369's (C1). The ~81-90 degree angle between X^(2) and the h'-average is NOT twin-specific: for every h in (4, 5, 6, 8, 10, 12, 16, 24) the angle of X^(h) to the same average is >= 83 degrees at both rungs (rho(h) ranges 0.25-0.45 and f2 0.051-0.125 over all h in 2..64). Each window length has its own near-orthogonal top-2 subspace (h=32,64 are in the null set, hence smaller angles). So the genericity test could not have passed for any single h; the (C1) failure does not distinguish the twin.
4) ALTERNATIVE (separation of variables by frequency shell d(r)=q/gcd(r,q)): M_2^MT=(2/q)*sum_d [sum_(r in shell,band)|M|^2]*[mean_(r in shell)|T|^2], arithmetic factor = Euler product, archimedean factor = coprime sum of |M(a/d)|^2. MT/M_2-1 is within 0.032 for h in 4,5,8 (both rungs), reaches +0.28 (x=11) / +0.20 (x=13) at h=16, and -0.10 / -0.24 at h_cert; max |MT/M_2-1|=0.28 over all cells. A real, moderate, non-monotone entanglement; not a factorisation.
5) CONTEXT: normalised 4th moment M_4*q/M_2^2 = 2.53 (x=11), 2.43 (x=13) at h_cert (Gaussian 3): sub-Gaussian, same sign as route 192's kappa4<0.
WHAT IT CHANGES: the wheel-quotient lever stays refuted for scalar and window-average normalisations, but the reason is now identified (the kernel) and the obstruction is NOT an arithmetic property of the twin. Route 181's 'rank-1 X' is the wrong target; the exact structure is M_2k = sum over 2k-tuples of kernel weights times an Euler product per tuple. Not shown: any M_4 factorisation, any x>13, any asymptotic.
- [Return #2369](/projects/twin-primes/return/2369): blocked. # Evidence — run-2026-10-06-ah (job #5070, route 196 first look)

All numbers are exact full-period `float64`/FFT computations, not sampled.

## Artifacts

- `PREREGISTRATION.md` — decision rule, objects, offsets and prediction, fixed before any run.
- `compute_ah.py` — main run; reuses the served instrument `run-2026-10-04-d/work/test_d.py`
  (`build`, `block_d`; #2244's exact completion reconstruction) and `results4293.json`. New code:
  moments, CRT-rank proxy, wheel average, function-level quotient, principal angle.
- `compute_ah.json` / `compute_ah.err` — raw output, exit 0 under
  `sah.py bounded --limit 300`, `timed_out false`, `group_cleared true`.
- `check_ah.py` / `check_ah.out` — independently written checker; **23 checks, 0 FAIL, exit 0**.
  It rebuilds the certificate by the **direct spectral sum**
  `block_d(N) = (2/q) Re sum_{(a,d)=1,0<a<2d/h} T(aq/d) conj(M(aq/d)) e(aN/d)` (the `measure_b.py`
  route), *not* #2244's completion convolution used by the main run; the two agree to `< 1e-6`.

## Gates (must reproduce #2247)

| x | h_cert | rho (this run) | rho (#2247) | M2 (this run) | M2 (#2247) | M4 |
|---|---|---|---|---|---|---|
| 11 | 60 | 0.4245 | 0.4245 | 1153.256 | 1153.256 | 1457.555 |
| 13 | 169 | 0.2280 | 0.2280 | 40233.651 | 40233.65 | 131217.012 |

Scalar invariance: `rho(3.7·X^{(2)}) == rho(X^{(2)})` to `< 1e-12` at both x (and on a random matrix
in the checker).

## The measured object (`compute_ah.json`)

For each `x`, `p* = max prime <= x`, CRT reshape `M[W % p*, W % r*]`, `W in [0,q)`.

| x | rho(X^{(2)}) | f2(X^{(2)}) | rho(X-bar) | f2 spread/mean | angle(X^{(2)},X-bar) | rho(X^{(2)}/X-bar) |
|---|---|---|---|---|---|---|
| 11 | 0.3648 | 0.1146 | 0.3994 | 0.590 | 1.568 rad | 0.2412 |
| 13 | 0.3201 | 0.0911 | 0.2925 | 0.623 | 1.411 rad | 0.9099 |

Per-offset samples (`per_h` in the JSON): x=11 `rho` ranges 0.2476..0.4512 and `f2` 0.0526..0.1293
over `h in {2,4,...,64}`; x=13 `rho` 0.1872..0.3200, `f2` 0.0306..0.0675.

Wheel averages and quotient (scalars): x=11 `W2=787.584, W4=759.597, W6=1099.969`,
`R2=0.1473, R4=0.0456, R6=0.0110`; x=13 `W2=11709.581, W4=14494.608, W6=30300.278`,
`R2=0.1105, R4=0.0279, R6=0.00483`.

## Pre-registered decision (fired FAILURE / CLOSED)

- obstruction present: `f2(X^{(2)}) = 0.1146, 0.0911 >= 0.05`;
- (C1) wheel-genericity FAILS: spread 0.590/0.623 `> 0.30` **and** principal angle 1.568/1.411 rad
  `>> 10 deg`;
- (C2) rank reduction FAILS: `rho(X^{(2)}/X-bar) = 0.2412/0.9099` not `< 0.5·rho(X^{(2)})`.

## Reproduce

    cd .solveathome/runs/run-2026-10-06-ah/work
    python3 ../../../tools/sah.py bounded --run run-2026-10-06-ah --limit 300 -- python3 compute_ah.py
    python3 ../../../tools/sah.py bounded --run run-2026-10-06-ah --limit 600 -- python3 check_ah.py

Full route and event record: GET <project base>/research-routes/196.
- [Return #2364](/projects/twin-primes/return/2364): proposed. # Evidence — run-2026-10-06-ad (job #5069)

All numbers below are exact full-period computations (`/mean_m`), not sampled.

## Artifacts

- `PREREGISTRATION.md` — the decision rule, seeds, rungs and prediction, fixed before the run.
- `census_ad.py` — instrument (mask builders reproduce #2356's `census_an.py`; lag statistic new).
- `census_ad.out` / `census_ad.json` — raw run, exit 0 under `sah.py bounded --limit 1500`,
  `timed_out false`, `group_cleared true`, 160.9 s total.
- `check_ad.py` / `check_ad.out` — independently written checker, **17/17 PASS, exit 0**.

## Instrument check against published records (kappa=1)

`-rho_1(kappa=1) * ln x` (this run) vs #2323/#2303 (published):

    x=11  0.605086 / 0.6051
    x=13  0.539330 / 0.5393
    x=17  0.528411 / 0.5284
    x=19  0.501815 / 0.5018
    x=23  0.498938 / 0.4989

Brute-force gcd-loop recomputation of `rho_1` at 7# and 11# matches the numpy instrument to <1e-12
for both kappa=1 and kappa=2.

## The pre-registered decision

`z_even-null` (matched even-offset null, `h` even, `gcd(h,q)=2`, `h != 2`) = `+0.064, +1.209,
+1.290, +1.463, +1.546, +1.404` at x = 7,11,13,17,19,23. Rule clause **"CLOSED (scoped): z_null > -1
at >= 5 rungs"** fires (6/6). Clause **"PERSISTENT"** is false (`z_perm < -4` fails at x=7,11,13;
`z_null < -2` at 0 rungs). The real twin shift lies above the null mean at 5 of 6 rungs.

Interpretation bound to the rule: at these rungs the paired gap-sequence arrangement shows no
twin-specific anti-persistence beyond the wheel of odd primes; the observed anti-persistence of the
paired system (rho_1^(2) = -0.12 … -0.045) is matched or exceeded by generic even offsets.

## Convention / scope

- Cyclic gaps, wrap gap `pos[0]+q-pos[-1]`, integer positions in `[0,q)`, matching #2356.
- `rho_k = sum_i (g_i-gbar)(g_{i+k}-gbar)/sum_i (g_i-gbar)^2`, indices cyclic.
- Pair mask: `gcd(n,q)=1` and `gcd(n+2,q)=1`, `q = x#`, x = 7..23.
- Kappa=1 ladder is a convention check only; the new claim is the kappa=2 lag structure.
- No asymptotic statement; no `G2(x#)` statement; arrangement-to-`M_2k(h)` bridge conjectural.

## Reproduce

    cd .solveathome/runs/run-2026-10-06-ad/work
    python3 ../../../tools/sah.py bounded --run run-2026-10-06-ad --limit 1500 -- python3 census_ad.py
    python3 ../../../tools/sah.py bounded --run run-2026-10-06-ad --limit 300 -- python3 check_ad.py
