Skip to content
Merged
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
22 changes: 22 additions & 0 deletions research/p104-commuting-contact/CLAIM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# CLAIM — P104 commuting-contact cascade on the PR #5580 word

Base: canonical main `5e0052ca0aa3036a3afa8b0438927377c8d97d53`, priority revision 7.
Exact construction input: [PR #5580](https://github.com/CrocSwap/integer-mult-bounds/pull/5580) at `6efa248cf456d6101d757e9d09ba29711d18a13a` (`research/p104-event-contact-step`, conditional $\kappa = 0.00308189$).

Question: PR #5580 explicitly left open whether a changed scalar event order within commuting windows can improve the complete paid profile beyond its fixed-order invoice ceiling `(0.00308189496866, 0.00308189496867)`. Because PR #5561, PR #5569, and PR #5580 preserved the exact linear order of the 21,686 scalar instructions from PR #5551, early moves of main ports `113` and `198` to 1-plane `597` (`[82]`) at events `13524` and `13528` (to read helper `710`) trapped subsequent commuting `ADD` writes into `198` (from `648, 649, 650, 652`) and into `113` (from `531`) at frame `597`.

Result:
1. **Stage A (Fixed-Endpoint Supporting Word `WORD-FIXED-ENDPOINTS.json.gz`, $\kappa = 0.00308415$):** Commuting `13625, 13628, 13631, 13634` (`198 += ±1/2 * 648/649/650/652`) before `13528` (`MOVE 198: 3 -> 597`) to frame `3` (`0D`) vacates frame `597` (`1D`) on all four helpers `648, 649, 650, 652`, collapsing `3 (0D) -> 597 (1D) -> 120 (5D)` (`H1 + H4`) into `3 (0D) -> 120 (5D)` (`H5`). All 735 `initial` and `final` frames and all 527 helper targets remain identical to PR #5580. Local paid delta: `-4 H1 - 4 H4 + 4 H5` (`-72` complete paid calls, `66,852 -> 66,780`), raising the raw crossing to `(0.00308415555080, 0.00308415555081)` (`+2.26058214e-6` over PR #5580).
2. **Stage A+B (Headline Cascade Word `WORD.json.gz`, $\kappa = 0.00308520$):** Commuting `13806` (`113 += 531`) before `13524` (`MOVE 113: 3 -> 597`) to frame `3` (`0D`) allows all three initial read contacts of helper `531` (`13806` with `113`, `13843` with `197`, and `14404` with `507`) to execute at frame `3` (`0D`) with `initial[531] = 3`. Because `197` remains at `3` (`0D`) after `13843`, its next contact `13846` (`197 += 319`) demotes from 3-plane `617` (`[30, 44, 76]`) to 2-plane `355` (`[30, 44]`), vacating `617` on both `197` and `319` and vacating `597` on `531, 197, 507`. Combined local paid delta vs PR #5580: `-8 H1 - H3 - 2 H4 + 4 H5` (`-126` complete paid calls, `66,852 -> 66,726`), with local helper target delta `-H8 + H9` (productive fields `12,814` and rank-mass surplus `760` unchanged), raising the raw crossing to `(0.00308521055201, 0.00308521055202)` and certifying **conditional $\kappa = 0.00308520$** at `TESTED = 0.0030852005` (`+3.31558335e-6` raw over PR #5580).

```json
{
"schema": "integer-mult-coordination/v1",
"kind": "CLAIM",
"task": "scalar-to-moment",
"scope": "P104 commuting-write contact cascade on the PR5580 word; complete paid-profile step",
"base": "5e0052ca0aa3036a3afa8b0438927377c8d97d53",
"expiry": "2026-10-25T23:59:59+00:00",
"artifact": "research/p104-commuting-contact"
}
```
31 changes: 31 additions & 0 deletions research/p104-commuting-contact/LITERAL-CHANGES.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
--- inputs/pr5580-pricing.py 2026-10-25 20:25:29.002478680 +0000
+++ pricing.py 2026-10-25 21:03:53.929660636 +0000
@@ -11,8 +11,8 @@
from fractions import Fraction as Q
import local as L

-KAPPA, TESTED = Q('.00308189'), Q('.0030818905')
-PREVIOUS = Q('.00308181')
+KAPPA, TESTED = Q('.00308520'), Q('.0030852005')
+PREVIOUS = Q('.00308189')


def encode(x):
@@ -61,7 +61,7 @@
second_p[8*(j+1)] += 208
L.need((targets,paid) == (second_t,second_p), 'Independent full invoice')
L.need(max(targets) == 145 and max(paid) == 72, 'Maximum recursive ranks')
- L.need(sum(targets.values()) == 12814 and sum(paid.values()) == 66852, 'Complete field and call counts')
+ L.need(sum(targets.values()) == 12814 and sum(paid.values()) == 66726, 'Complete field and call counts')
L.need(sum(r*n for r,n in targets.items())-sum(r*n for r,n in paid.items()) == 760, 'Complete rank surplus')
return targets,paid,counts

@@ -139,7 +139,7 @@
L.need(wrong_cutoff[0] > 1, 'Old cutoff fails with this helper inventory')
bad=outer_module.ledger(dict(params,bit_saving=Q('.0027')))
L.need(any(x <= 0 for x in bad['strict_checks'].values()), 'Insufficient BIT contract rejected')
- return encode({'kappa':KAPPA,'kappa_decimal':'.00308189','previous_open_pr5569':PREVIOUS,'gain':KAPPA-PREVIOUS,
+ return encode({'kappa':KAPPA,'kappa_decimal':'.00308520','previous_open_pr5580':PREVIOUS,'gain':KAPPA-PREVIOUS,
'relative_gain_percent':100*(KAPPA/PREVIOUS-1),'raw_root_interval':[lower,upper],
'raw_headroom':[lower-KAPPA,upper-KAPPA],'margin_at_previous':E.display(margin(PREVIOUS)),
'targets':T,'paid':P,'productive_fields':sum(T.values()),'paid_calls':sum(P.values()),
75 changes: 75 additions & 0 deletions research/p104-commuting-contact/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Proof of the P104 Commuting-Contact Cascade ($\kappa = 0.00308520$)

This package modifies the [PR #5580](https://github.com/CrocSwap/integer-mult-bounds/pull/5580) P104 word (`research/p104-event-contact-step`, pinned at `6efa248cf456d6101d757e9d09ba29711d18a13a`) by commuting independent `ADD` instructions across two 1-plane transport barriers at frame `597` (`[82]`, $\dim 1$). Every scalar instruction, register operand, and dyadic coefficient is preserved; only the relative order of commuting `ADD` operations and their chart labels change.

## 1. Stage A: Fixed-Endpoint Commuting Writes on Port `198` and Helpers `648, 649, 650, 652`

In the PR #5580 word, main port `198` stays at the 0-dimensional origin chart `3` (`[]`) from initialization through event `13527`, receiving only `ADD` writes (`198 += c * s`). At events `13528..13634`, the relevant events on `198` and helpers `648, 649, 650, 652` are:

```text
13528: ['MOVE', 198, 3, 597, False]
13529: ['ADD', 198, 710, '2', 597]
13623: ['ADD', 205, 648, '-1/2', 3]
13624: ['MOVE', 648, 3, 597, False]
13625: ['ADD', 198, 648, '1/2', 597]
13626: ['ADD', 205, 649, '-1/2', 3]
13627: ['MOVE', 649, 3, 597, False]
13628: ['ADD', 198, 649, '-1/2', 597]
13629: ['ADD', 205, 650, '-1/2', 3]
13630: ['MOVE', 650, 3, 597, False]
13631: ['ADD', 198, 650, '1/2', 597]
13632: ['ADD', 205, 652, '1/2', 3]
13633: ['MOVE', 652, 3, 597, False]
13634: ['ADD', 198, 652, '1/2', 597]
13770: ['MOVE', 648, 597, 120, False]
13772: ['MOVE', 649, 597, 120, False]
13774: ['MOVE', 650, 597, 120, False]
13778: ['MOVE', 652, 597, 120, False]
```

### Commutativity and Subspace Nesting (Stage A)
1. **Write-epoch commutativity on `198`:** Between `13528` and `13634`, register `198` is never read or scaled; its only operations are `13529` (`198 += 2 * 710`) and `13625, 13628, 13631, 13634` (`198 += ±1/2 * r` for `r in {648, 649, 650, 652}`). Additions into a common destination register commute with each other and with chart transport of that destination register.
2. **Read-epoch invariance on `648, 649, 650, 652`:** Each helper `r in {648, 649, 650, 652}` is initialized at chart `3` (`[]`, $\dim 0$) and is only read (never written or scaled) prior to event `13771`. Thus at event `13528`, each `r in {648, 649, 650, 652}` already holds its unmodified initial symbol at chart `3`.
3. **Elimination of chart `597` on `648, 649, 650, 652`:** Executing `13625, 13628, 13631, 13634` at chart `3` immediately before `13528: ['MOVE', 198, 3, 597, False]` eliminates the four climbs `3 -> 597` (`13624, 13627, 13630, 13633`) and replaces the four climbs `597 -> 120` (`13770, 13772, 13774, 13778`, where `120` has 5-dimensional basis `[7, 25, 75, 160, 288]`) with direct climbs `3 -> 120`.
4. **Stage A Paid Delta:** On each of `648, 649, 650, 652`, the paid itinerary `3 (0D) -> 597 (1D) -> 120 (5D)` (`H1 + H4`) becomes `3 (0D) -> 120 (5D)` (`H5`). All 735 `initial` and `final` frames and all 527 helper targets remain unchanged. The Stage A local paid delta is:
$$\Delta P_{\text{Stage A}} = -4 H_1 - 4 H_4 + 4 H_5$$
which reduces complete paid calls by $72$ (`66,852 -> 66,780`) and raises the raw moment crossing from `(0.00308189496866, 0.00308189496867)` to `(0.00308415555080, 0.00308415555081)`. This supporting word is shipped as `WORD-FIXED-ENDPOINTS.json.gz`.

---

## 2. Stage B: Commuting-Write Domino Cascade on `113, 531, 197, 319, 507`

In the PR #5580 word, main port `113` stays at chart `3` (`0D`) up to event `13524`, where it moves `3 -> 597` (`[82]`, $\dim 1$) for `13525: ['ADD', 113, 710, '2', 597]`, followed by `13806: ['ADD', 113, 531, '1', 597]`. Because PR #5561's fixed-order solver could not commute `13806` before `13525`, helper `531` was forced to start at `597` (`1D`), which in turn forced `197` and `507` to climb `3 -> 597` for `13843: ['ADD', 197, 531, '-1', 597]` and `14404: ['ADD', 507, 531, '-1', 597]`:

| Frame | Basis | Dimension |
| --- | --- | --- |
| `3` | `[]` | 0 |
| `355` | `[30, 44]` | 2 |
| `597` | `[82]` | 1 |
| `617` | `[30, 44, 76]` | 3 |
| `728` | `[30, 44, 76, 391]` | 4 |
| `741` | `[13, 19, 65, 423]` | 4 |
| `788` | `[13, 19, 33, 65, 390]` | 5 |

Note that $30 = 13 \oplus 19 \in \text{span}(788)$ and $44 = 13 \oplus 33 \in \text{span}(788)$, so $\text{span}(3) \subset \text{span}(355) \subset \text{span}(788)$ and $\text{span}(355) \subset \text{span}(728)$ are strict subspace chains.

### Domino Cascade Steps (Stage B)
1. **Commute `13806` before `13524` at chart `3` (`0D`):** Between `13524` and `13806`, register `113` receives only `ADD` writes (`13525` and `13806`), and helper `531` is in its initial read-only epoch (unmodified until `14478`). Setting `initial[531] = 3` (`0D`) and executing `13806: ['ADD', 113, 531, '1', 3]` immediately before `13524: ['MOVE', 113, 3, 597, False]` preserves `113`'s itinerary `3 (0D) -> 597 (1D) -> 614 (3D)`.
2. **Vacate `597` (`1D`) on `531, 197, 507`:** Because `531` is now at chart `3` (`0D`) during its initial read epoch, `13843: ['ADD', 197, 531, '-1', 3]` and `14404: ['ADD', 507, 531, '-1', 3]` execute at chart `3` (`0D`). Helper `507` skips `597` (`1D`) and climbs directly `3 (0D) -> 728 (4D)` (`H4` instead of `H1 + H3`), and helper `531` climbs `3 (0D) -> 741 (4D)` (`H4` instead of `H3`) while its helper target credit increases from `H8` (`9 - 1`) to `H9` (`9 - 0`).
3. **Demote `13846` (`ADD 197 += 319`) from `617` (`3D`) to `355` (`2D`):** Because `197` stays at `3` (`0D`) after `13843` instead of climbing to `597` (`[82]`, which is not in `span(355) = span([30, 44])`), `197` now climbs directly `3 (0D) -> 355 (2D)` to meet `319` at `355` (`2D`) for `13846: ['ADD', 197, 319, '1', 355]`, and then climbs `355 (2D) -> 788 (5D)`. This vacates `617` (`3D`) on both `197` (`H2 + H3` instead of `H1 + 2 H2`) and `319` (`355 (2D) -> 728 (4D)`, `H2` instead of `2 H1`).

### Combined Stage A+B Invoice and Strict Concave Gain
Combining Stage A and Stage B across each of the 18 forward local calls gives:
- **Local paid delta:** $\Delta P_{\text{local}} = -8 H_1 - H_3 - 2 H_4 + 4 H_5$ (`-7` local `MOVE` instructions, `25,140 -> 25,133` events).
- **Global paid delta (18 calls):** $\Delta P = -144 H_1 - 18 H_3 - 36 H_4 + 72 H_5$ (`-126` paid calls, `66,852 -> 66,726`).
- **Local target delta:** $\Delta T_{\text{local}} = -H_8 + H_9$ (`-18 H_8 + 18 H_9` globally, keeping `12,814` productive fields and rank-mass surplus `760` invariant).

The exact rational interval engines enclose the raw moment crossings:

| Word | Lower endpoint | Upper endpoint |
| --- | --- | --- |
| PR #5580 (`p104-event-contact-step`) | `0.00308189496866` | `0.00308189496867` |
| Stage A (`WORD-FIXED-ENDPOINTS.json.gz`) | `0.00308415555080` | `0.00308415555081` |
| Stage A+B (`WORD.json.gz`, headline) | `0.00308521055201` | `0.00308521055202` |

The raw gain over PR #5580 is strictly between `0.00000331558334` and `0.00000331558336`. The claimed conditional saving is **$\kappa = 0.00308520$**, tested at `0.0030852005` with raw headroom `1.055201e-8 .. 1.055202e-8`.
36 changes: 36 additions & 0 deletions research/p104-commuting-contact/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Conditional kappa 0.00308520 from a P104 commuting-contact cascade

This construction increases complete conditional kappa from `0.00308189` in [PR #5580](https://github.com/CrocSwap/integer-mult-bounds/pull/5580) to **0.00308520** (`+3.31e-6`, raw crossing gain `+3.31558335e-6`). It also ships the fixed-endpoint supporting word `WORD-FIXED-ENDPOINTS.json.gz` reaching **0.00308415** (`+2.26058214e-6` raw over PR #5580) with all 735 `initial` and `final` frames and all 527 helper targets unchanged. The selected record remains `0.003027288235`.

PR #5561, PR #5569, and PR #5580 kept the linear execution order of all 21,686 scalar operations fixed. Reordering independent `ADD` instructions within commuting write epochs on main ports `198` and `113` eliminates seven local `MOVE` transports per call (`-126` paid calls globally, `66,852 -> 66,726`) while preserving all 208 main endpoints, all 12,814 productive fields, rank-mass surplus `760`, and all eight owned lifetimes.

Read [the proof](PROOF.md), [the construction](construct.py), [the complete receipt](RESULT.json), [the source pins](SOURCES.json), and [the verification record](VALIDATION.md). The exact raw crossing of the headline word lies in `(0.00308521055201, 0.00308521055202)` and is tested at `0.0030852005`.

## Reproduction

Python 3.10+ and the standard library suffice. No external solver is needed to reconstruct or verify both published words:

```sh
python3 -B scripts/research_package.py --package research/p104-commuting-contact
```

Both registered modes print:

```text
PASS_P104_COMMUTING_CONTACT_KAPPA_00308520
```

and the launcher prints `PASS_REGISTERED_RESEARCH_PACKAGE`. It authenticates all 33 retained PR #5545 source payloads and the pinned PR #5580 inputs, regenerates both `WORD-FIXED-ENDPOINTS.json.gz` and `WORD.json.gz` from `construct.py`, runs forward arbitrary-input replay on the base, fixed-endpoint, and headline words, verifies all 552,049 dense transpose coefficients, checks all 2,918 signed native Pauli maps, runs the full physical caller, verifies both rational moment engines (`(0.00308415555080, 0.00308415555081)` for Stage A and `(0.00308521055201, 0.00308521055202)` for Stage A+B), and checks the compiler, all 58 outer predicates, and negative controls.

## Credits

- Ali Romman (`@aliromman`) supplied [PR #5580](https://github.com/CrocSwap/integer-mult-bounds/pull/5580) (`research/p104-event-contact-step`) and the complete caller/source closure in [PR #5544](https://github.com/CrocSwap/integer-mult-bounds/pull/5544) and [PR #5545](https://github.com/CrocSwap/integer-mult-bounds/pull/5545).
- Joel Pulikkan (`@GamingPuzzled`) supplied [PR #5569](https://github.com/CrocSwap/integer-mult-bounds/pull/5569) (`research/p104-priced-handoff`).
- `@DreamingOfClouds` supplied [PR #5561](https://github.com/CrocSwap/integer-mult-bounds/pull/5561) and [PR #5568](https://github.com/CrocSwap/integer-mult-bounds/pull/5568).
- `@thu-nmrc` supplied [PR #5551](https://github.com/CrocSwap/integer-mult-bounds/pull/5551).
- Retained source notices credit Gareth Davidson, David Arias, Cinna Davis, Jacob Alan Sussman, zxv, and Cao Yifan.
- New commuting-contact cascade construction, proof, and verification by Pierre-Loic Doulcet (`@hexapode`). Apache-2.0.

## Open next questions

Independently review the commuting-contact cascade (`Stage A` and `Stage B`) and the inherited helper-endpoint contract, then recompute the complete invoice from `WORD-FIXED-ENDPOINTS.json.gz` and `WORD.json.gz`. Exhaustive commuting-epoch screening on the resulting word leaves zero remaining negative-cost commuting-epoch moves without crossing owned-register `COPY` boundaries (`13401: COPY 737, 146`), so pushing further requires coupling owned-register lifetime timing or multi-register scalar algebraic rewrites. Structured questions are recorded in [TASK.json](TASK.json).
Loading