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
167 changes: 167 additions & 0 deletions research/f3-ternary-seven-source/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# A 6600-call seven-source full ternary connector

The unsigned dirty connector with seven immutable sources and all 2186
nonzero coefficient rows over F3 has a **6600-call construction**, improving
[#4256](https://github.com/CrocSwap/integer-mult-bounds/pull/4256)'s upper
bound of 6603 by three complete calls. This answers its open question 2 with
a small improvement. The claim type is a **finite construction certificate**,
with the prefix identity explaining why the certified word works in every
compatible dimension. No exact optimum, new kappa or supplier admission is
claimed. The cited lower bound from
[#4244](https://github.com/CrocSwap/integer-mult-bounds/pull/4244) remains
6588, so the current cited interval is 6588 <= OPT_3(7) <= 6600.

## Exact interface

For each j = 0..6, x_j is immutable. The connector z and all distinct outputs
y_v are arbitrarily dirty. For every nonzero v in F3^7 the required action is

```text
y_v += sum_j v_j A_v B_j x_j; z and every x_j are unchanged.
```

The maps are arbitrary compatible F3-linear maps, including singular and
noncommuting maps. Only unsigned complete calls are permitted:

```text
B_j: z += B_j x_j
A_v: y_v += A_v z
```

Every call restores its private scratch and heads. Outputs are observed only
after the batch and cannot be borrowed. There are no inverses, direct A_v B_j
calls, extra connectors, frames, source mutation or free copies. The word is
independent of data and map entries. This is the full-demand interface of
Nick Petalas's #4238/#4244, building on the credited connector lineage below.
The number priced here is complete calls at unit prices. Physical costs that
are not part of those complete primitive implementations remain additional.

## Certificate and argument

Use this 42-event source word, with one digit denoting the source index:

```text
260536506545241601014125215430234634321306
```

Each of the seven source labels occurs six times, so the connector is
restored in characteristic three. Let q_t be the vector of source counts
modulo three before event t, for t = 0..41. The closing boundary is q_42 = 0
and duplicates q_0. The verifier enumerates all
binomial(44, 3) = 13244 boundary triples with repetition and checks

```text
{q_a + q_b + q_c : 0 <= a <= b <= c < 42} = F3^7.
```

For each nonzero row v, take its lexicographically first such triple and
place its three A_v calls at those boundaries. Several readouts at the same
boundary mean consecutive calls. Readouts do not change z, so all chosen
triples can be scheduled together, in boundary order. At boundary t,

```text
z = z_initial + sum_j (q_t)_j B_j x_j.
```

The three readouts add three copies of A_v z_initial, which vanish, and
sum_j v_j A_v B_j x_j. This uses only linearity and never interchanges A_v
and B_j. Each target receives exactly its required increment. The total is

```text
42 source calls + 3 * (3^7 - 1) readouts = 42 + 6558 = 6600.
```

The predecessor #4256 has 45 source calls and the same 6558 readouts, giving
6603. Both totals and the shared row/readout counts are checked numerically
by the arithmetic above. No predecessor census or theorem is reverified.

The source path was found by a bounded swap search starting with six uses of
every source. Search stopped at the first covering path. Discovery is not
part of the certificate: the explicit word and exhaustive triple check are
sufficient, and no search-failure or optimality claim is made.

## Evidence and reproduction

The standard-library verifier writes no files and imports no predecessor
code. It checks all 2187 rows including zero using both packed base-three
arithmetic and a separately written tuple computation. It then emits and
replays all 6600 calls using a generic coefficient ledger. That ledger tracks
incoming dirt and each B_j x_j separately, with A_v acting on the left.

Eight dense executions use dimensions 1..4, two fixtures per dimension, dirty
connectors and outputs, and explicit singular noncommuting maps in dimensions
at least two. Six mutations must fail: a dropped source call, a dropped
readout, a misrouted output, relabelled source calls, an appended source call,
and execution in characteristic six. The last control detects the unpaid
assumption that three readouts always cancel incoming dirt.

From the repository root, with CPython 3.12:

```sh
~/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/f3-ternary-seven-source/verify.py
~/git/integer-mult-bounds/.venv/bin/python3.12 -W error -O -B research/f3-ternary-seven-source/verify.py
~/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/research_package.py --package research/f3-ternary-seven-source
~/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/check_research_commit.py --package research/f3-ternary-seven-source --check-source-history
```

Expected marker: `PASS_F3_TERNARY_SEVEN_SOURCE`, with `calls=6600`,
`rows=2186`, `source_calls=42`, `dense_cases=8` and `rejected_controls=6`.
The generated stdout receipt binds the counts to SHA256 hashes of all five
package files. No hand-written receipt or generated replay output is stored.
[SOURCES.json](SOURCES.json) pins historical provenance at the public base.
The pending predecessors are citations rather than executable dependencies.

The code is nonrecursive, and every loop is bounded by fixed certificate
sizes, at most 64 source events, 2186 rows and dense dimension four. Each
function is shorter than 60 physical lines. Python-managed allocation is an
explicit Power of Ten deviation: dynamic objects are required by the runtime;
live verification storage is bounded by these fixed domains. There is no
unbounded input, background process or generated file. Warnings are errors
in both registered modes; checks use explicit exceptions and remain enabled
under optimization.

## Limits and family decision

This finite certificate supplies an upper bound. It does not exclude shorter
words or improve #4256's asymptotic exponent. The interval's lower endpoint
is the cited result of #4244 and is not a new proof here. A proof-kernel build,
independent human review and the selected cold replay are unclaimed and unrun.

The call count is proved for the abstract interface. A concrete consumer for
full ternary demand is unknown. Coefficient preparation, physical dispatch,
stock, hosting, precision, tape costs and complete supplier admission remain
unknown. Unknown costs are not zero. No selected source, frontier, shared
code or predecessor package changes.

The catalogue card asks for an alphabet extension. This is explicitly a
changed scope: the alphabet is retained and a full-demand finite upper bound
is improved. The family decision is to finish this small result and stop.
There is no downstream implementation campaign or claim that the complete
consumer fits a supplier budget.

## Open next questions

Structured questions are in [TASK.json](TASK.json).

1. Is the cited lower bound 6588 attained? Start with a restored 30-event
source path covering all ternary rows by triples, or a word that trades
source calls for extra readouts. An unsuccessful search is not exclusion.
2. Can the 42-event path yield a smaller leading constant in an all-n
construction? A lifting argument must preserve all triple decompositions
and charge every source event, rather than merely multiplying palette
sizes. No such lifting is supplied here.
3. Does a concrete caller need every ternary row? Identify its complete maps,
dirty-state contract and physical invoice before extending this family.

## Credit

This contribution was produced by Nick Petalas. Nick Petalas's #4256 posed
the seven-source upper-bound question and supplied the 6603-call torus-block
baseline; #4238/#4244 introduced full ternary demand and its cited lower
bounds. Credit #4231 for the unsigned ring interface, Riquelme Soares's
#4189 for the unsigned F3 predecessor, Ross Richardson's #943/#934 for the
prefix-connector and Gray-block lineage, conorholds's #2208 for block palettes
and all-word counting in different alphabets, and ywz65 for the five-source
contract map. No priority is claimed for elementary prefix sums or dirty
cancellation. Predecessor credit is unchanged. Independent human and formal
proof-kernel review are unclaimed. Apache-2.0.
30 changes: 30 additions & 0 deletions research/f3-ternary-seven-source/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"schema_version": 1,
"base_commit": "12fa8c5c844be21bfefb38a19503fbd867a11244",
"files": [
{
"path": "certificates/selected-result.json",
"usage": "provenance",
"git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81",
"sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"
},
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65",
"sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96"
},
{
"path": "research/universal-connector-boundary/README.md",
"usage": "provenance",
"git_blob": "d277f7c5830b1f2bc42e1ff41ab86e7d7564929f",
"sha256": "23415f7829ab8d80a783142f10f7d31abbce84579362769984680af3df954476"
},
{
"path": "docs/research/five-source-connector-scope-map.md",
"usage": "provenance",
"git_blob": "c4b56250e35eb52f07987f7e96c7dba18fac75d1",
"sha256": "5b541588a5ddb38b4dbbf5dca91cc9e6684f67462d515e25f838d833ec30f62f"
}
]
}
92 changes: 92 additions & 0 deletions research/f3-ternary-seven-source/TASK.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"schema_version": 1,
"task_id": "connector-alphabet-change",
"priority_revision": 7,
"base_commit": "12fa8c5c844be21bfefb38a19503fbd867a11244",
"original_card": {
"id": "connector-alphabet-change",
"question": "Does one explicit extension of the connector alphabet offer a favorable completed budget?",
"starting_points": [
"docs/research/research-family-status.md",
"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. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.",
"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.",
"Extending a source-count census without naming a supplier/interface decision it could change; audit #2973 pruning concerns before relying on the affected predecessor exclusions."
],
"overlap_terms": [
"universal connector",
"source-toggle",
"connector alphabet"
]
},
"scope_status": "changed",
"actual_scope": "A 6600-call upper bound for the seven-source unsigned F3 dirty connector with all 2186 nonzero ternary rows.",
"scope_change_reason": "Retains the alphabet and improves a full-demand finite construction, answering PR4256 open question 2 rather than extending the operation alphabet.",
"bottleneck_link": "Side result on a recursive connector interface. A concrete full-demand consumer and complete supplier invoice are unknown; no kappa claim.",
"budget_minutes": 60,
"stop_rule": "Stop research at the first verified upper-bound improvement, then package it. No shorter-word search after the 42-event witness.",
"outcome": "completed",
"evidence": "All 13244 boundary triples cover all 2187 rows; packed and tuple arithmetic agree. Literal 6600-call replay, eight dense dirty executions and six rejection controls pass.",
"author": "Nick Petalas",
"ai_assistance": "Independent human and formal proof-kernel review are unclaimed.",
"open_questions": [
{
"question": "Is the cited lower bound 6588 attained?",
"why_it_matters": "Would settle the seven-source full ternary optimum.",
"first_step": "Seek a restored 30-event path covering every row by triples, or a legal source/readout tradeoff.",
"blocked_by": "No covering shorter word or stronger all-word lower bound is supplied."
},
{
"question": "Can this finite palette reduce the leading constant of an all-n construction?",
"why_it_matters": "PR4256 matches the exponent but leaves a constant gap.",
"first_step": "Prove a lifting rule preserving triple decompositions and count every positive source step.",
"blocked_by": "No such lifting rule is known here."
},
{
"question": "Which concrete caller requires full ternary demand?",
"why_it_matters": "A local call saving needs a consumer before it can affect a supplier.",
"first_step": "Pin a caller and price maps, dispatch and dirty return.",
"blocked_by": "Caller, stock, precision and physical implementation are unknown."
}
],
"predecessors": [
{
"pr": 4256,
"head": "6a95ef419f94e7b5c2fff710e34081520cc6aba2",
"role": "6603 upper bound and open question 2; citation only"
},
{
"pr": 4244,
"head": "f436d2911351e5be2842208fe96b0b66442323a4",
"role": "full-demand interface and cited 6588 lower bound; citation only"
},
{
"pr": 4238,
"head": "191a905d7adba6695b079f744140a73e832787a8",
"role": "full ternary demand predecessor; citation only"
}
],
"result": "Finite construction certificate: 42 source calls and 6558 readouts, total 6600, three fewer than the cited 6603 upper bound."
}
32 changes: 32 additions & 0 deletions research/f3-ternary-seven-source/VERIFY.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"schema_version": 1,
"status": "ready",
"python": "3.12",
"requirements": [],
"inputs": [],
"commands": [
{
"argv": [
"{python}",
"-W",
"error",
"-B",
"{package}/verify.py"
],
"timeout_seconds": 120,
"checks": "Independent complete triple coverage, literal dirty coefficient replay, eight dense noncommuting fixtures and six rejection controls."
},
{
"argv": [
"{python}",
"-W",
"error",
"-O",
"-B",
"{package}/verify.py"
],
"timeout_seconds": 120,
"checks": "The same scientific checks with Python optimization enabled; all contracts remain active."
}
]
}
Loading