Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 39 additions & 0 deletions research/gen5b-shared-kernels/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Attribution and scope

New material is provided under the repository's Apache-2.0 license and was
prepared with substantial OpenAI assistance. Separate AI-assisted checks are
not human peer review, an OpenAI endorsement or proof-assistant verification.

This proposal builds on Chafik Boukhalfa's PR #299 package, prepared with
substantial Anthropic Claude assistance, pinned at
`5f6bd3fbc0e6796dd31263cef1f06dc968186f64`. It retains that package's source
lineage, licensing and assistance disclosures. Its
[full immutable notice](https://github.com/CrocSwap/integer-mult-bounds/blob/5f6bd3fbc0e6796dd31263cef1f06dc968186f64/research/five-stage-gen5b-kernels-restorations-sinks/NOTICE.md)
remains applicable to the input data and inherited mechanisms.

In particular, the construction inherits DreamingOfClouds' gen5/stagealt word,
Rohan Arun's descent and target stages, eumemic's scalar/five-stage/kernel
pipeline, utcorvusvolat-dotcom's early restoration mechanism, Dugongue's
endpoint-aware banking and terminal-sink work, Evan McKinney's completed-bank
method, and Chafik Boukhalfa's complex supplier. The full notice credits
Henry Grant, Jacob Sussman, ikeboy, icekylinx, James Chang, sennemmi and the
earlier contributors and dependencies.

The new contribution is the shared-donor 70- and 72-pivot construction, its
composition with the coordinated 12-helper/root/partner schedule, explicit
role-to-bank allocation, independently authored changed-stage checks and
conditional repricing. The co-retiming component is the prior PR #301
contribution, retained here for standalone reproduction. It makes no exclusive
priority claim for inherited mechanisms or a global optimum claim. PR #294's
separate assembly-domain proposal is not modified or required.

Upstream input files are fetched as immutable data. Their original notices
and source-specific licensing remain unchanged. No upstream executable is
imported or run by this package.

The PR #300 second constructed-frame descent is Rohan Arun's contribution,
pinned at `fd516176fd068e4fa7af14b40cd878ce8c305296`; its source and attribution
are retained by reference to the immutable
[full package](https://github.com/rohanarun/integer-mult-bounds/tree/fd516176fd068e4fa7af14b40cd878ce8c305296/research/five-stage-gen5b-full).
The new composition checks do not claim authorship of that descent or reprove
its unchanged physical/source-span admission. PR #301 itself is unchanged.
151 changes: 151 additions & 0 deletions research/gen5b-shared-kernels/PROOF-CORETIME12.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Co-retiming twelve helpers with their partner deliveries

All claims below concern the pinned PR #299 input and retain its unchanged
stage and compiler interfaces. All ranks and containments are over Q unless
the field is explicitly stated. This is a differential construction proof,
not a new proof of the inherited all-size foundations.

## 1. Selection and the obstruction to an unchanged-frame restoration

The root-cut screen identifies 34 rank-21 entrance helpers `a`. Each has one
forward write `a += b`. Their common write frame `J` has dimension 22. Their
last root deliveries occur at different dimension-23 hyperplanes `A` and `B`,
whose intersection is `J` and whose join is full dimension 24.

Thus merely moving `a -= b` earlier, while preserving both delivery frames,
does not improve its endpoint. The local candidate screen instead identifies
a preceding rank-22 root delivery by a blocker `c` to the relevant target `t`.
Two conflicting candidates are excluded. Among the remaining 32, keep exactly
the candidates whose old-restoration pair is hit twice. This gives 12 new
helpers and six old restorations to undo; all selected identities are derived
from pinned data and recorded in `certificates/coretime12/local.json`.

## 2. The changed schedule

At each selected blocker root:

1. Move `b`'s later delivery to `t` earlier, at `J`.
2. Deliver `c` to its unaffected target at its old frame `K`.
3. Perform the partner setup and its unaffected delivery at the inherited
post-descent rank-22 frame.
4. Advance the affected target, blocker and partner carrier as required to
`B`, and perform their remaining deliveries there.
5. After `a`'s original final delivery at `A`, perform `a -= b` at `A`,
omitting its original cleanup write.

The selected preceding prefix and gauge frames lie in `J`. For each moved
donor, the union of all uncancelled source dependencies has 180 leaves and
lies in `J`; this check is stronger than a mod-2 cancellation test. The local
checker verifies the integer root map on independent helper/target values.

The complete suffix checker includes all unchanged side roots, partner
deliveries, inverse cleanup, uninject operations and kernel restorations.
It constructs both 55,985-event streams and compares all 18,954 columns over
F2 and Z in both directions. Its entry states are arbitrary, so the equality
composes with the same unchanged prefix. Missing restoration is a negative
control. The inherited prefix's own correctness is not re-proved.

The two overlapping kernel donors are never pivots; their pinned setup bases
lie in `J`. Kernel setup precedes first ordinary use and inverse kernel writes
follow cleanup under the retained stage contract. Seven inherited sinks and
all other suffix operations remain in the comparison.

## 3. Correct chronological geometry

The earlier root-only proposal missed a partner delivery at the old `K` frame.
Promoting the target to `B` and then delivering again at `K` is non-monotone.
The schedule above explicitly co-retimes that partner read and charges its
carrier's split climb.

The frame checker starts affected helpers at their actual base-forward final
frames. No affected helper participates in a descent change. Each of the 12
selected partner setups does participate: its pinned descent record replaces
a dimension-2 setup by a dimension-22 setup. The checker verifies the exact
new basis and uses it in both schedules. It checks every affected helper,
carrier and target path, including the six reverted endpoints, and rejects
omitting the partner promotion or old-restoration undo.

Targets use a difference census from ZERO. Their unchanged earlier prefixes
end within the verified first precursor frame under the retained source
admission; the local source/gauge/target-prefix checks explicitly establish
the required new cut containments. No full untouched-prefix frame replay is
claimed.

## 4. Paid profile and endpoint demands

For the new helper/blocker operations alone, one surgery changes the local
histogram by `{1:+1, 2:-1}`. Undoing one inherited early restoration reverses
its delta `{1:+3, 2:-2}`. Co-retiming each partner carrier splits one rank-2
climb into two rank-1 climbs, adding `{1:+2, 2:-1}`. Therefore

```
12*{1:+1, 2:-1} - 6*{1:+3, 2:-2} + 12*{1:+2, 2:-1}
= {1:+18, 2:-12}.
```

The actual chronological path census independently obtains this delta; it is
not used as an unchecked input to pricing. It adds six calls and removes six
units of rank mass locally. Five stages therefore add 30 calls and remove 30
units of rank mass. The reflected paid ledger has the same rank increments
because annihilator inclusion reverses each nested frame pair.

Each new helper changes residual rank 3 to 2. Each of the six reverted old
helpers changes residual rank 3 to 4. Thus the family-count delta is
`{2:+12, 3:-18, 4:+6}`, of total rank mass -6.

For each stage's 60 replicas, replace 27 full rank-3 banks by 12 full rank-2
banks and 12 full rank-4 banks. Each bank has width 120. Demand is exact and
the number of banks drops by three per stage, or 15 in the five-stage literal
stock. The bank checker reconstructs every role's entrance and endpoint, removes the
seven sinks, and assigns all 925,620 role/replica occurrences in a stage to
explicit bank and block addresses without collisions or omissions. Five
disjoint stage namespaces give 4,628,100 assignments. Every bank is full,
attaining the exact volume lower bound. The
unreplicated stock drops by `15/60 = 1/4`; this convention differs from
normalizing the literal stock by five.

With `W = 1229735/60`, the independently repriced histogram has 482,665 calls,
rank mass 2,455,070 and unchanged deficit `120 W - 2455070 = 4400`.

## 5. Changed chart and scalar bounds

Using the retained weighted form `G = I - J/9`, construct each new rank-2
residual projector as the endpoint projector minus its rank-21 entrance
projector. Its complementary completion has rank 22. An exact orthogonal
block basis uses residual, entrance and exterior columns. The six reverted
rank-4 charts are reconstructed from their original rank-20 entrances.

Every changed 24-by-24 chart is invertible. A separately replayed exact
factor program recovers it from the identity. The largest uses 142 factors;
factor numerators are at most 11 and denominators at most 9. These fit the
retained chart-factor bound 576 and normalizer bound 815. New pure rank-2
banks require at most 60 block scalars, within width 120; all are units under
the retained characteristic `q > 2^80` hypothesis.

The before/after nonnegative coefficient majorant maps agree exactly in both
directions. A second certificate transports the old scalar norms through
172,944 commuting adjacent swaps. Only twelve destination update orders
change; each differs by moving one unit update. At intermediate cuts the new
row is an old row plus or minus one old source row, yielding a conservative
factor-two bound in each direction. Its resulting 103-bit payload remains
below the inherited 104-bit cap.

The changed displayed finite coefficient is 90,386,288,803,484,701, or 57 bits,
below the retained 80-bit coefficient cap. All three bootstrap gaps and the
displayed cutoffs remain positive. These are checks at the displayed fixed
bill, not a numerical assignment to the unknown inherited full constant.

## 6. Exact conditional rate

The independently authored rational enclosure engine certifies the coarse
root between adjacent points `750469712644613/10^18` and
`750469712644614/10^18`, accepting the lower point and rejecting the higher.
Three retained ordinary bootstrap steps and the unchanged complex saving
produce `kappa = 749906929903449/10^18`. All 47 displayed outer constraints
are strict; increasing kappa by `10^-18` fails `g3_above_kappa`.

This establishes the stated conditional arithmetic consequence of the changed
profile. It supplies no unconditional bound, replacement of the inherited
finite admission, or full proof-assistant verification of multiplication.

Prepared with substantial OpenAI assistance. See [NOTICE.md](NOTICE.md).
159 changes: 159 additions & 0 deletions research/gen5b-shared-kernels/PROOF-KERNEL72.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Shared-donor kernel validation (separate from frozen final12)

## Verified candidate

Pinned source: PR299 commit `5f6bd3fbc0e6796dd31263cef1f06dc968186f64`.
The larger candidate uses the line groups `(6,7)`, `(16,17)`, `(2,3)`, dropping
only pivot relations 10859 and 10861 from the first group. It has 72 pivots,
93 distinct donors,165 helper roles and 473 setup/restore shear pairs.
All three individual groups and both proposed disjoint unions were checked.
No source program was imported or executed.

Every role is plain, not reused, not removed by the sink stage, not a member
of the frozen kernel stage, not an endpoint in the 904 descent changes, and
not touched by final12 and not an old restored endpoint. Any restoration-donor
uses are included in the chronological audit (none occur for these witnesses). All new helper endpoints
remain FULL. Each group uses the common entrance line E=span(e_i-e_j).
Its Gram entry for 9 I-J is 18, so it is nondegenerate over Q and every retained
prime q > 2^80. Exact rational containment checks place E inside every member's
first required frame and check each subsequent old chronological frame step.
The 72-pivot union uses 663 distinct old frame containments.

## Scalar identity on arbitrary independent dirty inputs

This is a compositional proof at the bit F2 interface, not a claim that the
entire parity-filtered decoder is an integer identity. Let Q be the actual
prefix through all initial plain dirty compensation reads, but before source
injections or any new member's other use. Let S be the old remaining word.
The inherited complete decoder is U=SQ: target += source, all source/dirty
coordinates fixed.

Let K=sum e_d e_p^T over every new donor/pivot incidence and A=I+K.
Pivot and donor sets are disjoint, hence K²=0, A^-1=A in F2, and all individual
setup shears commute, even with a donor shared by several pivots.
All new members remain unchanged in Q except for their target compensation
columns. Write R for that response matrix. The independently reconstructed
integer adjoint, reduced modulo 2, verifies R_p=sum_d R_d for each pivot.
If Q' is Q with precisely the pivot compensation reads omitted, this gives
A Q'=Q A. Therefore the proposed complete word is

A^-1 S A Q' = A^-1 S Q A = A^-1 U A = U.

The final equality holds because U touches only source-to-target entries,
whereas A touches only dirty helper entries. This proves every source,
target and dirty column, in both directions, on arbitrary entry values.
The executable checker compares the corresponding full 18,954-column formal
matrices. Its old remainder is the inherited decoder composed with Q^-1;
it does not pretend to be a new replay of every old physical record.
Omitting a setup or a restoration, or corrupting one response relation,
is rejected by regression controls.

## Literal common prefix

The independent signed-adjoint reconstruction agrees with all 1,720 existing
kernel cut-read triples. The plain odd-read block has 648,088 ADDs; its last
read is `[3503,16719,-1]` at base record 648087. The target-prefix setup cut is
696719, later than this block. Existing kernel setups occur inside this block
and use disjoint helper support. New setups can therefore be inserted at the
structural boundary immediately before the first source injection. Removing
new pivot reads does not require shifting any inherited indexed transform:
apply the new stage after the inherited transforms, using that structural
boundary. All target operations already before this boundary merely read
unmodified helper columns or use disjoint frozen kernel helpers.

The source witness is `kernel-witness.json` in this package; `check_shared_kernel.py` independently derives the
same response and physical-role map. The common cut is semantic (before first
source injection), rather than reusing an invalid post-transformation record
number.

## Paid moves, including donor sharing

Each new pivot starts at E instead of ZERO, so its first old rank-d MOVE is
replaced by rank d-1. Each distinct donor first moves ZERO→E once, performs all
its same-E setup shears, then moves E→its old first frame, rank d-1. A donor
used 21 times still pays that rank 1 entrance exactly once; its 21 scalar ADDs
are all retained and counted. At the end every member is at FULL, so all 473
inverse shears are legal at FULL and require no additional MOVE.
The new setup matrices commute, so either exact reverse ordering or the
source's family ordering is valid; the emitted specification uses reversal.

Measured local delta:

rank 1:+93, rank 2:+144, rank 3:-144, rank 4:+19, rank 5:-17, rank 6:-2.

Its paid rank mass drops by 72. Residual family demand changes by
`rank 24:-72, rank 23:+72`. Bank assignment and exact pricing are separate
certificates; the path checker does not infer them from volume alone.

## Conservative scalar prefix bound

`check_scalar_bounds.py` independently replays all source/helper updates in
both directions, including the final12 suffix and all frozen kernel shears.
All 14 terminal-sink writes are redirected to their actual target pivots;
removed sink reads, deliveries and cleanup updates are absent. At each extra
shear it uses the actual previously propagated
nonnegative row weight, not a unit-cost scalar approximation.

For an upper bound, it restores every omitted target-compression read and
every newly removed pivot compensation read. It includes the two target-prefix
batches AND the seven sink setup/restore batches. Their combined directed
source-to-destination target graph has 681 edges and 908 vertices and is checked
acyclic. Each edge has weight equal to its total number of ADD occurrences,
two per setup/restore pair. Applying those weighted edges in topological order
to all accumulated nonnegative target increments dominates any chronological
placement of those ADDs: it counts every directed path with the product of
its edge multiplicities, including mixed prefix-to-sink paths. This proof works
in both execution directions. Target values never feed sources or helpers.
The monotonicity of every cancellation-free ADD majorant also bounds all
intermediate values, not only the final vectors.

Old and new uncompressed majorants are compared, with only the new setup and
restoration shears inserted. Their difference is nonnegative. The maximum
added forward majorant is 80662; the inverse one is 1334317. Adding these to
the inherited bounds 77985 and 2475558 yields

F_new <=158647, B_new <=3809875.
64 F_new^3 B_new^2 =3709343221562739318443143000000 <2^104.

This closes the retained payload-size cap conditional on the inherited old
majorant bounds. The checker is conservative about compressed target paths;
it does not claim to reproduce a new full physical record hash.

## Role-resolved integration with final12

The unified bank checker reconstructs the original 15,427 helper roles, applies
all old kernel entrances, 434 retained early restorations, twelve new final12
endpoints, and the 72 additional rank-one kernel entrances. The seven sinks
remain removed. New kernel membership is checked disjoint from the affected
final12 helpers and the inherited kernel and descent selections.

The residual rank changes relative to final12 are rank 24:-72 and rank 23:+72.
The combined inventory has 1,646 rank-23 residuals and 11,401 rank-24 residuals;
its total residual rank is 322,862 per replica. The explicit width-120 pattern
`(23,23,23,23,24,4)` absorbs each group of four new rank-23 residuals. The
remaining pure patterns are adjusted with exact integer counts.

All 925,620 role/replica occurrences in a stage are assigned without collision
or omission to explicit bank and block addresses. Five stages use disjoint
bank namespaces. All 161,431 banks per stage are full, attaining the volume
lower bound. Total bank stock is 807,155; with 422,400 data families, literal
stock is 1,229,555. The compact address table is reproducibly generated rather
than duplicated in the repository.

The independently reproduced moment/assembly certificate uses the measured
kernel histogram and final12 chronological delta, while the unified finite
bill charges all 473 setup and 473 restoration shears. Removed pivot reads
are not subtracted from that conservative scalar bill. The corrected
sink-aware payload bound is supplied separately by `check_scalar_bounds.py`.
The line charts, first-frame splits, changed final12 charts and retained
normalizer allowance are checked by the chart modules.

## Evidence boundary

The changed prefix is proved compositionally over F2 using the inherited
complete decoder as a hypothesis. The checker is not a newly executed
complete upstream physical program. All unchanged PR299 and final12 compiler,
routing, prime, reconstruction, complex-supplier and analytic contracts remain
inherited. No unconditional multiplication theorem, exhaustive priority claim,
or optimality claim is asserted. The separate PR300 case, when selected, uses
its explicit additional data pin and verified non-overlap certificate.
Loading