Skip to content

Price the bank-absorption ladder against the suppliers' own allocation rules: +2.17% needs a new residual type this word does not have (target, not built) - #208

Closed
maxime-fleury wants to merge 13 commits into
CrocSwap:mainfrom
maxime-fleury:research/banked-family-rungs
Closed

maxime-fleury wants to merge 13 commits into
CrocSwap:mainfrom
maxime-fleury:research/banked-family-rungs

Conversation

@maxime-fleury

@maxime-fleury maxime-fleury commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #204: this branch contains that package, and these are its last three commits.

The question this settles

The frontier is at its ceiling for every pricing move, so the only lever left is the child
ledger: absorbing a family into the banks drops its dirt and, by the row identity
W = (mass + D)/m, drops the stock with it. The open question in the previous revision was
what a bank requires of the family it absorbs. The suppliers' own bank proof answers it, and
it is not what I first assumed:

The claim, promoted

So the certified-shape ladder is the primary one. Priced with this package's exact model on
the queue's certified rows:

rung new residual types bit word absorbs complex word absorbs kappa gain binds
frontier (#207) 0 -- -- 213497/312500000 = 6.831904e-4 -- bit
certified 1 rank 22: 6,116 banks -- 7004273/10^10 = 7.004273e-4 +2.52% complex
certified 2 rank 22 rank 11: 177 banks 3541457/5e9 = 7.082914e-4 +3.67% complex
certified 3 rank 22 ranks 1, 8 1819669/25e8 = 7.278676e-4 +6.54% bit
certified 5 ranks 1, 7, 21 ranks 1, 8 4583099/5e9 = 9.166198e-4 +34.17% complex
certified 8 ranks 1, 3, 13, 21 ranks 1, 2, 3, 9 3066221/25e8 = 1.226488e-3 +79.52% bit

A single new residual type reaches +2.52% -- the unmoved complex side's own cap, with the
complex word untouched -- and 750 of the 1,024 candidate pairs sit above the frontier.

The conservative subset stays in the package and is still a real schedule, just a narrower
one: a family whose own rank divides the bank width and whose own volume is a whole number
of banks can be banked on its own blocks, needing no shape beyond the word's. On these two
words that is the bit word's ranks 6, 8, 18 and the complex word's rank 11, giving +2.17%
(one type), +2.52% (two, the same cap) and +3.67% (three).

One caveat belongs here, from the supplier's proof: which families may be banked is a
family-allocation question, not an arithmetic one. #207 excludes internal alias recipients,
source births and deleted terminals "from fresh bank allocation", and its CROSSOVERS records
that the construction is "ready for future genuinely different residual types" -- so a rung is
a priced target in exactly the sense of the family the supplier would have to allocate banks to.

What is proven here

  • The precedent, checked against the vendored rows: rank 60 on width 72, 60 ∤ 72,
    volume 396,000 = 72 x 5,500, residual families 4 and 24 with 18x4, 3x24 and
    6x4 + 2x24 all equal to 72.
  • Every priced row: whole banks (banks * m equals the absorbed rank mass), the row
    identity after absorption, monotone W, adjacent-grid exclusion under PR200's own interval
    arithmetic on its 10^-18 grid.
  • Independent re-pricing: verify.py re-derives the tileable families of both words from
    the queue's certificate, re-prices the conservative tier's first four rungs from that
    certificate without using rungs.py, and re-checks that every certified-shape arm fills
    whole banks.
  • The assembly replica equals PR184's own assemble() on the vendored pair and reproduces
    Pack PR200 diagonal bit residuals into completed banks (conditional κ = 0.000683061299399923) #205's and Conditional kappa 6.831904550365e-4: coordinated frame optimization and completed entrance banks #207's published kappa to within one grid step.
  • All 23 package pins, with explicitly LF JSON so a Windows and a Linux checkout hash the same.

What building a rung physically needs (not done here)

The rung fixes the arithmetic interface their generator consumes -- the cheapest certified
rung is 6,116 banks of 72 registers on the bit word, volume 440,352 -- but the construction
needs the supplier's pinned tree (a 51,416,352-byte baseline archive plus PR200 at
a1175449...), numpy==2.3.5/scipy==1.17.0, the exact gauge charts, the normalizer
routing, the F2 and defining-integer columns and the 24,401 frame prime witnesses. Named as
the work that remains, not as work that was done. Each rung stays a target with a falsifiable
number, the way this package's lever model predicted #205's banked row before it was built.

Reproduce

python3 -B research/composed-diagonal-bit-bootstrap/verify.py   # 14 checks, ~70 s
python3 -B research/composed-diagonal-bit-bootstrap/rungs.py    # both tiers, ~25 s

Generated with Codebuff

maxime-fleury and others added 10 commits October 9, 2026 17:12
…inite leaf

PR200 certifies a strictly stronger bit word but publishes it only with its own
complex word, where the complex branch binds; it announces the stacked
composition "as separate work". Pricing that composition through PR194's
unchanged assembly with PR185's finite ordinary leaf gives kappa =
1693287/2500000000 = 6.773148e-4, +0.1826% over PR197's standing claim and
+0.0639% over the value PR200 announced for it.

The package vendors the minimum needed to price it: the PR168 v4 assembly, PR184's
pricer and finite bridge, PR194's certificate and PR200's bit certificate, all
digest-pinned. verify.py reproduces the certificate from those pins, reproduces
PR200's announced depth-0 value, shows PR184's grid leaf and PR200's published
atom wrapper differ by one grid step at depth 0 and not at all once bootstrapped,
requires the claim to beat PR197 and to sit inside one grid step of the word's own
C/(1+C) ceiling, and refuses three corruption controls.
…e published values

Banking a word's rank-60 exterior corrections is the only validated way to raise a
bit coarse saving materially, and this word has the same 2,200 of them per copy
that PR197 banked. levers.py solves the paid-moment inequality exactly over the
rationals and models that transformation as the accounting PR197 validated: drop
the rank-60 entries, keep the per-copy deficit, let the stock fall to what the row
identity requires.

The model reproduces PR187's unpacked row, PR197's independently certified banked
row, and PR200's unpacked row to 1e-13 relative or better, so it is checked on a
word it was not fitted to. Applied here it predicts kappa = 6.83061299e-4, +0.8484%
over this package's claim, and pins the falsifiable target for whoever builds the
banks: total stock 56,402 over three copies, per-copy deficit unchanged at 1,936,
no rank-60 child remaining. levers.json records the MODELLED, NOT CONSTRUCTED
status and verify.py enforces it.
Fraction has no float-style __format__ before 3.12, so the two gain prints raised
TypeError there; both now format floats. verify.py also compares the model's
shipped numbers with a tolerance on floats and exactness on integers and exact
rationals, so a different libm cannot fail the check by moving digits the model's
bisection cannot resolve anyway.
Reusing the vendored interval_moment module on the same 10^-18 grid turns the
model's three checks from 1e-13 tolerances into exact reproductions of PR187's
certificate, PR197's certified banked word and PR200's certificate, so the
predicted 0.8484% gain rests on the supplier's arithmetic rather than on a
portable float.
CrocSwap#202 carries the same bit and complex words at exactly the depth-0 value this
package prices, so the cross-check now points at it: the whole claimed gain is
the finite leaf it does not apply.
The lever model's prediction was built within the half hour: audit.py prices
CrocSwap#205's, CrocSwap#206's and CrocSwap#207's banked rows from byte-identical copies of their
certificates and reproduces each author's coarse saving to the last digit,
confirming every one sits at its own word's ceiling. The cheapest admissible
ledger of the frontier row's mass would lift it 76.6%, which bounds the room a
better schedule can still buy.
PR207's certificate is stored with CRLF upstream, so the committed blob is the
LF-normalised copy while the working tree kept the Windows line endings; the pin
now records the digest a clean Linux checkout produces.
The assembly takes the smaller branch budget, so the complex word caps the
frontier at +2.52% and the bit word's 377,316 rank-1 children -- dirt the banks
refuse -- are enough to reach it. Soaking both rows' small children buys +16% to
+76% on the 10^-10 grid; every rung is a target, not a construction, and the
calculator is checked against PR184's own assemble() and against PR205's and
PR207's published kappa.
Bisecting the bit word's smallest-child population shows 57/1000 of its mass is
enough to clear the complex side, so the whole +2.52% first rung is a 5.7%
coarsening of one population rather than a new construction. CrocSwap#207's bank proof
settles the packing side itself, so the README now points the next move at the
word's child inventory, which is where the ledger term actually lives.
Absorbing a family into the banks drops its dirt from the ledger, and by the row
identity W = (mass + D)/m the stock drops with it. Searching every family set
over all ranks and pricing the best of each subset size exactly sorts the rungs
into two tiers. Families whose blocks tile a bank by themselves -- the bit word's
ranks 6, 8, 18 and the complex word's rank 11, the shape CrocSwap#207's own schedule has
-- are sound schedules: +2.17% for one new residual type, +2.52% for two, +3.67%
for three. Keeping only the volume condition, which is what the certified
CrocSwap#197/CrocSwap#205/CrocSwap#207 banks satisfy (their absorbed rank 60 does not divide 72 either),
opens a bracket up to +79.52%. verify.py re-derives the sound families of both
words from the queue's certificate and re-prices the first four sound rungs
without using rungs.py.

Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@maxime-fleury
maxime-fleury force-pushed the research/banked-family-rungs branch from 5a144d3 to 344c3f8 Compare October 9, 2026 17:13
maxime-fleury and others added 2 commits October 9, 2026 19:29
The queue's own banked rows and CrocSwap#207's BANK-PROOF-PR200.md decide the question
this package had left open: the absorbed entries are the rank-60 entrance
exteriors on a width-72 word, so an absorbed family's rank is free, and 60 does
not divide 72. What must hold is that the absorbed volume fills whole banks
(396,000 = 72 x 5,500 over three copies) and that a bank's blocks -- the word's
own residual families, 4 and 24 -- tile the width, as their 18 x 4, 3 x 24 and
mixed 6 x 4 + 2 x 24 patterns do. So the certified-shape ladder becomes the
primary one (+2.52% for a single new residual type, +6.54% for three, +79.52%
for eight), and banking each family on its own blocks stays as the conservative
subset. verify.py checks the precedent against the vendored banked rows and
requires the two tiers to keep that relation.

Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
…hedule

allocate.py answers, from the suppliers' own code rather than from this model,
which families their construction may bank: exactly one, the selected
entrance-gauge exteriors (`hist[3*z['dim']] += 1`, removed by `H.pop(60)`), and
this word has already taken it. Every rank the ladder would absorb is a retained
family, needing the "future genuinely different residual types" the proof
reserves; rank 2 is the alias children and rank 1 carries the source births,
both excluded "from fresh bank allocation". It also fixes the schedule a builder
would hand their generator for the two headline rungs, and verify.py re-derives
the classification, the block patterns, the retained ledger and the row identity
from the queue's certificate.

Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@maxime-fleury maxime-fleury changed the title Price the bank-absorption ladder on the frontier word: +2.17% for one new residual type (target, not built) Price the bank-absorption ladder against the suppliers' own allocation rules: +2.17% needs a new residual type this word does not have (target, not built) Oct 9, 2026
CrocSwap#215 derives from the suppliers' own papers what allocate.py reads out of
their code: a gauged role's correction is one child of width 3*dim sigma, the
bank replaces exactly that child, and an entrance gauge needs content that is
both don't-care and restored -- which targets (they accumulate) and sources
(they are consumed) fail. The rung section now names that mechanism, records
the two near-misses CrocSwap#215 prices outside it, and keeps the package's verdict
unchanged.

Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

Thank you @maxime-fleury. This contribution is now retained on main in the scoped 100-PR review and contributor credits.

Contribution: Bank-absorption ladder priced against actual allocation rules.

Review and limits: Reviewed research target, not a completed stronger multiplication witness. Exact pricing and explicit missing implementation obligations are useful contributions.

The complete original source, notices and relevant execution evidence are retained through the pinned source archive. The review distinguishes fresh local runs, source-bound historical Linux CI and prior exact-head review; it does not claim 100 fresh full mathematical audits. Closing this historical PR as reconciled. This preserves parallel and cumulative credit without replacing the selected frontier or promoting priced research targets to completed constructions.

Reviewed head: 2352ffee98179a14af9059be316fb282711000fe. Publication: 50d768818f579d4e165b4c257c6ee25bca300802.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants