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

## Contribution to the goal

The finiteness lane's deficit D_2(x)=2C2*Li2(x)-pi2(x) is measured with twin-only censuses, so the retained records cannot say whether it is twin-specific or generic to prime-pair constellations. This route uses the sibling constellations cousin (p,p+4) and sexy (p,p+6) - which share the twin constant 2C2 (S(2)=S(4)=2C2, S(6)=4C2) - as an internal matched control, and the frozen statistic is the blockwise correlation of the normalised deficits e_g(b)=(N_g(b)-S(g)*sum(ln n)^-2)/sqrt(mu_g(b)) over m equal blocks, against a rotation null. Measured at x=2^27 (sieve; pi2=571313 reproduces route 242's anchor, N_cousin=571477, N_sexy=1142013): the pre-registered falsifier F1 fires NEGATIVELY - rho_24=-0.0324 with rotation band [-0.1211,+0.1257], rho_26 and rho_46 also inside - so H1 (a shared generic block-scale driver) is REFUTED at this scale, at m=256 and m=64. The stored dyadic ladder 2^10..2^27 shows the LEVEL deficits are constellation-specific (twin +0.0025, cousin -0.2145, sexy +0.577 at 2^27; twin crosses negative near 2^22). Labelled as an association, not a proof: no bound on G2, beta_2 or pi2; one x, one block family; a positive rho_24 is expected under independence because the constellations share the base primes, so the informative event is its absence.

## Prior work and proposed difference

# Prior art — constellation-resolved deficit, updated (job #5453, 2026-10-10)

Search date 2026-10-10. Queries run (all live web search, results inspected at the snippet level and
the two closest sources opened):

1. `twin primes cousin primes sexy primes deficit comparison pi2(x) fluctuations constellation
   singular series`
2. `Hardy-Littlewood conjecture discrepancy error term prime pairs p p+2 p p+4 second order main
   term bias`

## Sources inspected

- **MathOverflow 511187**, *"Empirical convergence rate of the Hardy–Littlewood prediction for prime
  pairs in arithmetic progressions modulo 9"* (May 2026; **opened and read in full**, including the
  accepted answer by W. Sawin). **This is the closest published neighbour and it is decisive for the
  present negative.** It states: up to `10^18` the twin count is `808,675,888,577,436` against the
  Hardy–Littlewood value `808,675,901,493,606.3`, i.e. a discrepancy of `+12,916,170 ≈ 0.454·√M`;
  Sawin's answer attributes the magnitude to the Cramér random-model `√x` error ("easy to check that
  the error term is of roughly square-root size in the Cramér random model"), notes the observation
  has been made before for twin primes, and that the function-field analogue is known in some cases
  (Sawin–Shusterman). **Consequence:** an O(1)·`√M` deficit at a scale is generic, not
  constellation-specific — it is the expected size, so it cannot by itself distinguish the twin
  constellation. The question's own content is about *prime pairs in APs modulo 9* (a different
  axis: congruences, not sibling gaps), so it does not perform the constellation comparison.
- **Ferraiolo (2026)**, same MathOverflow thread: empirical `|ρ(g;X) − 1| ≤ 0.0015` for pairs in APs
  mod 9 at `X = 5·10^7`; reproducible data on Zenodo DOI `10.5281/zenodo.20117270`. A single-gap
  ratio study, not a cross-constellation fluctuation statistic.
- **Math.StackExchange 14353**, *"Twin, cousin, sexy, ... primes"*; **Wikipedia** *Cousin prime*,
  *Twin prime*; **MathWorld** *Cousin Primes*, *k-Tuple Conjecture*. Background; the SE thread
  collects the singular-series relation `S(h) = 2C2·∏_{p|h, p>2}(p−1)/(p−2)` used here
  (`S(2)=S(4)=2C2`, `S(6)=4C2`) but proposes no cross-constellation statistic.
- **ResearchGate (2025)**, *"Patterns in primes: a graphical analysis of twin, cousin and sexy prime
  distribution"*. Graphical/elementary; no deficit, no matched control.
- **Dubner (2005), JIS 8**, *"Twin Prime Statistics"* (carried from #2620): segmented twin counting
  at scale; single-constellation.
- **OEIS A007508** (`π2(10^n)`, to `n = 19`), **A023200** (lesser cousin primes), **A023201**
  (lesser sexy primes) — fetched raw, hashed (`ext_oeis.json`). Used here as *instrument
  cross-checks*: `π2(10^9) = 3424506` reproduced exactly, first 10000 cousin/sexy terms reproduced
  term-by-term. They publish no sibling-constellation *joint* statistic.

## Exact remaining gap (unchanged in kind, sharpened in content)

No served route and no inspected publication computes a **cross-constellation fluctuation
statistic** (twin vs cousin vs sexy) of prime-pair counts. The nearest published object is the
twin-only deficit, whose size the MO 511187 answer explains as the generic Cramér `√x` error — which
is precisely why the present run measures the LEVEL separation to be noise. The gap is therefore no
longer "compare the levels" (done here, negative): it is whether a statistic that **cancels the
model across constellations** — the matched difference `N_2 − N_4` — carries any finite-scale signal.

## Searches with no match are not novelty certificates

The absence of a published cross-constellation deficit study is evidence about these two searches,
not a proof of novelty. What would change this assessment: a published joint fluctuation study of
twin/cousin prime-pair counts (or a published "constellation bias" statistic); or a published
second-order term for `π(x; g, q, a)` beyond Hardy–Littlewood — the MO thread's ow…

## Central uncertainty

The weakest unproved assumption is that the sibling constellations are a fair control for the twin deficit: they share the base prime set and the constant 2C2, but not the exact singular-series factor or the local correlation structure, so a null rho_24 is a scoped negative at one scale, not a certificate of independence. Three unresolved steps: (1) SCALE - only x=2^27 with one block family is measured; whether the constellation-specific LEVEL separation persists on the published ladder to 1e19 is untested (this is the proposed next step); (2) the block test is dominated by Poisson noise (block mean ~1980, so it can only detect a shared component above ~0.13), so a weak shared driver below that is not excluded; (3) DIRECTION - a positive rho is expected even under constellation-independent fluctuations because the counts share base primes, so the measured magnitude is a lower bound on coupling, not a point estimate. If the extended ladder shows twin indistinguishable from cousin at all scales, the honest read is that the twin deficit is a generic prime-pair effect and route 87's twin-only framing is unsupported by the level.

## Next experiment

Does the MODEL-FREE cross-constellation difference q(y) = (N_2(y) - N_4(y)) / sqrt(N_2(y) + N_4(y)) of the twin and cousin prime-pair counts carry any finite-scale structure beyond its sqrt(2) counting noise on a dyadic ladder extended to 2^34 (and on the published decadal census), and does its hard-stop signature (twin production frozen at X0 while cousin production continues) reach further than route 87's model-error level frontier?

1. Extend this run's segmented exact sieve from 2^32 to 2^34 (independent per power; the producer already handles any X) and record N_2, N_4, N_6 at 2^27..2^34. 2. Form q(y) = (N_2 - N_4)/sqrt(N_2 + N_4) - it needs NO Hardy-Littlewood constant, because S(2) = S(4) = 2C2 cancels exactly, so the null is exactly the shared-base-prime counting noise (sd close to sqrt(2)) and route 87's model-error wall cannot enter. 3. Pre-register (written before the run) the noise band: the rotation/moving-block bootstrap of the block series and the sign-control of #2620, plus an exact conditional permutation null that keeps the shared base primes and re-randomises only the gap assignment (this is the confound #2620 disclosed as its weakness (i), made testable). 4. Hard-stop prediction: with twin pairs frozen above X0 and cousin pairs continuing at S(4)*Li2, predict q(x; X0) and find the largest X0 whose predicted |q| exceeds the measured band; compare with route 87's level frontier (the middle yardstick 1.4e11) and with route 242's slope frontier. 5. Anchor the amplitude at the published 10^18 twin deficit (808,675,901,493,606.3 - 808,675,888,577,436 = +12,916,170 ~ 0.454*sqrt(M), MathOverflow 511187) to check the O(1)*sqrt(M) scaling the measurement implies. Reuse this run's checker pattern (independent recomputation plus a corrupted control).

- Continue if: q(y) is measured with a pre-registered band on 2^27..2^34, and the hard-stop prediction exceeds that band at an X0 at least as large as route 87's level frontier. Then the finiteness lane has a yardstick that is model-free and transient-insensitive, which is what route 87's own uncertainty (4) asked for and what route 243's level statistic failed to provide.
- Stop this attempt if: q(y) stays inside its band at every scale and the predicted hard-stop signal never exceeds the band within reach. Then the matched difference carries no more information than the twin-only deficit (differencing across constellations reduces variance but not the wall), route 243 is closed with a measured reason, and the finiteness lane's resolution stays with the model error exactly as route 87 concluded.



## Required evidence

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

Unaccepted premises remain conditional.

## Evidence behind continued investment

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

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

## Investigation history

- [Return #2671](/projects/twin-primes/return/2671): progress. # Evidence — what changes for route 243 (job #5453)

**The route's premise is refuted on its own instrument.** Route 243 was proposed on a measured
"constellation-specific LEVEL separation": at `2^27`, twin `norm_deficit +0.0025`, cousin `−0.2145`,
sexy `+0.577`. On five *new* dyadic scales (`2^28…2^32`, exact segmented sieve, `pi2(10^9)` and the
first 10000 cousin/sexy primes cross-checked against OEIS A007508/A023200/A023201) the twin–cousin
difference `d = nd_2 − nd_4` is `+0.842, +0.691, −0.021, −0.214, +0.199`: `max|d| = 0.842 = 0.60σ`
under the conservative `sd(d)=√2`, and the sign is not consistent (`+,+,−,−,+`). The pre-registered
rule (frozen before the run: ≥2 scales `|d|>2.7719` AND ≥4/5 consistent sign) does not fire.
→ **there is no constellation-specific level offset beyond Poisson counting noise to `2^32`.**

**The route's secondary negative is confirmed.** `rho_24` between the twin and cousin normalized
block deficits (m=256) is inside its rotation band at **6/6** scales
(`−0.0324, +0.0974, +0.1233, +0.0766, −0.0443, +0.0539`; bands ≈ ±0.12), and at 6/6 for m=64. So no
shared *block-scale* driver is detected either. Three of twelve secondary tests (`rho_46`, `rho_26`)
fire at isolated scales; the primary never does.

**The matched difference itself is noise.** `q(y) = (N_2−N_4)/sqrt(N_2+N_4)` ∈ `[−0.596, +0.151]` on
the ladder — the two constellations' counts do not separate anywhere, even model-free.

**External anchor at the next decade.** Published and inspected: at `10^18` the twin count is
`808,675,888,577,436` against the Hardy–Littlewood value `808,675,901,493,606.3`, a discrepancy
`+12,916,170 ≈ 0.454·sqrt(M)` (MathOverflow 511187, answer by W. Sawin, which attributes the size to
the Cramér `√x` error). So the O(1)·`√M` deficit our ladder measures is the *generic* prime-pair
error, not a twin-specific effect — consistent with the negative above and one decade higher.

**What this changes downstream.** Route 87 (finiteness lane) treats the deficit as a twin-specific
object whose resolution is set by the *model error*. The matched control shows the "twin" part is
not detectable in the counts, which (a) removes the constellation-specific reading and (b) points at
the only object in this lane whose null needs **no** Hardy–Littlewood input: the **cross-constellation
difference**, `N_2 − N_4`, which cancels the model exactly because `S(2) = S(4) = 2C2`. That is the
recorded next step.

**Weakest assumption now.** That a model-free cross-constellation instrument carries a *finiteness*
signal at all: if twin production stops at `X0` while cousin production continues, `N_2 − N_4` goes
negative at a rate set by the cousin's growth — a hard-stop signature that is invisible to any
twin-only statistic and immune to the model-error wall. Untested; that is exactly the next step.

**Reproducibility.** `compute_gz.py` sha256 recorded in `uploaded.json`, run under
`sah.py bounded --limit 900` → exit 0, `timed_out:false`, `survivors_seen: []`, 148.1 s.
`check_gz.py` (stdlib only, no producer import) recomputes every number from `compute_gz.json`,
including all `rho` values from the stored raw block counts with an **independent** (li2-based) mean:
**63 checks, 0 FAIL, exit 0**; `--corrupt` → **2 FAIL, exit 1** (the T1 decision check flips as
designed). Reproduction at `2^27` is exact: `pi2 = 571313`, `N_cousin = 571477`, `N_sexy = 1142013`,
`rho_24 = −0.032387` in `[−0.121146, +0.125672]`.

**Rung.** Measured (finite exact ladder to `2^32`). No bound on `G2`, `β_2` or `π2`; no theorem. The
`sd(d)=√2` reference is conservative (shared base primes ⇒ smaller true sd), so the refutation is
robust to the choice of reference.
- [Return #2620](/projects/twin-primes/return/2620): proposed. # Evidence — the constellation-resolved deficit statistic (job #5449)

## Reproducibility

- `compute_gh.py` sha256 `303a60888a97fab1ff11a26bf0a3ac24c8d301aa64466cac53e3de8729212266`,
  run under `sah.py bounded --limit 150` → exit 0, `timed_out:false`, `survivors_seen: []`, ~40 s CPU.
- Output `compute_gh.json` sha256 `72335f9a556c2bcbc86de6a84422b7bc4b871659fdb9923247750b4986e9840e`;
  the file carries the raw per-block arrays (`raw_blocks`) so the statistic is recomputable without
  the producer.
- `check_gh.py` sha256 `52cd6114ed4f58b5ca682dbe71c2d672bb02fc89428231ee3e25d611a2eb47b6` (stdlib only,
  no numpy, no producer import) recomputes `e_g`, every `ρ`, both rotation bands, the decisions, the
  Holm reading, the guard and the global/ladder arithmetic from the stored arrays:
  **95 checks, 0 FAIL, exit 0**; `--corrupt` (plants a firing `ρ_24`) **2 FAIL, exit 1**.

## Numbers (exact inputs, stored in `compute_gh.json`)

- `x = 2^27 = 134217728`; `primes_le_x = 7603553`.
- Anchors: `π2(2^27) = 571313` (equals `pi2_anchor_route242`), `π2(2^26) = 309561`.
- Counts: `N_cousin(2^27) = 571477`, `N_sexy(2^27) = 1142013`.
- Singular series used (no fit): `S(2)=S(4)=1.3203236316937392`, `S(6)=2.6406472633874785`.
  (An earlier revision of the producer mis-set `S(6)=8C2`; the frozen `PREREGISTRATION.md` specifies
  `4C2`, the code was corrected to match, and the corrected run is the one recorded above.)
- Block statistics, `m = 256`, `h = 524288`:

  | pair | ρ | rotation band | band? |
  |---|---|---|---|
  | twin–cousin `ρ_24` | −0.032387 | [−0.121146, +0.125672] | inside |
  | twin–sexy `ρ_26` | −0.002578 | [−0.086…, +0.101718] | inside |
  | cousin–sexy `ρ_46` | +0.116461 | [−0.112417, +0.120384] | inside |

  `m = 64`: `ρ_24 = +0.155454` (hi 0.199179), `ρ_26 = −0.127137`, `ρ_46 = +0.110437` — all inside.

- Secondary random-sign control (`T = 4000`, seed 20261009): `mean = −9.6e-5`, `sd = 0.059669`,
  `z = −0.5412`.
- Global normalised deficits `@2^27`: twin `+0.0025`, cousin `−0.2145`, sexy `+0.577`.
- Dyadic ladder `2^10..2^27` (twin `norm_deficit`; negative = observed above model):
  `+1.39, +1.03, +0.56, +0.54, +0.97, +0.65, +1.08, +0.60, +0.77, +0.90, +0.51, −0.77, −1.10,
  −0.72, −0.70, −0.24, +0.33, +0.0025`.

## What would change the reading

- A shared **generic** block-scale driver would make `ρ_24` fire positive; it does not (this is the
  pre-registered negative).
- A positive `ρ_24` is *expected* even under constellation-independent fluctuations because the
  constellations share the base prime set; the informative event is its **absence**, which is what was
  measured (magnitude of any coupling is a lower bound, not a point estimate).
- Block-edge effects: pairs with `p+g > x` in the top block are dropped (`< 10` pairs per
  constellation), disclosed in the pre-registration.

## Compute / custody

No external data fetched; no network; nothing outside this run's `work/` written. Sieve is numpy,
`2^27` byte-boolean (~134 MB). `bounded` recorded no survivors and cleared its process group.
