Skip to content
Open
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
146 changes: 146 additions & 0 deletions research/p104-one-frame-indicator-word/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# One frame-indicator row as a length-4 label word

No new κ. The selected record stays `781451/250000000`. This note hosts one
frame-indicator row and charges the monomials of that word. It does not host
the other twelve rows and it does not compare a histogram with the selected
profile.

## 1. Hypotheses

Ports and the odd graph are those of PR #6933. Two distinct ports are adjacent
when their `F_2` dot product is 1. Frame 0 of the #7014 witness is the ordered
8-tuple

```text
11, 21, 38, 56, 140, 146, 161, 191.
```

A **letter** is a root-line functional `λ_i(j) = (<r_i, r_j> + 1) mod 2` on the
120 root lines. A **word** is a product of letters. The product is evaluated in
`F_2`, so the value is 1 only when every factor is 1. The word **hosts** the
frame-indicator row when, on all 120 lines, the product equals 1 on these eight
lines and equals 0 on the other 112. Restriction to the 104 P104 lines is then
the indicator of this frame.

Labels use the inherited simple-root chart. If `B` is the doubled simple-root
basis of `e8model.py`, the label of a root `r` is

```text
u(r) = (coordinates of r in B, reduced mod 2) with a ninth coordinate 1.
```

The symmetric form `S9` is the Cartan matrix of `B` on the first eight
coordinates and 1 on the ninth diagonal entry. The chart is accepted only
because `S9(u_i, u_j) = (<r_i, r_j> + 1) mod 2` holds for every pair of the 120
lines. That identity is checked exhaustively; it is the pairing (1) of the
PR968 model.

Square-free monomials are written in `x0, ..., x7`, the first eight label
coordinates. The relation `x_i^2 = x_i` is used throughout, so a function
`F_2^8 → F_2` has one algebraic normal form.

## 2. The word

**Theorem.** Under the hypotheses above, no product of fewer than four letters
hosts the row. Every product of four letters that does host it expands to the
same 48 monomials

```text
(1 + x0)(1 + x1 + x2 + x4)(1 + x5)(1 + x6 + x7).
```

Eight of those monomials have degree at most 1: the constant `1` and
`x0, x1, x2, x4, x5, x6, x7`. The other **40** have degree 2, 3, or 4
(17, 17, and 6). Those 40 are the new monomials charged for this row.

One such word, the lexicographically first length-4 subset in the frame order
above, is the product of the letters of ports `11, 21, 38, 140`:

```text
λ_11 = 1 + x1 + x2 + x4 + x5,
λ_21 = 1 + x0 + x1 + x2 + x4 + x5,
λ_38 = 1 + x0 + x1 + x2 + x4,
λ_140 = 1 + x0 + x5 + x6 + x7.
```

The support of this function on the chart `x8 = 1` is the 16-point flat

```text
x0 = 0, x5 = 0, x1 + x2 + x4 = 0, x6 + x7 = 0
```

(`x3` is free). Exactly eight of those points are root-line labels, and those
eight are the frame. On every root line the function is therefore the
frame indicator. It is not the indicator of those eight points inside all of
`F_2^8`.

## 3. Proof

**Factor restriction.** Suppose a product of letters equals 1 at a line. Each
factor is 0 or 1, so each factor equals 1 at that line. The indicator equals 1
on the eight frame lines, so every factor of a hosting word equals 1 on all
eight. Checking the 120 letters, the only ones with that property are the
eight frame letters. Every hosting word is therefore a product of a subset of
these eight letters, repetitions included. A repeated letter does not change
an `F_2` value, so the 255 nonempty subsets exhaust the words.

**Census.** Each of those 255 products was evaluated on all 120 lines. The
products equal to the indicator are 56 of length 4, 56 of length 5, 28 of
length 6, 8 of length 7, and 1 of length 8. None is shorter than 4. This is an
exhaustive census of a finite domain of size 255, after the factor restriction.
It is not a sample.

**Reduction.** Write `p = 1 + x1 + x2 + x4`, `q = x0`, `r = x5`, and
`s = x6 + x7`. The four letters are the functions

```text
λ_38 = p + q, λ_11 = p + r, λ_21 = p + q + r, λ_140 = 1 + q + r + s.
```

On `F_2`, every function satisfies `f^2 = f`. Hence

```text
(p + q)(p + q + r) = (p + q)(1 + r),
(1 + r)(p + r) = p(1 + r),
(p + q)(p + r)(p + q + r) = p(1 + q)(1 + r).
```

The last step uses `p(p + q) = p(1 + q)`. Multiplying by `λ_140` gives
`p(1 + q)(1 + r)(1 + q + r + s)`. The target form is
`p(1 + q)(1 + r)(1 + s)`. Their difference is killed because

```text
(1 + q)(q + r) = r(1 + q), so p(1 + q)(1 + r)(q + r) = p(1 + q) · r(1 + r) = 0.
```

Thus the four-letter product equals `(1 + x0)(1 + x1 + x2 + x4)(1 + x5)(1 + x6 + x7)`
as a function on `F_2^8`. The four factors use disjoint variables, so the
square-free expansion has `2 · 4 · 2 · 3 = 48` monomials and no cancellation.
The eight monomials in which at most one factor contributes a variable are
`1, x0, x1, x2, x4, x5, x6, x7`. The remaining 40 are new relative to that
degree-at-most-1 alphabet.

**Same expansion for every shortest word.** The same evaluation shows that all
56 length-4 hosting products determine one polynomial: each agrees with this
expansion on all 256 points of the chart. Longer hosting products agree with
the indicator on the 120 lines. Their chart polynomials are not charged here.

**Pairing rank, not added.** On the eight frame lines the pairing matrix is
the all-ones matrix, which has `F_2`-rank 1. That is the inherited copy-cost
of the support of `χ χ^T`. It is a different unit from the 40 monomials and is
not added to them.

## 4. What the census does not decide

The factor restriction uses products of root-line letters. A sum of such
products, a coordinate change, or a circuit that is not a product can be a
different hosting, and this note gives no lower bound for those larger
alphabets. The 40 monomials are the expansion of this word in the fixed
simple-root chart. They are not a count of Clifford monomial routes, Gaussian
children, or selected-invoice primitives. No conversion into the selected paid
histogram is claimed, so this bill does not beat the selected profile and does
not change κ.

The other twelve frames of the witness are not expanded. A monomial shared
with one of them would make a joint bill smaller than the sum of the separate
bills. That comparison is not made.
104 changes: 104 additions & 0 deletions research/p104-one-frame-indicator-word/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# One P104 frame-indicator word

**No new κ.** The selected frontier stays `781451/250000000`. This package hosts
one frame-indicator row as a legal product of root-line labels and charges the
new monomials of that word. It does not host the other twelve rows and it does
not price a signed profile.

## Result

Frame 0 of the vendored 104-by-13 witness is the odd-graph clique

```text
11, 21, 38, 56, 140, 146, 161, 191.
```

A letter is the pairing of one root line with all 120 root lines. In `F_2`, a
product equals 1 only when every factor equals 1, so every factor of a hosting
word is identically 1 on these eight lines. The only such letters are the eight
frame letters. The 255 nonempty products of those letters were evaluated on all
120 lines. The products equal to the indicator begin at length 4: 56, 56, 28,
8, and 1 products of lengths 4 through 8. None is shorter.

Every length-4 hosting product expands, in the inherited simple-root chart, to
the same 48 square-free monomials

```text
(1 + x0)(1 + x1 + x2 + x4)(1 + x5)(1 + x6 + x7).
```

The lexicographically first such word uses ports `11, 21, 38, 140`. Eight
monomials have degree at most 1 (`1` and `x0, x1, x2, x4, x5, x6, x7`). The
other **40** have degree 2, 3, or 4, in counts 17, 17, and 6. Those 40 are the
new charges for this row. The proof of the factor restriction and of the
disjoint-variable identity is in [PROOF.md](PROOF.md). The support of the
function on the chart is a 16-point flat; exactly eight of those points are
root-line labels, and those eight are the frame.

The pairing matrix on the eight frame lines is the all-ones matrix and has
rank 1. That copy-cost is a different unit and is not added to the 40.

## Evidence class

The factor restriction and the reduction to the four-factor form are written
proofs. The census of 255 products, the check that only the eight frame letters
are admissible, the 120-by-120 chart identity, and the agreement of all 56
length-4 expansions are exhaustive finite checks. This is not a heuristic and
not an incomplete search inside that alphabet.

It is not a lower bound for sums of letters, for a different chart, or for a
circuit that is not a product. It is not a selected-invoice histogram. It does
not beat the selected profile.

## Scope

Catalogue card `complex-rank-shape-decoder`, priority revision 8, pinned at
`17469fff78c22941280f04d39dc5a1faee09c840`. The card asks whether a decoder or
coframe change improves the full signed moment. The live handoff in open PR
[#7014](https://github.com/CrocSwap/integer-mult-bounds/pull/7014) asks a prior
question: host one frame-indicator row and charge every new monomial before
touching the other twelve. Scope is **changed** to that first step, for frame 0
only. The connection to the bottleneck is recorded in [TASK.json](TASK.json):
a later joint bill cannot be priced until each row's new monomials are known,
and this package stops at the first row.

`data/frames.json` is the frame partition from that open pull request (head
`949c0ada285aae619468ae49317c8d9f4df130f7`), vendored and hashed inside
`verify.py`. This package does not reprove the rank-13 factorisation. Ports and
the E8 line map are the #6933 inputs pinned in [SOURCES.json](SOURCES.json).
The label chart is the simple-root chart of the inherited `e8model.py` pairing.

## Reproduce

From the repository root, Python 3.12, standard library only:

```sh
python3 -B research/p104-one-frame-indicator-word/verify.py
python3 -I -O -B research/p104-one-frame-indicator-word/verify.py
python3 -B scripts/research_package.py --package research/p104-one-frame-indicator-word
python3 -B scripts/check_research_commit.py --package research/p104-one-frame-indicator-word --check-source-history
```

The verifier prints `PASS_P104_ONE_FRAME_INDICATOR` with `word=11,21,38,140`,
`monomials=48`, and `new=40`. Failure controls delete one letter of that word,
count the 14 length-4 products that miss the row, delete the constant monomial,
and reject a letter from outside the frame.

## Open next questions

1. Host frame 1 by the same census and compare its degree-at-least-2 monomials
with these 40. A shared monomial would make a joint bill smaller than the
sum, which is the first place the thirteen rows can interact.
2. Decide whether a sum of letters, rather than a product, can host this same
row with fewer than 40 new monomials. The product census does not speak
about sums.
3. Name these 40 monomials as primitives on the selected #6030 invoice before
asking whether thirteen rows beat the profile. No conversion is claimed here,
and no κ change is available until that naming exists.

## Credit

Frame partition: unpaidmoon, PR #7014. Ports and odd-graph window: PR #6933.
Label pairing: the simple-root chart used by the complex-frame decoder notes.
Prepared by unpaidmoon with substantial Cursor Grok assistance. New work is
Apache-2.0.
30 changes: 30 additions & 0 deletions research/p104-one-frame-indicator-word/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"schema_version": 1,
"base_commit": "17469fff78c22941280f04d39dc5a1faee09c840",
"files": [
{
"path": "certificates/selected-result.json",
"usage": "provenance",
"git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a",
"sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa"
},
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec",
"sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81"
},
{
"path": "research/p104-port-window-haemers/data/e8_line_map.json",
"usage": "input",
"git_blob": "19ea2d553aff60e53af50dd9582ab70730e93450",
"sha256": "b37530e8e9b2b3bd5be418d5ed3060a42ceb66e60ed3789f8ee79f29dabde437"
},
{
"path": "research/p104-port-window-haemers/data/ports_p104.json",
"usage": "input",
"git_blob": "8037fd10877f49063a1c8a530b40c27f2453dac0",
"sha256": "691c7b7d212112115b1bfc76db89f90d304ec448dc8c4a0c43d9a5954317146c"
}
]
}
87 changes: 87 additions & 0 deletions research/p104-one-frame-indicator-word/TASK.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"schema_version": 1,
"task_id": "complex-rank-shape-decoder",
"priority_revision": 8,
"base_commit": "17469fff78c22941280f04d39dc5a1faee09c840",
"original_card": {
"id": "complex-rank-shape-decoder",
"question": "Can a legal decoder or coframe change improve the full signed moment, including changed helper targets?",
"starting_points": [
"docs/research/current-priorities.md",
"docs/research/research-family-status.md",
"certificates/selected-result.json",
"docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md",
"docs/research/recursive-invoice-preflight.md"
],
"methods": [
"Construct and independently check one source-bound instance of the stated first experiment.",
"Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change."
],
"acceptance_gate": "A source-bound arbitrary-input identity and legal producer/consumer boundary with the complete paid and productive target invoice, including restoration, ownership, native alignment and extra charges. Price under the actual current model; historical ceiling.py assumptions must be established before use. A favorable optimistic relaxation keeps a route open but is not a completed supplier. A scoped local result remains useful; expansion requires the family-level budget gate.",
"first_step": {
"command": [
"python3",
"-B",
"scripts/research_selected_baseline.py"
],
"expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY",
"inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.",
"scope": "Source-bound orientation only, not a supplier replay or theorem proof."
},
"first_experiment": "Price one complete changed itinerary with both paid and productive histograms. Check #5693/#5698 for overlap and their exact hypotheses before another coframe search. Use the signed invoice preflight where its boundary contract agrees; an inconclusive concave comparison is not a power crossing. Stop if an optimistic complete budget fails at the chosen target or native delivery remains unspecified.",
"bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.",
"allowed_variations": [
"One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes."
],
"scope_change_triggers": [
"Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.",
"Treating an archived proposal or local numerical pass as complete supplier admission."
],
"overlap_terms": [
"coframe",
"signed moment",
"5693",
"5698"
],
"existing_checks": [
{
"scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.",
"evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md",
"remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.",
"status": "reviewed",
"source_commit": "09dd0965711ca7eeb169057a420abab1c9052137",
"selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5"
}
]
},
"scope_status": "changed",
"actual_scope": "Host frame 0 of the #7014 P104 factorisation as a product of root-line labels and charge every new monomial of that word, before touching the other twelve frames.",
"scope_change_reason": "The catalogue card asks whether a decoder or coframe change improves the full signed moment. Open PR #7014 asks a prior physical question: host one frame-indicator row as a legal label word and charge every new monomial before touching the other twelve. This package answers that first step for frame 0 only. It does not price a changed itinerary, so it cannot improve the signed moment.",
"bottleneck_link": "A complete signed target bill needs the new charges of any legal producer that is added. This package records the 40 new monomials of one frame-indicator word and stops. Those charges are a prerequisite for pricing the thirteen rows together; they are not themselves a signed histogram or a supplier admission.",
"budget_minutes": 60,
"stop_rule": "Stop after the length-4 word for frame 0, its 40 new monomials, and the statement that the other twelve frames are unexpanded. Do not convert the monomials into a selected-invoice histogram and do not claim a kappa change.",
"outcome": "completed",
"evidence": "verify.py prints PASS_P104_ONE_FRAME_INDICATOR word=11,21,38,140 monomials=48 new=40. Evidence class: a written F2 factor restriction and a written reduction to (1+x0)(1+x1+x2+x4)(1+x5)(1+x6+x7), plus an exhaustive census of the 255 products of the only eight admissible letters. Not a heuristic. Not a selected-profile comparison. Selected kappa remains 781451/250000000.",
"author": "unpaidmoon",
"ai_assistance": "Substantial Cursor Grok assistance. The census, chart identity, and polynomial reduction are rechecked by verify.py.",
"open_questions": [
{
"question": "Which degree-at-least-2 monomials of frame 1 coincide with the 40 monomials charged for frame 0?",
"why_it_matters": "A shared monomial makes the joint bill of two rows smaller than the sum of the separate bills, which is the first interaction among the thirteen rows.",
"first_step": "Rerun the same census with frames[1] in place of frames[0] and intersect the two sets of degree-at-least-2 exponents.",
"blocked_by": "none in this alphabet; the other frame has not been expanded"
},
{
"question": "Can a sum of root-line letters host the frame-0 indicator with fewer than 40 new monomials in this chart?",
"why_it_matters": "The 40-count is exact for products. A sum is a larger alphabet, so the product census is not a lower bound for it.",
"first_step": "Search linear combinations of the 120 letters, reduced in the simple-root chart, for a function that matches the indicator on all 120 lines and has fewer than 40 monomials of degree at least 2.",
"blocked_by": "the product census does not cover sums"
},
{
"question": "What is the selected #6030 invoice price of these 40 monomials, with no other rows attached?",
"why_it_matters": "Until each monomial is named as a paid primitive, the word cannot be compared with the selected profile and cannot change kappa.",
"first_step": "Match each of the 40 square-free monomials to a primitive the #6030 invoice already prices, or record that the match is undefined.",
"blocked_by": "this package does not identify those primitives"
}
]
}
Loading