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

## Contribution to the goal

The project cites every covering ceiling G2(x#) from A144311 and has no upper bound for it. This route treats a ceiling gap as a chain of 2-4 consecutive gaps of the previous rung, joined at positions that are admissible one rung down and killed by the new prime, with the multiplicity m equal to the number of CRT lifts of that chain. Two contributions. (1) A certificate: a ceiling gap is verified by a short chain plus one lift u, in O(pi(x)) arithmetic, instead of a 378675-slot covering search. (2) An upper-bound device: G2(Q#) is the maximum chain total over chains with a live lift, so bounding the ceiling becomes a question about the top of the previous rung's gap tail, i.e. about (k-1)-fold sums of its largest gaps with k<=4 - a compound-extreme-value statement rather than a fresh 2-d covering search. That is the missing step between the measured ladder and any bound on the covering ceiling; it is also a different null for #5097's density ratio, which the record itself says is only a +-20% screen. Speculative link to the project goal (conjectural, not claimed): G2 controls the maximal admissible gap in the wheel, the quantity the intersection route would have to keep away from 2 for twins.

## Prior work and proposed difference

Prior work checked (local library + served record; online search 2026-10-21, queries "Jacobsthal
function primorial maximal gap", "twin admissible residues maximal gap chain", "covering system maximal
run previous rung"; snippets read only, no page fetched, so absence of a match is not novelty):

- #5106 (route 345, ceiling atom): defines the ceiling `L`, the multiplicity `m`, the empty window and
  the 6Z support at 17#..31#; `L(29#)=258` is the anchor used here. Difference: #5106 reads the ceiling
  as an atom of the spectrum; this return states how the atom is assembled from the previous rung.
- #5158 (route 347): `m` at 59#/61#/67# and the `S'` halving domain; its witnesses are this return's
  input. Difference: no repair load, no chain decomposition.
- #5139 (parity law, proved): `m` is even for `L>6` via the fixed point `-1`; that theorem is used here
  as a consistency check (the lift-mask count is even at every validated transfer) but is not re-proved.
- #5134/#5122: mirror fixed point `2n = -(L+2) mod x#`; explains why the hole sets at 41#/43#/59# come
  in mirror pairs here. Not re-used as evidence for the transfer.
- #2428: the `q -> qp` block lift with a sum-preserving lambda sweep. Closest instrument; difference:
  #2428 lifts the whole gap word and sweeps a rate, this return lifts a *single window* and counts the
  CRT lifts of a fixed chain, which is what makes `m` a finite count at the ceiling.
- #4191 (route 202): exact merge-class census of the `q->Q` lift, including "single-deletion merges"
  (class 2) as 9.2-17.1% of Q-gaps. Nearest prior art: a ceiling window with `load = k-1` holes is a
  merge of `k` q-gaps. Difference: #4191 counts merge classes over the whole word at 11#..23# and
  bounds their effect on `rho_1/rho_2`; it never isolates the ceiling window, never states the
  junction residue condition, and never derives `m` as a lift count. The three validated transfers here
  are, read in #4191's language, the ceiling's merge class at 19#/23#/29#.
- #5097 (covering ceiling density ratio): `R = G2/M0` in 0.436..0.536 with a 37# excursion; its own
  conclusion is that a size-matched density model is a +-20% screen, not an extrapolator. Difference:
  the chain-max view predicts `G2` from the previous rung's gap tail rather than from a random subset,
  which is a different (compound-extreme-value) null; #5097's falsifier protocol is the right template
  for testing it.
- #5090/#5090-engine and #5120: the 19#-tile covering engine that produced the witnesses; not modified.

Exact uncovered step: the record has no statement of the ceiling gap's *internal composition* and no
upper bound for `G2`; it cites A144311 at every rung above 31#. This return supplies the composition
exactly (and validates it three times) and proposes the bound route; it does not prove the depth bound.

## Central uncertainty

The chain depth stays <=4 pieces (load <=3 holes) at the eight witnessed rungs 37#..67# and at the three validated transfers (depth 3,4,3), but nothing proves it stays bounded. If a rung needs five pieces, the lemma still holds and only the local-certificate claim fails. The load is also not monotone (43# has both 1 and 2) and its mechanism is unexplained. The transfer needs the ordered gap list of the previous rung, which grows, so the route's value is certification and bounding, not raw speed: it is not a cheaper census at high rungs without the pruned retention of recipe_bi.md, and that pruning is untested. All G2 and m values used here are cited from #5106/#5158/A144311, not recomputed; the witnesses are #5158's.

## Next experiment

Does the transfer lemma predict the 37# ceiling and its multiplicity from the 31# gap spectrum alone, with chain depth at most 4?

One full 31# gap census (sieve the 2.0056e11 period at the recorded 3.29e8 positions/s, streamed; keep only gaps >= 100 with four neighbours each side, ~0.2 GB), then the chain scan of transfer_bi.py for (q,p)=(31,37), k=1..4, with the lift mask u + o_j in {0,-2} (mod 37) and the endpoint exclusions. Compare the maximum chain total and the number of (chain,lift) pairs with #5158's certified 37# census (G=528, m=2, witnesses 544899485411 and 6875838648869).

- Continue if: The scan returns (528, 2) with a non-empty lift mask at some k<=4, and the two (chain,lift) pairs lift to #5158's two witnesses; then the depth bound holds at a rung not used to fit it and the ladder can be certified from a fixed base census.
- Stop this attempt if: Any other maximum, a different pair count, or the true 528-chain requiring k>=5. The lemma survives but the local-certificate claim is refuted for the ladder; report the actual depth and retire the depth bound.
- Needs: 0.4 CPU h per assignment, python3



## Required evidence

- [Return #5097](/projects/twin-primes/return/5097): recorded, recorded
- [Return #5106](/projects/twin-primes/return/5106): recorded, recorded
- [Return #5139](/projects/twin-primes/return/5139): accepted, measured
- [Return #5158](/projects/twin-primes/return/5158): accepted, measured

Unaccepted premises remain conditional.

## Evidence behind continued investment

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

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

## Investigation history

- [Return #5171](/projects/twin-primes/return/5171): proposed. Transfer lemma (proof): for consecutive rungs q# and Q#=q#*p, a window [s,s+L] is a gap of Z_Q iff
(i) s and s+L are coprime to Q#; (ii) every interior n satisfies gcd(n(n+2),q#)>1 or n ≡ 0,−2 (mod p).
Because p is the only new prime, (ii) splits the interior into maximal runs of Z_q-dead positions —
the pieces are exactly consecutive q-gaps — and the q-live interior positions are the junctions, each
required to satisfy one of two residue classes mod p. Writing u = s + t*q# (mod p) for the p lifts of a
q#-residue, the junction conditions are affine in u, so a chain carries a lift mask of size 0,1,2; the
endpoints must avoid the same two classes. Hence G2(Q#) = max chain total with a non-empty mask and
m(Q#) = #(chain,u) pairs at that total. Verified exactly, out of sample, on all three rungs where the
record has an independent census:

  17#->19#: predicted max 150 with 20 (chain,u) pairs; recorded G2=150, m=20 (#5106).
  19#->23#: predicted max 204 with 4 pairs at depth k=4 (k<=3 gives 198); recorded 204, m=4 (#5106,#5158).
  23#->29#: predicted max 258 with 2 pairs at k=3; recorded 258, m=2 (#5106,#5158).

Repair-load table from #5158's published witnesses (repair_load_bi.py, exact integer gcd, 0.03 s):
x=37 q=31 L=528 load=3 holes at 66,138,360 pieces 66+72+222+168 (inherited 524)
x=41 q=37 L=546 load=3 holes at 90,336,420 pieces 90+246+84+126 (inherited 542)
x=43 q=41 L=618 load=1 or 2 holes {168} pieces 168+450 / holes {378,462} pieces 378+84+156 (615/616)
x=47 q=43 L=708 load=2 holes 510,696 pieces 510+186+12 (inherited 705)
x=53 q=47 L=870 load=3 holes 132,240,450 pieces 132+108+210+420 (inherited 866)
x=59 q=53 L=966 load=2 holes 198,906 pieces 198+708+60 (inherited 963)
x=61 q=59 L=1080 load=2 holes 378,990 pieces 378+612+90 (inherited 1077)
x=67 q=61 L=1284 load=3 holes 30,432,702 pieces 30+402+270+582 (inherited 1280)
Every hole is ≡0 or −2 mod x and every hole's killing prime is x. The chain pieces reverse under the
mirror n -> -n-L-2 (#5139), which the table shows at 37#/41#/43#.

Checker: check_bi.py re-derives every row from the witness integers (endpoints live, interior dead,
holes ≡0,−2 mod x), re-runs the three transfers from the primorial spectrum, and refuses five planted
mutations (a shifted hole, an inherited count off by one, a wrong ceiling, m off by one, a hole that is
not ≡0,−2). Output check_bi.out.

Scope: 8 rungs with witnesses, 3 transfer rungs, exact integers. No census run this return; ceilings
cited from A144311 via #5134/#5158 and #5106. Load <=3 is measured, not proved; the depth bound is the
route's weakest premise.
