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
86 changes: 86 additions & 0 deletions research/clean-connector-per-mask-seede54e/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# One clean connector for distinct five-source outputs

**New root mechanism and local charged cost reduction; no new κ.** A fresh, explicitly zeroed length-16 row lets each of the 31 nonzero five-source masks use one output-map call. It trades many extra source updates for fewer expensive output updates while retaining pairwise-distinct output maps.

## Contract and construction

Let `x_0,...,x_4`, the original connector `z`, and targets `y_m` be distinct length-`L` rows over F2. Their initial contents are arbitrary. The maps `B_j` and `A_m` are exact linear maps and stay read-only. The requested result is

```text
y_m += A_m(sum_{j in m} B_j x_j) for every nonzero 5-bit mask m.
```

Admit one extra row `c`. It is not presumed clean: allocate/host it, clear all `L` coordinates, and charge those writes. For each mask in order, do:

```text
for each j in m: c += B_j x_j
y_m += A_m c
for each j in reverse order: c += B_j x_j
```

In characteristic two, the reverse source updates return `c` to zero. The next mask starts clean. The original dirty `z`, all sources, and all other targets are untouched. Each target receives exactly its requested additive update. This identity holds for arbitrary linear maps; it needs no commutation, invertibility, or relations among the maps.

For all 31 masks, `sum popcount(m)=5*16=80`. The new schedule therefore uses 160 source updates and 31 output updates. As its named competitor, use the pinned five-source `five_extra_output` schedule in the universal connector certificate: 10 source updates and 64 output updates, with output 21 read four times and every other output twice. That schedule supports arbitrary distinct `A_m` and `B_j` in the unchanged dirty-connector alphabet.

## Exact fixture and complete root bill

Use `L=16`. Let each `B_j` be a distinct cyclic coordinate permutation. Define

```text
A(v)[i] = sum_{k=0}^{12} v[(i+k) mod 16] over F2
A_m = A Q_m
```

Choose 31 distinct coordinate permutations `Q_m` from `Q_(a,b)(v)[i] = v[(a*i+b) mod 16]`, with odd `a`. These are permutations. `A` is invertible: its polynomial has value 1 at `x=1`, and `x^16-1=(x+1)^16` over F2. Thus the `A_m` are pairwise distinct. Each output row of each `A_m` has exactly 13 taps. The verifier checks the rank and distinctness directly as well.

The comparison uses one declared additive tariff. One unit is charged for each XOR update, stored table bit, hosted row coordinate, zero write, and scheduler descriptor. This is a transparent local model, not a physical hardware price. Let `a=208` XOR updates per `A_m` call, `b=16` per `B_j` call, and `d=13` per action/control descriptor. Source and target reads/writes and coefficient-index reads are included in the XOR-update units. Static map tables are charged separately.

| Charge | Direct dirty-connector schedule | Fresh-row schedule |
|---|---:|---:|
| `B` updates | 10 | 160 |
| `A` updates | 64 | 31 |
| Per-action descriptors | `74d` | `191d` |
| Mask-block control descriptors | 0 | `31d` |
| Allocation/release descriptors | 0 | `2d` |
| Extra row hosting | 0 | `L` |
| Zero-initialization writes | 0 | `L` |

Both schedules share 31 output-map tables, five source-map tables, and the existing data rows. The tables contain `31*16*13*4 + 5*16*4 = 26,112` address bits. The five sources, original connector and 31 targets use `37*16 = 592` row cells. Their shared charge is 26,704 units. The fresh-row schedule's 31 block descriptors are an additional conservative charge; each operation descriptor is also charged separately.

The direct and candidate totals are therefore

```text
direct = 26704 + 10*(b+d) + 64*(a+d) = 41138
fresh row = 26704 + 160*(b+d) + 31*(a+d) + 31*d + 2*d + 2*L = 38656
saving = 33*a - 150*b - 150*d - 2*L = 2482
```

At this fixture, the saving is positive for integer `d <= 29`. The result is conditional on this explicit tariff and on the listed maps. If the output maps are cheap relative to source updates, the construction loses. The calculation is a root-interface comparison; it does not include a recursive supplier, child restoration, frame changes, precision conversion, or a κ integration. No universal optimality claim is made.

## Reproduce and evidence

From the repository root:

```sh
python3 -B research/clean-connector-per-mask-seede54e/verify.py
python3 scripts/research_package.py --package research/clean-connector-per-mask-seede54e --check-only
python3 scripts/research_package.py --package research/clean-connector-per-mask-seede54e
```

Expected verifier line:

```text
PASS_CLEAN_CONNECTOR_PER_MASK basis_columns=608 controls=13 masks=31 candidate_B=160 candidate_A=31 direct_B=10 direct_A=64 common=26704 direct_cost=41138 candidate_cost=38656 saving=2482
```

The exact F2 replay checks all 592 data-bit basis columns across the five sources, original connector, and 31 targets; linearity establishes the data identity for every such state. It also checks each of the extra row's 16 pre-clear bit columns; the explicit reset clears the whole row regardless of its prior contents. A mixed nonbasis state is replayed as well. Four construction controls detect omitted initialization, omitted reverse updates, an omitted source update, and a misrouted target. Nine invoice controls remove each charged line in turn and ensure the exact invoice check rejects the undercharge. The verifier reads the exact direct schedule from the pinned certificate and checks its call multiplicities. Local replay used Python 3.14.7; registered CI is configured for Python 3.12.

## Overlap and attribution

The initial common-map variant was released after the refreshed scan found the stronger common-`A` broadcast in [PR #1707](https://github.com/CrocSwap/integer-mult-bounds/pull/1707), head `3d2e634e046ac4fbf07ddbfb0e59da4cf9907f4e`. This result keeps pairwise-distinct `A_m` and pays for a fresh row cleared separately for each batch. The broader neighborhood includes the atomic triple-sum construction in PR #1518, two-source DUO schedule in PR #1531, fixed-alphabet parity schedules in PR #1811, and paid invertible-frame analysis in PR #1915; none uses this clean-row tradeoff. The overlap scan is not a novelty certificate. Exact base, selected record, catalogue and predecessor source pins are in [SOURCES.json](SOURCES.json).

Ross Richardson's universal connector interface and five-source schedule supply the direct comparator. No predecessor code is copied. Prepared by Cinna Davis with substantial OpenAI Codex assistance; Apache-2.0.

## Open next questions

The structured next question in [TASK.json](TASK.json) is whether this root saving survives nested composition when every child, restoration step, frame transition, and per-level descriptor is charged. The first step is to bind the row and map tariffs to one concrete recursive supplier and evaluate its full recurrence. That integration is currently blocked because this synthetic length-16 fixture has no compatible supplier implementation or recursive cost profile.
30 changes: 30 additions & 0 deletions research/clean-connector-per-mask-seede54e/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"schema_version": 1,
"base_commit": "0b1cccf86e2f5132ed286a26ef0a681a495740ea",
"files": [
{
"path": "certificates/selected-result.json",
"usage": "input",
"git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11",
"sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32"
},
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1",
"sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075"
},
{
"path": "research/universal-connector-boundary/CERTIFICATE.json",
"usage": "input",
"git_blob": "079e3e1441dc07c2f0536e9527acf290e51ea9c0",
"sha256": "e733746ba3e5151c829b4e8728bfff5ae3ed24d8d203eb77c735d20758e8266a"
},
{
"path": "research/universal-connector-boundary/README.md",
"usage": "input",
"git_blob": "d277f7c5830b1f2bc42e1ff41ab86e7d7564929f",
"sha256": "23415f7829ab8d80a783142f10f7d31abbce84579362769984680af3df954476"
}
]
}
60 changes: 60 additions & 0 deletions research/clean-connector-per-mask-seede54e/TASK.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"schema_version": 1,
"task_id": "connector-alphabet-change",
"priority_revision": 3,
"base_commit": "0b1cccf86e2f5132ed286a26ef0a681a495740ea",
"original_card": {
"id": "connector-alphabet-change",
"question": "Does one explicit extension of the connector alphabet offer a favorable completed budget?",
"starting_points": [
"research/universal-connector-boundary/README.md",
"certificates/selected-result.json"
],
"methods": [
"Construct and charge a legal extra operation on a minimal instance.",
"Prove a target-specific bound after adding one specified operation family."
],
"acceptance_gate": "State which fixed-alphabet premise changes and charge its implementation; do not declare it free.",
"first_step": {
"command": [
"python3",
"-B",
"research/universal-connector-boundary/verify.py"
],
"expected": "PASS_UNIVERSAL_CONNECTOR_BOUNDARY",
"inspect": "Reproduce the 945-pairing control, then read Exact interface to list the allowed calls.",
"scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay."
},
"first_experiment": "Add exactly one legally priced operation and test a tiny dirty-input instance before enumerating larger cases.",
"bottleneck_link": "A new legal connector operation could change recursive interface cost; a larger census in the same alphabet is a separate side result.",
"allowed_variations": [
"Choose one additional operation and a small source count for its first counterexample."
],
"scope_change_triggers": [
"Keeping the alphabet and only increasing the source count; record this as a changed assignment."
],
"overlap_terms": [
"universal connector",
"source-toggle",
"connector alphabet"
]
},
"scope_status": "changed",
"actual_scope": "For the complete five-source, 31-mask batch with pairwise-distinct output maps, does admitting one length-16 connector that is explicitly zeroed and fully charged let per-mask source rebuilding lower the pinned 10-B/64-A dirty-connector schedule?",
"scope_change_reason": "The first refined common-map broadcast scope was already covered by the stronger charged common-A construction in open PR #1707. This changed scope retains distinct output maps and changes the connector contract by admitting exactly one fresh row whose initialization, hosting, scheduler controls, allocation, and release are charged.",
"bottleneck_link": "This tests whether a paid extra connector can exchange source-side work for fewer expensive output-map updates at the recursive interface. The result is a root tariff comparison only and does not establish a new supplier or kappa.",
"budget_minutes": 60,
"stop_rule": "Fix L=16, five cyclic-permutation source maps, 31 affine-permutation output maps, and the declared per-update/per-descriptor tariff. Stop after exact basis replay, four mutation controls, and the complete comparison with the pinned direct schedule; do not expand to other dimensions or tariffs in this cycle.",
"outcome": "completed",
"evidence": "python3 -B research/clean-connector-per-mask-seede54e/verify.py passes all 608 F2 bit-column checks, four construction controls, and nine invoice undercharge controls. It verifies pairwise-distinct output maps, the pinned 10-B/64-A comparator, and the complete scalar bill: 41,138 direct versus 38,656 with a fresh row, a 2,482-unit local saving. No kappa or recursive integration is claimed.",
"author": "Cinna Davis",
"ai_assistance": "OpenAI Codex provided substantial assistance with the construction analysis, cost derivation, verifier implementation, and package preparation.",
"open_questions": [
{
"question": "Does the fresh-row source-rebuild schedule remain cheaper after nested composition, child restoration, frame changes, and per-level scheduling are charged?",
"why_it_matters": "The current 2,482-unit reduction is only a root comparison; recursive overhead may consume it before it changes a supplier moment or kappa.",
"first_step": "Choose one concrete recursive supplier whose source and output map costs match the fixture, then write and evaluate its complete recurrence including hosted rows and every reverse child.",
"blocked_by": "No compatible supplier implementation or recursive cost profile is currently bound to this synthetic length-16 map family."
}
]
}
22 changes: 22 additions & 0 deletions research/clean-connector-per-mask-seede54e/VERIFY.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"schema_version": 1,
"status": "ready",
"python": "3.12",
"requirements": [],
"inputs": [
"certificates/selected-result.json",
"research/universal-connector-boundary/CERTIFICATE.json",
"research/universal-connector-boundary/README.md"
],
"commands": [
{
"argv": [
"{python}",
"-B",
"{package}/verify.py"
],
"timeout_seconds": 120,
"checks": "Exact F2 basis replay of all 608 source, dirty-row, target, and pre-clear scratch coordinates; four mutation controls; pairwise-distinct fixture maps; pinned direct schedule multiplicities; complete shared and incremental cost arithmetic."
}
]
}
Loading
Loading