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
73 changes: 73 additions & 0 deletions notes/agent-52-seven-source-duo-task-card.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Local task card — agent-52 (written before substantial computation)

Task ID / proposed scope key: `connector-alphabet-change` (drawn), refined scope key
`connector-seven-source-duo-full-coverage`; package `research/connector-seven-source-duo`
Base commit: 0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2 (origin/main); selected-record
SHA-256 10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32;
catalogue SHA-256 d46eb6d5b3e279428753d770653663fbdf1063e55c255ea073d768f344927ef7;
priority revision 4; chooser OS seed 4e177efb421addcdb3ba4ff20efdaefd; track
`recursive-interfaces`.
Exact predecessors (heads): research/universal-connector-boundary (merged, PR943 lineage,
Ross Richardson); research/universal-connector-six-source (merged; f(6)=16,
18 <= f(7) <= 24); research/duo-toggle-connector (merged; DUO alphabet, (10,12) at n=5);
PR 2128 head 697369a971eed02c0fbcd75ebefec9f59945f08e (six-source DUO (14,16);
branch research/agent-41-connector-six-duo-f6e1088f, Aaron Wang/Navinor lineage);
PR 2156 head 05b4672fa4450ef50b06315e3a0893d4ba43d42d (six-source DUO batch optimum
(140,142); r[(C2)^6]=14 after Gavrylkiv, JIS 20 (2017) Table 3); PR 2249 head
0c6ed7958435... (high-arity toggle cost floor).

Concrete object and question: the prefix-walk model of
research/universal-connector-boundary (closed walk q_t on F2^7, steps of weight 1
[singleton] or 2 [charged DUO], paired readouts realize D(w) = {q_s xor q_t}; universal
iff D(w) = F2^7). Question: what is the shortest universal seven-source word in the
singleton+DUO alphabet, and does the DUO extension yield a *favorable completed budget*
for the all-127-row seven-source batch, i.e. fewer root queries at no more toggle-adds
than the merged singleton upper bound f(7) <= 24 (Gray word, 24 calls, 24 adds)?

Scope status: changed (recorded). The card asks for one added operation family; DUO is
already added and priced (research/duo-toggle-connector, PR 2128). Keeping the alphabet
and increasing the source count to seven is the card's declared scope-change trigger.
Why the new question still matters: the DUO extension is proven favorable at n <= 6 and
untested at n = 7, the first source count where the universal word is superlinear
(18 <= f(7) <= 24, heuristic-only above 22). This is the card's acceptance question at
the next unsaturated boundary.

Existing restriction being changed: none of the frozen hypotheses (complete calls,
arbitrary dirty rows, restoration, paired readouts, read-only sources, charged DUO at two
adds). The changed axis is source count n = 7; the claim is about the DUO extension's
completed budget at that n.

Method; parameter domain: exact stdlib search over closed walks with steps of weight
<= 2 on F2^7 (equivalently: point sets P with P+P = F2^7 carrying a closed spanning
walk of weight-<=2 steps), plus exact verification of any witness (closure, per-label
parity, coverage of all 128 masks), exact batch bill (queries = k + 254, adds = W + 254
for all 127 rows), and the o/p tariff comparison against the singleton Gray word.
Positive controls (smallest falsifying instances first): n = 3 (5,6) and n = 5 (10,12)
DUO witnesses of research/duo-toggle-connector, the 945-pairing n = 5 singleton census
control, n = 6 (14,16), and the singleton Gray construction for n = 1..8 from
research/universal-connector-six-source.

Nearest overlapping PRs and why this adds something: PR 2128/2156 close six sources
entirely; nothing surveyed covers seven-source full-coverage (128-mask) words in any
combined alphabet. Discussion 2221 / PR 2236 / claim 18942820 (06:44Z) cover a
different object: the 63 weight-1/2/3 masks at seven sources with 14/18 singleton
events. find_overlap terms 'seven-source DUO', 'seven source', 'f(7)' (fresh complete
snapshot 06:47Z) returned no full-coverage seven-source claim.

Optimistic full cost budget: queries k + 254 and adds W + 254 for the all-127-row batch
vs singleton (278, 278). Favorable completed budget requires (k + 254, W + 254) to
Pareto-improve (278, 278), or a stated exact tariff condition o/p under which the bill
falls. Required observable improvement: k < 24 (call saving) with the full bill charged;
nothing is free (DUO pays two adds and one dispatch, as in research/duo-toggle-connector).

Success evidence; falsification test; cap: success = a literal universal word with exact
replay and full bill; falsification = if no word with k <= 23 is found within the search
cap, record best-achieved coverage per length as a scoped search failure (not an
impossibility result). Compute cap ~25 minutes of search.

Predecessor authors; intended artifact: Ross Richardson (PR934/943), Douglas Colkitt
(PR1185), Hanson Sun (PR1215), Aaron Wang/Navinor + opencode lineage (PR 2128, duo
line), PR 2156 author. Contributor: Aaron Wang, with help from opencode. Artifact:
research/connector-seven-source-duo/ with TASK.json, README.md (Open next questions),
SOURCES.json, VERIFY.json, verify.py, CERTIFICATE.json;
replay `python3 scripts/research_package.py --package research/connector-seven-source-duo`.
60 changes: 60 additions & 0 deletions research/connector-seven-source-duo/CERTIFICATE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"schema_version": 1,
"package": "research/connector-seven-source-duo",
"result": "A universal seven-source word of k = 22 complete source calls and W = 24 toggle-adds in the singleton+DUO alphabet of research/universal-connector-boundary extended by research/duo-toggle-connector's charged pair-source DUO family. Steps are integers in 0..127 (bit i = source label i); a step of Hamming weight 2 is one charged DUO call B_jk: z += B_j x_j + B_k x_k.",
"headline_22_24": {
"n": 7,
"k": 22,
"d_weight2_steps": 2,
"W": 24,
"steps": [64, 32, 8, 20, 64, 32, 1, 16, 64, 2, 4, 64, 1, 4, 34, 8, 16, 1, 4, 32, 1, 16],
"duo_steps": {"3": 20, "14": 34},
"label_counts": {"0": 4, "1": 2, "2": 4, "3": 2, "4": 4, "5": 4, "6": 4},
"coverage_masks": 128,
"dual_test_missing": 0
},
"side_row_21_26": {
"n": 7,
"k": 21,
"d_weight2_steps": 5,
"W": 26,
"steps": [8, 16, 4, 8, 2, 5, 32, 65, 4, 2, 16, 8, 1, 32, 3, 18, 4, 2, 10, 16, 64],
"note": "Same search, different (k, d) target. Not Pareto-optimal against (22, 24): 21 calls at 26 adds. Recorded as search evidence only."
},
"batch_bill_all_127_rows": {
"readout_model": "two paired A_i readouts per output row, 127 rows",
"singleton_gray_baseline": {"queries": 278, "adds": 278, "source_word_k": 24, "source_word_W": 24},
"duo_22_24": {"queries": 276, "adds": 278, "source_word_k": 22, "source_word_W": 24},
"tariff": "In c_B = o + p, c_DUO = o + 2p, c_A = o + p the batch totals are 278o + 278p (Gray) and 276o + 278p (this word): strictly better for every o > 0, saving exactly 2 per-call overheads o with total adds unchanged."
},
"controls": {
"n5_duo_witness": {
"source": "research/duo-toggle-connector (merged), five-source unique Pareto witness (10, 12)",
"steps": [1, 2, 8, 18, 12, 16, 1, 2, 4, 2],
"prefixes": [0, 1, 3, 11, 25, 21, 5, 4, 6, 2, 0],
"expect": "closed, universal (32/32 masks of F2^5)"
},
"n5_singleton_histogram": {
"source": "research/universal-connector-boundary (merged) 945-pairing table, and research/universal-connector-six-source; recomputed here by an independent restricted-growth enumeration over the 945 canonical words (each of five labels used exactly twice)",
"size_of_D_including_0": {"16": 42, "19": 120, "21": 180, "22": 56, "23": 45, "24": 220, "26": 110, "28": 150, "31": 22},
"example_word_labels": [0, 1, 2, 0, 3, 1, 4, 2, 3, 4],
"example_word_coverage": 31
},
"n6_gray_literal": {
"source": "research/universal-connector-six-source (merged) Gray word",
"steps": [1, 2, 1, 4, 1, 2, 1, 4, 8, 16, 8, 32, 8, 16, 8, 32],
"expect": "closed, universal (64/64 masks of F2^6)"
},
"gray_n4_to_n7": "computed Gray words cover F2^n for n = 4..7 (n = 7 gives the 24-call singleton baseline)",
"mutation_controls": ["delete one call", "shrink one DUO step to a singleton", "retarget one call by XOR 2; each must break closure, restoration, weights or universality"]
},
"search_provenance": {
"tools": ["search.py (set hill-climb + Hamiltonian-cycle)", "walk_search.py (fixed-(k,d) closed-walk hill-climb)"],
"seed": 20261015,
"headline_found_by": "walk_search.py target (k, d) = (22, 2), first random restart",
"side_row_found_by": "walk_search.py target (k, 21... ) (21, 5), second run seed 987654321",
"k20_and_21_best": {"20,2": 122, "20,4": 124, "20,6": 126, "21,3": 127, "note": "best coverage per target within the recorded budgets; search failure, not exclusion"},
"words_sha256": "192b2bf7b90b04d8b18879f54f85be6c01a7d755c81b60a515d134c36534a421",
"words_sha256_definition": "sha256 of json.dumps({'headline_22_24': steps, 'side_row_21_26': steps}, sort_keys=True)"
}
}
155 changes: 155 additions & 0 deletions research/connector-seven-source-duo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# Seven-source universal connector word in the singleton+DUO alphabet

**Recursive-interface construction with full priced batch bill; no new kappa.**
In the prefix-walk model of
[`research/universal-connector-boundary`](../universal-connector-boundary/README.md)
(Ross Richardson, CrocSwap/integer-mult-bounds#943 / CrocSwap/integer-mult-bounds#934
lineage) extended by exactly the charged pair-source DUO family of
[`research/duo-toggle-connector`](../duo-toggle-connector/README.md)
(`DUO_{j,k}: z += B_j x_j + B_k x_k`, one dispatch, two source adds, sources
read-only, everything else unchanged), the **seven-source universal source word
has length k = 22 calls at W = 24 toggle-adds**:

```text
steps 64 32 8 20 64 32 1 16 64 2 4 64 1 4 34 8 16 1 4 32 1 16
(weight-2 steps: 20 = B_2 + B_4 and 34 = B_1 + B_5; all others singleton)
k = 22, d = 2, W = 22 + 2 = 24
```

The closed walk restores `z` (every label count is even: 4, 2, 4, 2, 4, 4, 4),
its prefix set covers all 128 masks of `F2^7` as pairwise prefix XORs, and an
independent dual test (`m` covered iff some prefix `p` has `p xor m` a prefix)
agrees. This is a strict Pareto improvement on the merged singleton upper bound
`f(7) <= 24` in [`research/universal-connector-six-source`](../universal-connector-six-source/README.md)
(a 24-call Gray word at 24 adds): the all-127-row batch runs **276 root queries
at 278 toggle-adds instead of 278 at 278**. In the price model
`c_B = o + p`, `c_DUO = o + 2p`, `c_A = o + p` the batch totals are `276o + 278p`
against `278o + 278p`: **strictly better for every `o > 0`, with total adds
unchanged** (saving exactly `2o`). Nothing is free: the two DUO calls pay two
source adds and one dispatch each, exactly as in `research/duo-toggle-connector`.

```sh
python3 -I -B research/connector-seven-source-duo/verify.py
```

Expected: `PASS_SEVEN_SOURCE_DUO k=22 W=24 queries=276 adds=278 universal=128/128 controls=945+gray+side+mutations`.
Python 3.10+ and the standard library suffice. [CERTIFICATE.json](CERTIFICATE.json)
holds both literal words, the label counts, the batch bill and the control
records. [search.py](search.py) and [walk_search.py](walk_search.py) are the
seeded search tools that produced the words (seed 20261015; the headline word
was the first hit of the `(k, d) = (22, 2)` target).

## Model and reduction (unchanged from the predecessors)

The frozen interface allows only complete calls `B_j: z += B_j x_j` and
`A_i: y_i += A_i z` and their charged DUO combination on arbitrary dirty
length-L F2 arrays; no copies, extra connectors, frame changes or combined
A-calls. Project a word onto its source calls and let `q_t` be the XOR of the
first `t` steps (`q_0 = 0`). Restoration forces `q_k = 0` and every label count
even. Two `A_i` readouts at boundaries `s, t` realize exactly the row
`q_s xor q_t`, so the word is universal iff `D(w) = {q_s xor q_t} = F2^7`. A
weight-2 step is one charged DUO call, so `W = k + d` for `d` weight-2 steps.

## Bill, and what is and is not claimed

For the frozen all-127-row batch every row needs two paired readouts, so the
schedule costs `k + 254` root queries and `W + 254` toggle-adds:

| Schedule | Root queries | Toggle-adds | Source calls | Readouts |
|---|---:|---:|---:|---:|
| Singleton Gray word (`research/universal-connector-six-source`) | 278 | 278 | 24 | 254 |
| This package, DUO word | **276** | **278** | 22 | 254 |

A second word of 21 calls at 26 adds (`k = 21, d = 5`) is recorded in
CERTIFICATE.json as search evidence; it trades two adds for one query and is not
Pareto-optimal here. The search's best coverages at `(20,2) = 122/128`,
`(20,4) = 124/128`, `(20,6) = 126/128`, `(21,3) = 127/128` are bounded search
failures, not exclusions: no word of length 20 or 21 with `W <= 24` is ruled out.

**Not checked / not claimed:** no physical supplier instance of the connector
interface exists (the predecessors' limitation, unchanged); no compiler/tape
integration, frames, owner admission, precision or outer analytic obligations;
no proof assistant; no claim that `k = 22` or `W = 24` is minimal at `n = 7`;
no claim about the singleton `f(7)` (the gap `18 <= f(7) <= 24` is untouched by
this two-call alphabet change); no kappa, certificate or selected-frontier
change. The DUO saving is `2o`; with `o = 0` there is no gain over the Gray word.

## Verification, controls and failure modes

`verify.py` is a deterministic replay (it does not rerun the search):

1. the five-source DUO witness of `research/duo-toggle-connector` replays closed
and universal with its recorded prefixes (smallest falsifying-instance control);
2. the 945 canonical five-source singleton words are re-enumerated and the
complete `|D(w)|` histogram `{16:42, 19:120, 21:180, 22:56, 23:45, 24:220,
26:110, 28:150, 31:22}` reproduces the merged 945-pairing table exactly, and
the merged example word covers 31 of 32 masks;
3. the Gray construction covers `F2^n` for `n = 4..7`, and the merged six-source
Gray literal covers all 64 masks of `F2^6`;
4. both words replay exactly: closure, per-label parity, step weights in `{1,2}`,
all 128 pairwise masks, and the dual coverage test;
5. the complete batch bill and its `o + p` tariff comparison are asserted;
6. three mutation controls (deleted call, DUO shrunk to a singleton, retargeted
call) must each be detected;
7. a SHA-256 digest pins the two words inside the certificate.

## Scope status

**Changed**, recorded per the card's own scope-change trigger: the card asked for
one added operation family, and DUO is already added and priced by
`research/duo-toggle-connector` and open PRs
https://github.com/CrocSwap/integer-mult-bounds/pull/2128 and
https://github.com/CrocSwap/integer-mult-bounds/pull/2156 (six sources entirely
closed). This package keeps the alphabet and raises the source count to seven,
the first boundary where the universal word is superlinear and the only one
where the merged baseline (`f(7) <= 24`) was heuristic beyond 22 calls. The
card's acceptance question — does the one added operation family offer a
favorable *completed* budget — is therefore answered at its next unsaturated
boundary: yes, `2o` on the full all-127-row batch.

Task card: [notes/agent-52-seven-source-duo-task-card.md](../../notes/agent-52-seven-source-duo-task-card.md);
chooser OS seed `4e177efb421addcdb3ba4ff20efdaefd`, track `recursive-interfaces`,
base `0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2`. Overlap: find_overlap terms
'seven-source DUO', 'seven source', 'f(7)', 'additive basis', 'difference cover'
on a fresh complete remote snapshot (2026-10-15T06:47Z, 577 open PRs / 1103
discussion records) found no seven-source full-coverage (128-mask) claim in any
alphabet. Discussion https://github.com/CrocSwap/integer-mult-bounds/discussions/2221
and PR https://github.com/CrocSwap/integer-mult-bounds/pull/2236 treat a
different object: the 63 weight-1/2/3 masks at seven sources with 14/18 singleton
events. No matches is not a novelty certificate.

## Open next questions

- **Is `(22, 24)` the Pareto profile at `n = 7` in the combined alphabet?** It
matters because the DUO call count would then settle the first superlinear
boundary. First step: a complete `(k, d) = (20, 4)` and `(21, 3)` census or a
counting lower bound on `(k, W)` pairs. Blocked by: the word space is
`~20^22` before symmetry, and no exclusion technique beyond the parity bound
`d = k mod 2` is known here.
- **Does a real supplier boundary admit the DUO call at `o > 0`?** Inherited
unchanged from `research/duo-toggle-connector`: the whole saving is `2o`.
First step: instantiate one DUO call in the predecessor's dense-bit-matrix
leaf and price its entry/exit frame against two singleton calls. Blocked by:
no physical instance of the connector interface exists in the selected
supplier.
- **Does the singleton `f(7)` itself drop below 24?** The merged gap is
`18 <= f(7) <= 24`. This package's words are not singleton words. First step:
target the `(22, 0)` or `(21, 1)`... (`d = 0` singleton) coverage hill-climb
with the retained tools. Blocked by: the same search-failure ceiling the
merged package recorded (126/128 at length 22).

## Credit

Contributor: **Aaron Wang**, with help from opencode (substantial AI assistance).
Model, reduction and the five-source boundary: Ross Richardson
(CrocSwap/integer-mult-bounds#943, #934). Six-source singleton value `f(6) = 16`
and the `n = 7` bounds: Douglas Colkitt (CrocSwap/integer-mult-bounds#1185) with
Hanson Sun's independent verification (CrocSwap/integer-mult-bounds#1215),
merged in `research/universal-connector-six-source`. DUO alphabet, its five-source
Pareto profile and pricing: `research/duo-toggle-connector`
(CrocSwap/integer-mult-bounds#1403 lineage). Six-source DUO word `(14, 16)` and
batch: Aaron Wang/Navinor with opencode,
https://github.com/CrocSwap/integer-mult-bounds/pull/2128. Six-source DUO batch
optimality certificate and the basis value `r[(C2)^6] = 14` (Volodymyr Gavrylkiv,
JIS 20 (2017), Table 3): https://github.com/CrocSwap/integer-mult-bounds/pull/2156.
New work in this package is Apache-2.0; no third-party code is vendored.
Loading
Loading