Skip to content

Research: no 14-call two-target UT4 word on two roles; with CrocSwap/integer-mult-bounds#1680, at least 15 calls for every r (no new kappa) - #1690

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
navinor:research/navinor-donation-9bc45f
Oct 14, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
navinor:research/navinor-donation-9bc45f

Conversation

@navinor

@navinor navinor commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Change and mathematical scope

This adds only research/ut4-two-target-r2/. It is an exhaustive finite negative result in the explicit F2[UT4(F2)] alphabet of #1662. No new κ, no supplier, and no change to the selected record, upstream/ or any frozen pin.

Result. With r = w = 2 (no extra roles), no word of 14 paid factors I+([g]+1)xy^T (g in {a,b,c}) equals the two-target endpoint I+([z]+1)I_2. No such word reaches even the degree-three quotient endpoint. This answers PR 1662's open question for two roles.

Every-r corollary, conditional. @ToikY's concurrent #1680 (head a281330e) proves in writing that every 14/15-call two-target word with any r ≥ 2 compresses to two roles. Together: two central targets need at least 15 calls for every finite r, so the interval is 15..16. That corollary rests on PR 1680's written lemma, which this package does not re-derive.

Method

PR 1662's written bound forces counts (4,6,4). The search then:

  1. Enumerates the zero-sum six-call middle sequences up to GL2(F2) conjugation. The 5,582 representatives' orbits are checked to cover all 33,489.
  2. Reduces each a/c placement to its prefix-sum profile at the six middle calls (20,791 profiles), screened by the a/b-only and c/b-only quotient coefficients.
  3. Pairs profiles through the vectors u_j = P_j x_j, w_j = P_jᵀ y_j, on which abc and cba depend.
  4. Expands every surviving pair into all concrete words. Each word is checked against the full quotient and, separately, the full formal group-algebra endpoint.
Stage Count
Canonical middle sequences 5,582
Key pairs / profile pairs with abc = cba = I 184 / 208
Concrete words 3,248
Pass quotient endpoint / formal endpoint 0 / 0

Evidence

python3.12 -B scripts/research_package.py --package research/ut4-two-target-r2 gives PASS_REGISTERED_RESEARCH_PACKAGE research/ut4-two-target-r2 outcome=negative-result. Local run: CPython 3.12 on Windows x86_64, about 4 min (verify.py 227 s, then 14 tests in 12 s). --check-only also passes.

  • verify.py independently checks:
    • that g ↦ 1+g is multiplicative from UT4(F2) into the quotient on all 4,096 pairs, with z ↦ 1+abc+acb+bac+cba;
    • GL2 orbit coverage;
    • PR 1662's direct 16-call word as a positive control, with all 16 one-call omissions failing;
    • every stage count of the full search.
  • test_package.py (14 tests):
    • the profile and key formulas against direct quotient products on random words;
    • indexed key pairing against brute force;
    • that the formal product is in word order;
    • planted-word completeness: random (4,6,4) words are regenerated by the enumeration;
    • a slow reference driver that finds (abcb)^2 at r = 1 and nothing for counts (2,3,2).
  • Six source mutations (operand order, the bab sum, cross order, quotient reduction, left versus right multiplication, the central target) are each killed by the tests. An earlier run showed the multiplication-order mutant surviving; the order test was added to catch it.

Not checked:

  • PR 1662's count lower bound and PR 1680's compression lemma are cited, not re-derived.
  • No proof-assistant or independent human review.
  • No physical, compiler, hosting, precision or analytic obligations; no selected cold replay (nothing in the selected chain changes).
  • On this Windows machine, 6 of the 20 tests/test_research_*.py workflow tests error inside their own temporary repositories (source has uncommitted changes ... input.txt, a line-ending issue). The other 14 pass. The errors are unrelated to this package.

Task and overlap

Open next questions

  1. Is 15 attainable at r = 2? By PR 1680 that decides the exact cost for every r. The first step is to run the pipeline on the splits (5,6,4), (4,7,4) and (4,6,5).
  2. An independent check of PR 1680's compression lemma.

Credit

@ToikY (#1662 for the model, bound and question; #1680 for the workspace compression). Also steph4n-gh (#1573), Arham Tahir (#1589) and Hanson Sun / @bbMisk (#1607). No predecessor code is imported.

Prepared by Aaron Wang / navinor, with help from Claude Code. Apache-2.0. Not requesting merge; the selected frontier is unchanged.

Exhaustive r=w=2 search over PR1662's F2[UT4(F2)] alphabet with counts (4,6,4): 3,248 candidate words survive the profile screens and none reaches the degree-three quotient or full formal endpoint. With PR1680's workspace compression this excludes 14 calls for every r. Aaron Wang / navinor, with help from Claude Code.
@navinor
navinor force-pushed the research/navinor-donation-9bc45f branch from 6068d88 to dfd1568 Compare October 14, 2026 07:09
@navinor navinor changed the title Research: no 14-call two-target UT4 word on two roles; with #1680, at least 15 calls for every r (no new kappa) Research: no 14-call two-target UT4 word on two roles; with CrocSwap/integer-mult-bounds#1680, at least 15 calls for every r (no new kappa) Oct 14, 2026
@JosieElliston

Copy link
Copy Markdown
Contributor

Cross-reference: open next question 1 here is answered in #1816. That PR searches all three 15-call splits at r = w = 2, (5,6,4), (4,6,5) and (4,7,4), and finds no word reaching the quotient or formal endpoint.

It vendors this PR's search.py byte for byte (hash-checked) and reproduces every (4,6,4) stage count here exactly. One portability note: key_cross and _sol assume 6-bit masks, because PAR has 64 entries. At seven middle calls they raise IndexError, so #1816 carries its own 7-bit versions. With #1680, the two-target cost is exactly 16 for every r.

@Mister-Meeseeks
Mister-Meeseeks merged commit 0c2d363 into CrocSwap:main Oct 14, 2026
14 of 61 checks passed
@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

Batch review at dfd15686309d26eb98740942c4e84cddeafae7d8.

Merged to main, preserving the original contributor commits and package attribution.

Reviewed scope: Complete UT4 two-target r=2 census excludes the only 14-call count (4,6,4), including all coupling profiles and interleavings after valid GL2 conjugation. Combined with the stated workspace compression, the scoped minimum is 15 or 16; no shorter-word or physical-supplier construction is claimed.

The pinned scoped command passed; the batch ledger contains its command, input hashes, environment and log. This incorporates the research/tooling contribution and does not change the selected κ or discharge the inherited multiplication-theorem assumptions.

Batch review, attribution and evidence. Thank you for the contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants