Repository navigation
Conditional κ = 7.277211262868e-4 on #233's source-assisted row: the rank-3 whole-bank rung (self-contained, wired into CI) - #246
Conversation
b21f096 to
51b31f2
Compare
|
The three workflow runs for this head are Every run on every branch of this account has so far landed in Reproduced against a fresh shallow clone of exactly this head ( $ git clone --depth 1 --single-branch --branch research/rank3-rung-new-row \
https://github.com/maxime-fleury/integer-mult-bounds.git
$ git log --oneline -1
51b31f2 Add the complex bank ladder package and price its rank-3 rung at 7.277211262868e-4
$ python3 -B research/complex-bank-run3/verify.py # exit 0
$ python3 -B research/complex-bank-run3/importer66.py \
--contract research/complex-bank-run3/export-contract-rank3.json --self-test # exit 0
ok the real drop is refused, and reportable in part
self-test: 13 checks, 0 failed
$ git status --porcelain # emptyThe failure mode CI is there to catch for a package like this one is a checkout that does not reproduce the bytes the package hashes. Two checks cover that:
The |
…7211262868e-4 The package vendors every input it reads by sha256 -- the rung-1 package of CrocSwap#219, the frontier certificate of CrocSwap#207 and the unmerged source-assisted v4 row of CrocSwap#233, its earlier heads included -- and re-derives the whole complex-side ladder offline: both paid moments per rung, the 47-constraint assembly with adjacent-grid rejection, the padded width-66 schedule, the three export contracts and their import gate. On CrocSwap#233's row the first whole-bank family of the ledger is rank 3, not rank 16: 66 = 22 * 3 makes its bank exactly filled, so the T1 padding obligation does not arise, and the point prices 1819302815717/25*10^14 = 7.277211262868e-4, bit-bound, above the ladder top and above the pinned frontier. The rung is row-dependent and that is measured: its stability is re-taken on all six ranked heads of CrocSwap#233 and all nine width-66 rows of this repository, and the rung above it is a recorded negative. The change adds three things and edits nothing: the package, a test module whose pin controls check the digest gate fails closed, and the package's own workflow. It deliberately does not take a Makefile target in the aggregate, because `Makefile` and `.gitattributes` are recorded by other packages' manifests (the joint-dual and round-8 certificates among them) and editing either moves their digests; the workflow runs the same commands on 3.11, 3.13 and 3.14 and then requires `git diff --exit-code`. Generated with Codebuff 🤖 Co-Authored-By: Codebuff <noreply@codebuff.com>
51b31f2 to
545665b
Compare
|
Green on this head, and the upstream runs still need one approval. An earlier head of this branch (
Fork CI on this exact head (
The ladder job runs In the upstream repository the three workflow runs for this head are still Independently of either CI, the packed claim was replayed on a fresh shallow clone of this head |
|
Superseded by #262 (head |
Conditional κ = 7.277211262868e-4 on #233's source-assisted row: the rank-3 whole-bank rung, self-contained
κ = 1819302815717/25·10¹⁴ = 7.277211262868e-4, conditional,
binding = bit, priced on a rowwhose PR is unmerged (pinned by digest). A priced target on a scheduled row, not a witness.
Change and mathematical scope
One self-contained package, a test module, and the package's own workflow. No existing file is
edited.
research/complex-bank-run3/prices the complex-side bank ladder above PR224's rung 2 — rungs 3and 4 on the pinned profile (its padded width-66 schedule tops out at
711599961413937/10^18= 7.11599961413937e-4) — and then reads PR233(
research/source-assisted-v4-layer, head109a857a329d18ed5552d5573f17ddfa886ae57f) as a row.On that row the ledger's first whole-bank family is rank 3, not rank 16: 29,964 rank-3
children per vertex, three registers each, so
3 · 89,892 = 269,676 = 66 · 4,086three-copybanks. Because
66 = 22 · 3, the bank is exactly filled by 22 rank-3 blocks: this rung needs nopadding at all, and the T1 obligation the padded schedule exists to satisfy does not arise.
417325324839139/5·10^17= 8.346506496783e-4, the next 10⁻¹⁸ grid point up excluded7.282510899902e-4— bit-bound, so the complex supplier no longer binds1819302815717/25·10^14= 7.277211262868e-4,binding = bit711599961413937/10^18= 7.11599961413937e-4verify.py, offline1366380910073/2·10^15= 6.831904550365e-4verify.py, offline330942774629799/5·10^17= 6.61885549259598e-4The two asserted rows cannot drift:
verify.pyre-derives both numbers from the pinned bytesand asserts the comparisons. The two stated rows are dated observations of the queue and of
main, and are labelled as such.What proves it
verify.pypins 62 files by sha256 — the 33 this package owns, the 16 the vendored rung-1package of #219 carries, the 11 bodies of the bit drop and the six ranked heads of #233 — and
rebuilds the entire complex-side ladder: base, rung 2, rungs 3 and 4, both paid moments per rung,
the two 47-constraint assemblies with adjacent-grid rejection, the eligibility scan, the PR208
replica, the padded schedule, the instanced inventories, and all three export contracts (the
complex side's, the bit twin's with its 10-of-15 imported drop, and the rung's own). Then it
re-derives the rank-3 rung — the assignment from its addressing rule with zero padding, the
retained ledger, the bit leaf through #219's arithmetic, the point through the assembly rule — and
asserts both comparisons above. It reproduces PR207's, PR219's and PR224's published grid points
exactly.
The change adds exactly three things and edits nothing else:
research/complex-bank-run3/— the package;tests/test_complex_bank_run3.py— nine isolated checks (the rebuild, all three contracts'self-tests, the refusal codes 2 and 4 with the rung publishing 0 of 6 required exports as
bodies (ten bodies across them, all absent), the
rank-3 price against the reviewed result, the rank-4 negative) plus three failure controls
showing the digest gate fails closed on a tampered digest, a missing entry and a changed byte
rather than passing vacuously; discovered by the existing
testsgroup;.github/workflows/complex-bank-ladder.yml— the package's own job on 3.11, 3.13 and 3.14:verify.py, the vendored package's self-check, the three contracts' self-tests, thengit diff --exit-code. It is path-filtered, so it costs nothing outside this package.Why a workflow instead of a Makefile target. A target in the aggregate would be the local
convention, but
Makefileand.gitattributesare themselves recorded by other packages'manifests —
research/joint-dual/SOURCE.jsonasserts theMakefiledigest incheck_sources(),and the round-8, coordinated-frames, gaussian-parity and machine-transfer manifests record both
files. Editing either moves those digests and fails those groups'
git diff --exit-code. Apath-filtered workflow of the package's own keeps this change to new files only, which is also why
it needs no
.gitattributescarve-out: the package's byte-identical inputs are ordinary LF textplus gzip containers, committed from an LF worktree and verified here by hashing the blobs in
the index (all 62 pinned paths) rather than the worktree.
No network, no Git credentials, no third-party packages, and no dependency on an unmerged branch
at run time: everything read is vendored and pinned, so the measurement re-runs in a clean clone
and in CI.
It is row-dependent, and that is measured
rank3stability.json, re-derived byverify.py → check_rank3_stabilityand asserted:rank-3 child per copy (nine registers over the ledger's three copies) — eligibility is the
modular condition
22 | n₃, a property of the row, not of the family;and pricing it moves κ not at all (recorded as a negative);
pinned ladder row is eligible at
[11, 16, 20]and misses rank 3 by 39 registers.What the measurement does not cover: any head that does not exist yet (a new head is a new
measurement, not a silent pass), and rows outside this repository.
What this does not claim
C1–C7 stay
OPEN(the normalizer, the formal columns, the charts and prime witnesses, the envelopeparity and each child's frame/chain provenance) and R1–R4 are inherited verbatim from #219. No
importer exists for the rung: the row publishes 0 of 6 required exports as bodies — none of the
ten bodies across them (G1–G6) — so the gate refuses (exit 2) and reports in part when asked
(exit 4). That refusal is the correct answer, not a pass. The row's PR is
unmerged and pinned by digest, so a moved branch fails
check_manifestclosed and the measurementmust be re-taken. The 6,642 unpriced mixed tilings of the width-66 scan are not covered by the
measurement (two extremes per bank count are, and the artifact says so). Like every rung of this
ladder, this is a conditional priced target, not a witness, not an unconditional
multiplication theorem, not a practical multiplier, and not a Lean/kernel certificate.
Attribution and provenance
Apache-2.0. The vendored inputs — PR219's rung-1 package, PR207's frontier certificate and PR233's
row certificate plus its earlier heads — are retained byte-identically with their notices and
credits (
NOTICE.md,SOURCE.json); PR233's contribution (chafreaky) is what this rung is pricedon and is credited as such. Rung 2 and the ceiling argument are PR224's, the ladder and its
replica convention are PR208's, and the bank proof and engine chain are PR200/PR205/PR206/PR197/
PR184/PR168-v4/PR183/PR193's; nothing is re-implemented or restated as new. Prepared by Maxime
Fleury with Codebuff assistance.
Supersedes #232, which carries the same package without the rank-3 rung; #232 can be closed.