Skip to content
Closed
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions research/complex-bank-run2/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Notice and attribution

This package is Apache-2.0, like the repository. It adds a ledger and a price; it builds no
word and changes no existing file.

## Sources it depends on

* **PR219** (`research/residual-bank-run1`, head `237067f483bccf931507a5386946cf66da0a915a`,
by halve-bit). Rung 1 itself: the rank-22 retained-ledger schedule, the exact interval
moment engine as vendored there, the 47-constraint balanced assembly, and the
obligations this package inherits. **Vendored byte-identically** under
`references/pr219-run1/` (16 files) and imported at run time -- its `schedule.py` and
`arithmetic.py` produce rung 1's published grid point inside this package, and the
vendored copy also self-verifies in place.
* **PR207** (`research/coordinated-crossover-pr200`, head `cd14825`, by Dugongue). The
frontier row pair and the published kappa this package reproduces exactly, vendored as
`references/pr207-coordinated-crossover.certificate.json`. The upstream blob is
`23416f66…` with CRLF line endings; this repository's `* text=auto eol=lf` normalizes the
vendored copy to LF (`f4e30cca…`), and the parsed JSON is identical to the upstream file.
* **PR208** (`research/composed-diagonal-bit-bootstrap`, by the same author as this
package). The bank-absorption ladder, the `10^-10` pricing convention and the published
rung-2 value `3541457/5*10^9` this package reproduces as its independent replica. Not
vendored; cited by value.
* **PR184 / PR168-v4 and the PR197/PR200/PR205 line**, inherited through #219: the
balanced assembly with its 47 strict constraints and seven margins, PR200's exact
rational interval moment, and #205's completed-banks pack of the bit word (its
`physical.banks`, gauge roles, copies and `bank_controls` are the pinned evidence that
the queue's only bank construction is the bit word's).

## Credit

The ceiling argument, the complex-side ledger, its price in two conventions, the blocker
report and the verifier are this package's contribution. Everything credited above is
retained, pinned by sha256 in `SOURCE.json` (21 files), and unmodified.

## Assistance

Prepared with Anthropic Claude assistance. No claim in this package is presented as a
formal verification of an unconditional multiplication theorem; see the scope statement in
`README.md` and the open obligations in `obligations.json`.
115 changes: 115 additions & 0 deletions research/complex-bank-run2/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# What is proved here, and what is only priced

## Setting

PR208 prices a ladder of bank absorptions on PR200's bit word. #219 built rung 1 of that
ladder as a certified accounting construction: the rank-22 bin leaves the ledger, its
440,352 three-copy registers of dirt become 6,116 width-72 banks, and the composition
`T(n) = O(n (log n)^(1-kappa))` follows with

kappa = 700427501305159/10^18 = 0.000700427501305159,

conditional on that submission's R1-R4. This package asks what rung 2 is, prices it
exactly, and reports why it cannot be built yet.

## Fact 1: rung 1 sits on the complex branch's ceiling

The composition's budget is `a = min(bit_leaf, (1-beta) C_complex - weak)` and its kappa
is `(1-eta) q/(1+q)` with `q = a(1-2 eta)`, floored to the grid. Holding the complex coarse
saving `C_complex = 700918443859411/10^18` fixed, the largest kappa any bit ledger can
reach is that expression at `a = C_complex`,

C/(1+C) = 700918443859411/1000700918443859411 = 7.0042750130515981e-4.

Rung 1's kappa is `7.00427501305159e-4`: `8.52e-19` below that ceiling, i.e. inside one
`10^-18` grid step. Both numbers are produced here by the vendored #219 code and by this
package's replica of the assembly rule, which also reproduces #207's published
`1366380910073/2*10^15` exactly from #207's own `a_bit`/`a_complex`.

Consequently a rung above rung 1 cannot be taken on the bit word. The bit side's headroom
at that point is 1.95e-5 of coarse saving and is unspendable while the complex branch
binds.

## Fact 2: the rung-2 ledger, and its invariants

Let the complex supplier's row be the pinned profile: width `m = 66`, one copy
`W = 12,052`, deficit `D = 1,320`, and ledger `hist` with `hist[11] = 1,062`. Over the
supplier's three copies let `H = 3 * hist`, `W3 = 3W`, `D3 = 3D`, so that the row identity
`66 * 36,156 - 2,382,336 = 3,960` holds with integral stock.

Absorb the rank-11 family:

1. **volume**: `11 * H[11] = 11 * 3,186 = 35,046 = 66 * 531`, so the absorbed dirt fills
exactly 531 banks (177 one copy);
2. **retained ledger**: `H' = H \ {11}` has rank mass `2,347,290 = 2,382,336 - 35,046`;
3. **row identity and stock**: `W3' = (2,347,290 + 3,960)/66 = 35,625`, integral, and
`W3 - W3' = 531` equals the bank count -- the absorption removes exactly the banks it
creates;
4. **largest child** is unchanged at 20, and the children count falls from 639,441 to
636,255.

These four are asserted in `ledger.py` and re-derived in `verify.py`; the whole-bank
condition, the row identity and the stock-drop identity are the whole of what the
supplier's own allocation rule requires of a schedule.

## Fact 3: the prices

Two paid moments on the pinned engine (PR200's exact rational interval moment, used on the
complex side without the bit branch's rare-class fallback, as #219 uses it):

coarse(before) = 700918443859411/10^18 = 7.00918443859411e-4
coarse(after) = 708793603125109/10^18 = 7.08793603125109e-4

each the largest `10^-18` grid point whose paid moment is below 1, with the adjacent grid
point excluded. The frontier certificate's `a_complex` equals the first, and
`verify.py` asserts that equality -- the row priced here is the one the composition already
uses.

Assembling with the bit leaf of rung 1 and the absorbed complex saving gives the rung-2
budget `a2 = (1-beta) * coarse(after) - weak` (the complex branch binds), hence

kappa_2 = 354145785295363/5*10^17 = 0.000708291570590726 (binding complex),

with the next `10^-18` grid point rejected by the unchanged 47-constraint assembly, and
`kappa_2 = 8.56e-19` below the new ceiling `coarse(after)/(1+coarse(after))`.

Independently, in the `10^-10` convention of PR208's pricing model, the same ledger prices
`3541457/5*10^9 = 7.082914e-4` -- PR208's own published value for this rung, reproduced
here; the two conventions differ by `1.7e-11`, four orders below their agreement.

## Fact 4: the blocker

`obligations.json` lists five new obligations and inherits #219's four. The first is not
dischargeable from the pins:

* the complex supplier's certificate has **no key containing `bank`**, and neither does
#207's frontier certificate (asserted in `verify.py` through `blocked_on`);
* the only bank construction in the pins is #205's `physical.banks` -- 45,842 banks with
gauge roles, distinct gauges, copies and `bank_controls` -- which banks the **bit**
word's selected entrance-gauge exteriors at width 72; its mechanism does not exist on the
complex word;
* no pin enumerates the complex rank-11 family: #219's `inputs/absorbed-occurrences.json`
covers rank 22 of the bit word only, and it is precisely that enumeration that makes
#219's R1 a closed checklist.

So C1 (the complex bank construction, its blocks and normalizers) and C5 (the family's
inventory and provenance) are both open with no starting material in the queue.

## What would discharge C1-C5

1. **C5** first: an enumeration of the complex word's rank-11 occurrences by frame and
chain, with a bijection onto the 3,186 three-copy children and a check that no other bin
is touched.
2. **C1**: the complex-side bank construction -- banks of width 66, the normalizer sending
each item's true residual projector to its block, the six-block pattern per bank, and
the hashed item-to-bank/offset map for all 531 banks.
3. **C2-C4**: the formal-column replay of the modified complex word (F2 and the defining
integers, with the lift checked through `exact_scalar_program_sha256` rather than a
container digest), exact charts, incidence colouring and prime witnesses for the new
blocks, and the moment-envelope parity of the retained row priced here (stock 35,625,
deficit 3,960, no rare-class fallback on the complex side); any completion child
C1 introduces re-enters the ledger and the kappa is recomputed.
4. Inherited: #219's R1-R4 for the bit-side rank-22 absorption, unchanged.

Until then the kappa above is a priced, exactly certified **target** -- the same status
#219 gives its rung-1 number, with one rung's worth of extra mechanism to build.
131 changes: 131 additions & 0 deletions research/complex-bank-run2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# Rung 2 of the bank ladder is capped on the complex side: kappa = 7.08291570590726e-4 priced exactly, blocked on a complex-side bank construction (no new kappa)

**No new kappa, and no completed construction.** This package prices the next rung of
PR208's bank-absorption ladder above #219 and records the two facts that decide when it
can be built: **rung 1 already sits on the complex branch's ceiling**, and the rung above
it needs a **bank construction on the complex supplier that no package in the queue has**.

## Result

| Rung | kappa | Binding | Status |
|---|---|---|---|
| frontier, #207 | `1366380910073/2*10^15` = 0.0006831904550365 | bit | reproduced here **exactly** from #207's own `a_bit`/`a_complex` |
| rung 1, #219 | `700427501305159/10^18` = 0.000700427501305159 | complex | reproduced here **exactly**, by importing the vendored #219 package |
| rung 2, this package | `354145785295363/5*10^17` = 0.000708291570590726 | complex | **+1.122753%** over rung 1, **+3.674102%** over the frontier; blocked (below) |

The price is the same ledger in two independent conventions: **0.00070829157059072603** on
the `10^-18` grid in the convention of the queue's latest rungs (`eta = beta = 10^-24`,
`weak = 10^-30`), and **`3541457/5*10^9`** on the `10^-10` grid of PR208's pricing model
(`stop = 10^-9`, `eta = 10^-8`), which is PR208's own published value for this rung --
reproduced here, not restated.

## Why rung 2 has to be taken on the complex word

#219's rung 1 absorbs the bit word's rank-22 bin and then binds on the complex supplier.
This package shows that it does not merely bind there: it lands **on the complex branch's
ceiling**. With the complex coarse saving `C = 7.00918443859411e-4`, the assembly's bound
is `C/(1+C) = 7.0042750130515981e-4`, and rung 1's kappa is `7.00427501305159e-4` --
**8.5e-19 below it, inside one grid step**. The bit side's own headroom at that point is
1.95e-5 of coarse saving, and it is unspendable: whatever the bit ledger does, the
composition is capped by the complex branch.

So every further rung starts by raising the complex supplier's coarse saving. Rung 2 does
that by absorbing the complex word's rank-11 family, and it likewise lands on the *new*
ceiling (`708793603125109/1000708793603125109` = 7.082915705907269e-4, gap 8.6e-19).

## The rung-2 ledger

On the pinned complex profile (`m = 66`, one copy `W = 12,052`, deficit `1,320`, ledger
bin 11 = **1,062** children per vertex):

| | before | after |
|---|---|---|
| absorbed family | bin 11: 1,062 per vertex (3,186 over the three copies) | out of the ledger |
| dirt volume | — | `11 * 3,186 = 35,046` registers = `66 * 531` **banks**, exactly (177 one copy) |
| stock (three copies) | 36,156 | 35,625 (drop **531** = the bank count) |
| rank mass | 2,382,336 | 2,347,290 |
| children | 639,441 | 636,255 |
| largest child | 20 | 20 |
| complex coarse saving | 7.00918443859411e-4 | **7.08793603125109e-4** |

Three invariant checks make the absorption free rather than a re-labelling: the volume
fills whole banks (`35,046 = 66 * 531`), the retained ledger satisfies the row identity
`66 * 35,625 - 2,347,290 = 3,960`, and the stock falls by exactly the bank count. The
absorbed share of the ledger's rank mass is 1.471%.

One further property is worth stating precisely because it is **not** a construction: the
family's rank divides the bank width (`66 = 6 * 11`), so a bank admits a uniform six-block
tiling of the new family alone and no mixture with older families is needed. That is a
necessary condition satisfied, not a built bank.

## What blocks the rung

`obligations.json` states C1-C5 and inherits R1-R4 from #219. C1 is the blocker, and it is
a fact about the queue rather than a gap in this package:

* **The complex supplier has no bank construction.** Its certificate
(`references/pr219-run1/references/pr193-source-assisted-v4.certificate.json`) carries
no key containing `bank` at all (`certificate.json` -> `blocked_on`, machine-checked),
and neither does #207's frontier certificate.
* **The only banked word in the pins is the bit word's.** #205's `physical.banks` (45,842
banks) with its gauge roles, distinct gauges, copies and `bank_controls` is the
entrance-gauge pack of the width-72 bit word -- a mechanism specific to that word's
entrance structure, not something the complex word inherits.
* **The family has no inventory.** The only occurrence inventory in the pins is #219's
bit-side `inputs/absorbed-occurrences.json` for rank 22, which is exactly what makes
#219's R1 a closed checklist. Nothing enumerates the complex word's 1,062 rank-11
children, so C5 has no starting point and C1's item-to-block map cannot even be stated.

A rung that cannot name its items cannot be built. That is the report.

## A grid-precision note for reviewers

PR193 publishes `complex_saving = 219037/312500000 = 7.009184e-4`, which is its value on
the `10^-10` grid and sits `4.3859411e-11` below the `10^-18` certified paid moment of the
same profile. #207's `a_complex` and #219's rung 1 both price the certified moment, and
this package reproduces both numbers exactly, so rung 2 is priced on the certified moment.
The coarser field is priced too, as `supplier_field.conservative_variant`: there the
complex branch's ceiling already sits at rung 1, which is why the rung is only visible on
the refined grid.

## Verify

```sh
cd research/complex-bank-run2
python3 -B verify.py # check: pins, rebuild, compare with certificate.json
python3 -B verify.py --write # authoring: regenerate certificate.json and SOURCE.json
```

`verify.py` passes with exit 0 and prints the conditional kappa. It pins 21 files by
sha256, rebuilds the rung-2 ledger, both paid moments, the 47-constraint assembly and the
PR208 replica, and reproduces #207's and #219's published grid points exactly. The vendored
rung-1 package also self-verifies in place:

```sh
cd research/complex-bank-run2/references/pr219-run1 && python3 -B verify.py
```

## Scope and limits

* **This is a priced target, not a witness.** The accounting is certified; C1-C5 and the
inherited R1-R4 are open, so the kappa is conditional on them in exactly the sense #219
states for rung 1. It is not an unconditional multiplication theorem, not a practical
multiplier, and not a Lean/kernel certificate.
* Nothing here bounds any *other* complex-side lever: only the rank-11 family of the
current complex ledger is priced, and only at the ledger's own bank width.
* The rung inherits every interface #207/#219 inherit (all-size compiler, weighted and
restored selector, routing/layout, fixed-tape leaf, prime supply, precision/recovery,
analytic transfer).

## Credits

Rung 1, its retained-ledger schedule, the interval-moment engine and the 47-constraint
assembly are **PR219** (`research/residual-bank-run1`, head `237067f`) -- vendored
byte-identically under `references/pr219-run1/` and imported, not re-implemented; the
frontier floor is **PR207** (`research/coordinated-crossover-pr200`, head `cd14825`), whose
certificate is vendored verbatim; the bank-absorption ladder and the `10^-10` replica price
are **PR208** (`research/composed-diagonal-bit-bootstrap`); the underlying bank proof and
engine chain is PR200/PR205 (Chafik Boukhalfa and the PR197/PR205 line) and PR184/PR168-v4
(icekylinx/eumemic) as inherited through them. This package adds the complex-side ledger,
its price, the ceiling argument and the blocker. Apache-2.0; prepared with Anthropic
Claude assistance. No existing file is changed.
25 changes: 25 additions & 0 deletions research/complex-bank-run2/SOURCE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"files": {
"ledger.py": "103b7334e88edd71024cfd908c2e315d60a420012caef634ed843132d65ef2cd",
"obligations.json": "03f9803f3179ba3b150c42c4650060d90abdc29358daaaf19009219ba855b980",
"pins.py": "bf2f669d38259c1228dc74c8a59df7dd80fe86d1f02b951c91b5a66a4c2e97cf",
"references/pr207-coordinated-crossover.certificate.json": "f4e30cca369fb014b729df870ca3716cc0f1e2297b9f265341492cba85a14aeb",
"references/pr219-run1/NOTICE.md": "1f04b17404663a0983b7cc45e308e577d4d49fb6a4c1ff077dc3f13bae83c56f",
"references/pr219-run1/PROOF.md": "b7b9d83d4f87b32a9cba82a56039a18c9843eac0bd18f6a7bdcf9667b27b8a04",
"references/pr219-run1/README.md": "cc9fe21d282fac5085c09d35b9d0bc199c5ddef45ccdbdb2e6fbad45c08a881d",
"references/pr219-run1/SOURCE.json": "2fa4045bdf08c88103d678c1c7c29b66ebefa95d60f29a8d85697bf988c2c22b",
"references/pr219-run1/arithmetic.py": "6ad4d1ffc3a749a66cc0ec78afb4fedd94c84f9ca429de9011fa2e9c11ce819c",
"references/pr219-run1/banks.py": "0548a1c15bd6f6dea4505f5fd2ca1bb4ecbe914c8c90769b8cd8beeef428d0cf",
"references/pr219-run1/certificate.json": "fd092f55d1a2a3e8e01566b12b24c67a9efb35ef9b2fc0cd4e6217ba026245f6",
"references/pr219-run1/inputs/absorbed-occurrences.json": "1aedd8640818afe63eb7797f0332b915ed64ebeea3e9f210aaf40a06a02478a7",
"references/pr219-run1/interval_moment.py": "9d3d1d28bfb3375958995205179b171fb65c70a3792cf9f7a21ef5ee54f5460b",
"references/pr219-run1/obligations.json": "0268fc3628421bb930e9f56a23469a45f3b2bfae8888f6030622c2a51ce6a511",
"references/pr219-run1/paired_cube_assembly.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c",
"references/pr219-run1/references/pr193-source-assisted-v4.certificate.json": "d84406d2fcc6990deba2b135509e6d86600e57123d88f9b21f7b7240e1aeb513",
"references/pr219-run1/references/pr200-bit.certificate.json": "853afa75980e11ce16b333c28311c4f635e84065867c049fda9916c2419091ed",
"references/pr219-run1/references/pr205-packed.certificate.json": "c11fbb9aaa99594afc8d21e33761dc6d1d6c76ce3dbc36d5b64cae872c242f5a",
"references/pr219-run1/schedule.py": "b9fff272f30048b982da3c0fc0149c2fde20bb7e32b8f9f860069956c12ebdc9",
"references/pr219-run1/verify.py": "c839a06389945f9b0c6fbfd59bf2dd8030190c3de504d72c9bf032879f931197",
"run2.py": "f5d1daa7fd692b71e798c06e84294501922cb67d404c391a5262109cf1130919"
}
}
Loading