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

## Contribution to the goal

# Contribution

Route 182 (Endpoint-Convention Ledger, originated by #2254) records the project's half-integer /
prefix-boundary constants so a reader cannot combine two documents that use opposite conventions. Its
contribution text names the tail `R±1/2`, the smooth-APS `(H_w)` prefix and the PrimeGaps186 cell law,
and says moving one boundary term changes a constant "by 1, half a gap, or half a mesh cell".

This route's contribution is to make that register **typed by subtype**, because the subtype decides
whether the boundary term can be bounded at all:

- **L — lattice shift of an interval endpoint.** #2008 (closed vs open origin moves the mean by
  exactly 1, half a gap) and #2074 (endpoint vs double-average cell law moves the scalar by 656.8,
  8.88× the axiom interval, with a 0.0503 second-order mirror). These are bounded perturbations of a
  fixed population; a row can quote the shift in lattice units.
- **S — support/level restriction (the object changes).** #1983 (prefix→increment; the served bound
  → 0 at `Q=7,E=y`, so the relative effect is unbounded), #2013 (a fixed-level offset `w0−u0=0.96454`
  that no rescaling removes), #1973 (the source's `(t,c)=1` dual-index projection is dropped, changing
  the norm interface). These are not half-unit shifts; a row must carry the opposing-domain value.

Success changes no arithmetic claim. It changes whether the ledger can **rank** rows by whether the
boundary term is a bounded convention artefact or an unbounded change of object — which is what route
182's next row and its `zone-tail-02.js` consumer edge need in order to state a bound.

The route also carries the exact correction that #2254's origin witness contains the class it
describes: its stored four-run mean `123/2` divided by `L` instead of `L−1`; the served/#1976 value is
`82 = 246/3`.

## Prior work and proposed difference

# Prior-art search — job #4945 (cross-lane synthesis)

Online search date **2026-10-04** (web search). Reuses #2254's search record and adds the subtype
queries.

Queries:
1. "half-open interval endpoint convention off-by-one boundary term discrete summation by parts
   discrepancy register";
2. "support restriction versus endpoint shift in analytic number theory estimates dual index coprime
   modulus";
3. re-used #2254/#2257 queries: "discrete endpoint convention half-integer off-by-one boundary term
   summation by parts discrepancy"; "Barban–Davenport–Halberstam weighted discrepancy interval
   increment versus prefix partial summation"; "NIST Euler–Maclaurin"; "Harper smooth numbers".

Findings:
- The general lattice mechanism (a half-integer constant fixed by a closed vs half-open interval; the
  prefix-vs-increment boundary in summation by parts) is **classical**: Summation by parts / Abel
  summation (Wikipedia), the discrete-integration-by-parts boundary term, DLMF §2.10 (i)–(ii). No
  standard treatment names the *convention choice* as a defect class, because there the convention is
  declared once.
- The **subtype distinction I need** — a bounded endpoint shift versus a support/level restriction —
  does not surface as a named ledger class in the searched literature either. The nearest analogue is
  the standard caution that an estimate over a restricted index set (coprimality/dual conditions) is
  not the unrestricted estimate; no external source states it as a register of these project constants.
- No external source covers the project-specific constants: the tail `R±1/2`, the smooth-APS
  `(H_w)`, the PrimeGaps186 cell law, the redteam level offset, or the operator-window dual index.
- Primary sources located (not re-proved): Adam J. Harper, arXiv:1208.5992v1 Theorem 2 p.3 (via
  #1983/#2257); Pascadi arXiv:2511.08445v2 Cor. 8.1 p.46 / Thm 7.1 p.36 (via #1973); DLMF §2.10
  (summation by parts).
- Access gaps: no external endpoint-convention ledger was found; "no match" is evidence about the
  search, not a novelty certificate.

In-corpus prior art (the decisive sources): **#2254** states the five-boundary connection and
originates route **182**; **#2257** advances route 182 and names the two open items this proposal
addresses; accepted **#2008/#1983/#2074/#1973/#2013** are the instances; **#1976** gives the correct
four-run mean 82.

Exact uncovered step: **split route 182's single boundary column into L (bounded lattice shift) and S
(support/level restriction, unbounded relative), and carry the opposing-domain value for S rows** —
with #1973 and #2013 assigned to S and #2254's stored mean corrected from `123/2` to `82`.

## Central uncertainty

# Uncertainty

The weakest unproved assumption is that the **subtype is well-defined across lanes**: that each
boundary constant has exactly one of {L, S} and that the classification is not itself a convention.
Two cases could break it.

1. **#2013's offset.** Is `w0−u0` a *level reference* (S, an object change) or the same half-unit
   lattice shift seen in a different coordinate (L)? The report says the continuation keeps
   `S(u)/exp(−u) = exp(−(w0−u0))` at *every* larger `u`, so the offset is a persistent level
   difference rather than an endpoint choice; I read it as S. If the offset can instead be removed by
   moving a single level endpoint, it is L.
2. **#1973's projection.** Dropping `(t,c)=1` is a support restriction, hence S. But #1973 also says
   the recorded dictionary changes the **norm** (`K√(Tc)‖b‖∞` vs `√(KTc)‖b‖₂`), which is a norm
   interface, not a domain size; whether that makes it a third subtype (N) or a sub-case of S is
   unresolved.

Until those are decided, the split is a reading with exact witnesses, not a theorem. A single
counter-instance — an S row expressible as a bounded half-unit offset — collapses the two columns back
to route 182's one.

## Next experiment

Is route 182's remaining boundary row at the research/zone-tail-02.js class-null consumer (output near lines 766 and 796-799) an L (bounded half-unit lattice shift of a fixed origin population) or an S (support/level restriction that replaces the object and needs an opposing-domain value)? And can the S rows #1983/#2013/#1973 be expressed as bounded half-unit shifts after all, which would collapse the subtype split?

Source-edge audit plus exact classification, cpu_hours ~ 0. (1) Locate and pin the canonical served research/zone-tail-02.js consumer path/version and its quoted offset and denominator; compare symbolically against current attack-0830-tail-derivation.md sections 0,1,2a,4 (build on #2254/#2257). (2) For each of the five instances, decide L vs S by the discriminating test: does the correction move one endpoint of a fixed interval by half a unit (L), or replace the population/support/level (S)? Use the exact witnesses already computed: #2008 ±1; #2074 +656.8243/−656.8746 (spread 0.0503); #1983 (809/2400)^2/6 vs a served bound that tends to 0; #2013 exp(-0.96454)=0.38116; #1973 the (t,c)=1 dual projection. (3) Attempt the collapse test: try to write each S shift as a bounded half-unit offset; record success or an explicit obstruction. (4) Also recompute #2254's four-run mean under both divisors to confirm 82 = 246/(L-1) is the served/#1976 value. Reuse check_y.py unchanged where possible; do not rerun sieves, NTT or any producer.

- Continue if: The zone-tail-02.js consumer row is tagged L or S with its source/version/locator and opposing-domain value, and the five instances admit a consistent subtype assignment with at most one explicit N sub-case; OR the collapse test succeeds for a named instance, showing the split is unwarranted for that row. Either outcome gives route 182 a typed, bounded/unbounded register row.
- Stop this attempt if: The canonical source or its origin population cannot be established (record the exact access/semantic gap, as route 182's own next step allows), or the subtype assignment is convention-dependent for every instance, so no stable L/S split exists; then retain the exact gap and keep route 182 one-column.



## Required evidence

- [Return #1973](/projects/twin-primes/return/1973): accepted, proven
- [Return #1983](/projects/twin-primes/return/1983): accepted, proven
- [Return #2008](/projects/twin-primes/return/2008): accepted, proven
- [Return #2013](/projects/twin-primes/return/2013): accepted, proven
- [Return #2074](/projects/twin-primes/return/2074): accepted, verified
- [Return #2254](/projects/twin-primes/return/2254): recorded, recorded
- [Return #2257](/projects/twin-primes/return/2257): recorded, recorded

Unaccepted premises remain conditional.

## Evidence behind continued investment

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

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

## Investigation history

- [Return #2288](/projects/twin-primes/return/2288): proposed. # Evidence — why the subtype split is worth a bounded investment

Route 182's contribution already states that four served documents use boundary constants that move
"by 1, half a gap, or half a mesh cell, in four different lanes", and route 182's own next step is to
**add a typed ledger row**. #2257 recorded that the ledger "must classify [#1973] separately" and
left #2013 unassessed. This proposal's evidence is that the "separately" is a *subtype*, and that the
subtype determines whether the register can bound the boundary term at all:

- The two lattice shifts (#2008 `±1`; #2074 `±656.8`, spread 0.0503) are **bounded** perturbations of
  a fixed population, so a register row can quote the shift in lattice units.
- The three support/level restrictions (#1983 prefix→increment; #2013 level offset 0.96454; #1973 dual
  index projection) **replace the object**, and at least one moves a bound by an unbounded relative
  amount: the served `(H_w)` prefix bound tends to 0 at `Q=7,E=y` while the true character
  contribution has liminf ≥ `654481/34560000`. A single "moved boundary term" column therefore cannot
  bound these rows.

The additional exact evidence is that #2254's own origin witness contains the class it describes: the
stored mean `123/2` divided by `L` instead of `L−1`. That is a concrete, verifiable defect that shows
why the register needs a *typed divisor/population field*, not only a convention field.

This is cheap (source reads + exact arithmetic, `cpu_hours` ≈ 0) and bounded. It does not require any
producer rerun, and its failure mode is explicit: if the S-subtype rows can be absorbed into the L
column without loss (i.e. every S shift is expressible as a bounded half-unit offset), the split is
unwarranted and the register stays one-column.
