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
25 changes: 25 additions & 0 deletions .github/workflows/residual-bank-run1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: residual-bank-run1

on:
push:
paths:
- 'research/residual-bank-run1/**'
- '.github/workflows/residual-bank-run1.yml'
pull_request:
paths:
- 'research/residual-bank-run1/**'
- '.github/workflows/residual-bank-run1.yml'

jobs:
verify:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.14']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Offline accounting replay
run: python3 -B research/residual-bank-run1/verify.py
36 changes: 36 additions & 0 deletions research/residual-bank-run1/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# NOTICE

## Provenance

Package construction and the enumeration/schedule/arithmetic/verification code:
prepared for the CrocSwap/integer-mult-bounds queue with **OpenAI Codex
assistance**, 2026-10-10.

## Vendored sources (byte-identical, sha256-pinned in SOURCE.json)

- `interval_moment.py` — PR200's exact rational interval moment engine
(Chafik Boukhalfa, `research/paired-cube-diagonal-bit-168/arithmetic/`,
package Apache-2.0).
- `paired_cube_assembly.py` — the unchanged balanced assembly
(PR168-v4/PR184 lineage via ikeboy's PR193 tree; original attributions retained).
- `banks.py` — incidence colouring helpers (Evan McKinney, PR197, Apache-2.0;
vendored via rohanarun's PR205 package).
- `references/pr193-source-assisted-v4.certificate.json` — ikeboy's PR193 complex
supplier certificate (unchanged; its own credits and AI disclosures stand).
- `references/pr200-bit.certificate.json` — Chafik Boukhalfa's PR200 bit word
certificate (unchanged).
- `references/pr205-packed.certificate.json` — rohanarun's PR205 packed-row
certificate (unchanged).

All mathematical content of the vendored files is the work of their authors as
credited in the upstream packages. The new content of this package is the rank-22
enumeration (derived from the pinned PR200 word), the absorption schedule, the
retained-ledger arithmetic and the obligation statement.

## AI assistance disclosure

The new code, enumeration and text in this package were prepared with OpenAI Codex
(GPT-class model) assistance. The exact arithmetic is machine-replayed by
`verify.py`; the mathematical claims remain conditional as stated in PROOF.md.

Apache-2.0.
94 changes: 94 additions & 0 deletions research/residual-bank-run1/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Construction argument and scope

## Claim

On the retained multiplication interfaces, absorbing the rank-22 residual family of
the PR200/PR205 terminal-modified bit word into the banks yields the conditional
exponent

kappa = 700427501305159 / 10^18 = 0.000700427501305159

with the complex supplier binding. This is certified **at the accounting level**
(Steps 1–4 below, all machine-replayed by `verify.py`) and is **conditional on the
physical realization obligations R1–R4** (`obligations.json`).

## Step 1 — the absorbed family is exactly enumerated

`inputs/absorbed-occurrences.json` lists every rank-22 ledger child of the per-vertex
histogram with its provenance, derived from the pinned PR200 word
(`word_p12.json`, `frames_p12.json`, the bit certificate and the base checker, all
sha256-pinned in that file): 1,320 physical-chain frame jumps, 24 copied-centre
children, 880 source-chain frame jumps, 0 target jumps — 2,224 per vertex, i.e. the
full `hist[22] = 6,672` bin under the row's factor-3 normalization. No other bin is
touched.

## Step 2 — whole-bank volume and retained ledger

Under the three-copy integer normalization of the published packed row
(W = 56,402, rank mass 4,055,136, deficit 5,808, 877,638 children):

* absorbed volume `22 × 20,016 = 440,352` registers = `72 × 6,116` whole banks;
* retained mass `3,614,784`, retained children `857,622`, largest child 21;
* row identity `72·50,286 − 3,614,784 = 5,808`, deficit unchanged, stock drop
`56,402 − 50,286 = 6,116` exactly the bank count.

This is the accounting form of "absorbing a family into the banks drops its dirt
and, by the row identity W = (mass + D)/m, drops the stock with it" (PR #208).
`schedule.py` also enumerates every block tiling of width 72 over the word's
residual families {4, 24} plus the new 22-blocks and checks pattern divisibility.

## Step 3 — exact paid moments

`arithmetic.py` prices the absorbed profile with PR200's exact rational interval
moment engine, including the complete worst-case envelope (bad fraction 10^-16,
fallback `32·72²` per retained child). Before the absorption is applied the same
pipeline reproduces PR #205's certified packed coarse saving
`683528191056257/10^18` **to the digit**, which validates the engine against a
published certificate.

* complex coarse saving (unchanged): `700918443859411/10^18`;
* bit coarse saving before absorption: `683528191056257/10^18`;
* bit coarse saving after absorption: `728251090009891/10^18` — the bit word now
clears the complex cap `7.009184e-4`;
* three-level finite ordinary composition from PR200's completed ordinary supplier
gives the bit leaf `≈ 7.282510899902281e-4`, strictly above the complex cap.

## Step 4 — balanced assembly

The unchanged 47-constraint balanced assembly (eta = beta = 10^-24, weak = 10^-30)
takes `a = min(bit leaf, (1−β)·b − weak)`. The bit leaf clears the cap, so
`a = (1−β)·b − weak` and the complex branch binds:

kappa = 700427501305159 / 10^18 = 0.000700427501305159

All 47 strict constraints and 7 margins are positive; the adjacent grid point
`kappa + 10^-18` is rejected by the same assembly. This is the exact 10^-18-grid
sharpening of PR #208's priced rung-1 target `7004273/10^10`.

## What remains conditional (R1–R4)

The rank-22 bin is not the gauge-exterior species the current bank construction
absorbs: it is frame-transition increments. Non-gauge chains already bank their
residual projectors and keep every increment child, so the published mechanism
cannot absorb this family — this is exactly the "genuinely different residual type"
the suppliers' crossover notes reserve. A completed finite witness must add:

* R1: the residual-type definition, block shapes and per-occurrence block
assignment (schedule.py supplies the admissible tilings);
* R2: formal-column replay of the modified word (F2 identity and defining-integer
decoder) under bank re-assignment at the enumerated transitions;
* R3: exact charts, incidence colouring and prime witnesses for the new blocks;
* R4: moment-envelope parity (any completion child R1 introduces must be added to
the ledger and the kappa recomputed).

Until then the claim is an accounting construction and certified target, in the
same sense every repository witness is conditional on its stated interfaces — and
strictly more limited than the published witnesses, which have their physical
realizations built and replayed.

## Inherited conditions

The retained analytic, uniform-recursion, fixed-tape, all-size compiler, selector,
routing, precision and finite-bridge hypotheses of the PR184/PR186/PR193/PR200
lineage are inherited, not proved. This is not an unconditional multiplication
theorem, a formal verification of the algorithm, or a runtime benchmark.
90 changes: 90 additions & 0 deletions research/residual-bank-run1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Building PR208's priced target: rank-22 residual bank absorption

This package **builds the accounting construction** that PR #208 priced and left
unbuilt — the first certified-shape rung of its bank-absorption ladder: absorb the
bit word's **rank-22 residual family** into the banks — and states precisely what a
physical realization must still supply.

Under the retained multiplication interfaces, the certified accounting target is

$$
T(n)=O\left(n(\log n)^{1-\kappa}\right),\qquad
\kappa=\frac{700427501305159}{10^{18}}=0.000700427501305159,
$$

**conditional on the physical realization obligations R1–R4** in
[obligations.json](obligations.json). The binding branch is the unchanged complex
supplier: the absorbed bit word clears the complex cap, so κ sits at the complex
side's own value, exactly as PR #208's rung table predicts (`7004273/10^10` on its
10^-10 pricing grid; this package certifies the finer 10^-18 grid point).

| | κ | status |
| --- | --- | --- |
| main reviewed (#186) | 6.61885549259598e-4 | published |
| #205 packed diagonal bit | 6.83061299399923e-4 | verified this queue |
| #210 shared entrance gauges | 6.83883297459132e-4 | verified this queue |
| **this package, rank-22 absorption** | **7.00427501305159e-4** | **accounting certified; R1–R4 open** |
| #208's priced rung-1 target | 7.004273e-4 | model price (superseded by the exact grid above) |

That is **+2.42% over #210's frontier** (+2.52% over the #207 row #208 priced) and
**+5.82% over main** — the complex
supplier's own cap, with no complex-side work, exactly the move #208 priced.

## What is new and machine-checked

1. **The absorbed family, with provenance.** The rank-22 ledger bin is enumerated
occurrence by occurrence from the pinned PR200 word
([inputs/absorbed-occurrences.json](inputs/absorbed-occurrences.json)):
1,320 physical-chain frame jumps, 24 copied-centre children and 880 source-chain
frame jumps per vertex — 2,224 × 3 = 6,672 ledger children. This is not the
banked gauge-exterior species: non-gauge chains already bank their residual
projectors and keep every increment child, so this family is the *"future
genuinely different residual type"* PR #207's crossover notes reserve.
2. **The whole-bank schedule.** Dirt volume `22 × 20,016 = 440,352 = 72 × 6,116`
fills whole banks; the stock drop equals the bank count exactly; the retained
ledger (857,622 children, largest 21) satisfies the row identity
`72·50,286 − 3,614,784 = 5,808` with the deficit unchanged
([schedule.py](schedule.py)).
3. **Exact arithmetic to the κ.** Both rational interval moment engines, the
three-level finite ordinary composition and the unchanged 47-constraint
balanced assembly, with the adjacent 10^-18 grid point **excluded**
([arithmetic.py](arithmetic.py)). The engine reproduces PR #205's certified
packed coarse saving to the digit before the absorption is applied — the
pipeline is validated against a published certificate, not just self-consistent.

## What is not built here

The physical realization of the new residual type: the banked word's formal
columns (F2 identity and defining-integer decoder) under the modified transitions,
the block assignment, charts, incidence colouring and prime witnesses. These are
stated one-to-one against the gauge-family precedent in
[obligations.json](obligations.json) (R1–R4, all OPEN). Until they verify, this is
an **accounting construction and a certified target**, not a completed finite
witness — the same distinction PR #208 draws ("priced target, not built"), moved
one full step forward: the target is now certified to the grid point, the family is
enumerated, and the remaining work is a closed checklist.

As every result in this repository: conditional on the retained analytic,
uniform-recursion, fixed-tape and finite-bridge interfaces; never an unconditional
multiplication theorem.

## Reproduce

```sh
python3 -B verify.py # read-only replay, ~1 minute
python3 -B verify.py --write # authoring only
```

Python 3.11+, assertions enabled. No network, no git, no scratch space.

## Credits

The absorbed word and its checkers: Chafik Boukhalfa (#200). Complex supplier:
ikeboy (#193/#202 lineage). Bank mechanism: Evan McKinney (#197), realized on this
word by rohanarun (#205); completed entrance banks: PR #186/#207 (Dugongue) and the
BANK-PROOF-PR200.md argument. The pricing model this builds: maxime-fleury (#204,
#208), whose rung-1 target is reproduced and sharpened here. Frame/ceiling context:
rohanarun (#211/#213), eumemic (#210), DaysSky (#192/#201/#212). All retained
upstream attributions of the PR168/PR184 lineage stand.

Prepared with OpenAI Codex assistance. Apache-2.0.
12 changes: 12 additions & 0 deletions research/residual-bank-run1/SOURCE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"files": {
"banks.py": "0548a1c15bd6f6dea4505f5fd2ca1bb4ecbe914c8c90769b8cd8beeef428d0cf",
"inputs/absorbed-occurrences.json": "1aedd8640818afe63eb7797f0332b915ed64ebeea3e9f210aaf40a06a02478a7",
"interval_moment.py": "9d3d1d28bfb3375958995205179b171fb65c70a3792cf9f7a21ef5ee54f5460b",
"obligations.json": "0268fc3628421bb930e9f56a23469a45f3b2bfae8888f6030622c2a51ce6a511",
"paired_cube_assembly.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c",
"references/pr193-source-assisted-v4.certificate.json": "d84406d2fcc6990deba2b135509e6d86600e57123d88f9b21f7b7240e1aeb513",
"references/pr200-bit.certificate.json": "853afa75980e11ce16b333c28311c4f635e84065867c049fda9916c2419091ed",
"references/pr205-packed.certificate.json": "c11fbb9aaa99594afc8d21e33761dc6d1d6c76ce3dbc36d5b64cae872c242f5a"
}
}
Loading