Skip to content

Derive the complete length-22 parity-split domain at seven labels (no census, no f(7)) - #3708

Open
petalas wants to merge 1 commit into
CrocSwap:mainfrom
petalas:research/w1-b21-scatter-export-parity-20261018
Open

petalas wants to merge 1 commit into
CrocSwap:mainfrom
petalas:research/w1-b21-scatter-export-parity-20261018

Conversation

@petalas

@petalas petalas commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Arithmetic reduction only. No seven-label word is enumerated, no length-22 split is excluded, and f(7) is untouched.

This is the first half of the open question recorded in #2973: "derive and audit its complete split domain before a bounded feasibility probe." It derives from scratch, with a separately written standard-library implementation, the complete set of Hamming-weight parity splits a restored universal length-22 word over seven labels could possibly have.

The result

Split |P| Revisits forced B0 need Odd budget
(11,11) 22 0 47 29 121
(11,10) 21 1 37 23 110
(11,9) 20 2 28 18 99
(10,10) 20 2 27 18 100
(11,8) 19 3 20 12 88
(10,9) 19 3 18 13 90
(11,7) 18 4 13 7 77
(10,8) 18 4 10 8 80
(9,9) 18 4 9 9 81
(11,6) 17 5 7 1 66
(10,7) 17 5 3 3 70

Exclusions, with the responsible condition named. The time bound removes (13,5) and (12,6) — counting-feasible at |P| = 18 but impossible in a 22-step walk since s <= 11. The pair identity removes (9,8), whose B0 = 1 cannot reach need = 4. The same conditions independently reduce |P| = 17 to exactly (10,7) and (11,6), which are precisely the two splits the imported set-level result excludes, leaving 9.

Two further consequences: the covering-cardinality floor at n = 7 is 17 points, and self-avoidance is valid at length 22 only at (11,11) — the single split where |P| = L. At the other ten splits 1 to 5 revisits are forced, so a census assuming a simple cycle would silently miss most of the domain.

Verification

python3 -I -B research/f7-l22-split-domain/verify.py
# PASS_F7_L22_SPLIT_DOMAIN length22_self_contained=11 after_17pt_import=9 f7_untouched

About 28 s, standard library only, on macOS arm64 / CPython 3.15.0. Also passes under -O -Werror.

  • The 01021323 fixture is reconstructed independently and agrees element for element with check_math.py.
  • All restored words at (3,6), (3,8), (4,8) are enumerated; counts and split histograms match the independently published values (for (4,8): 48 (3,4), 48 (4,3), 528 (4,4)). Five further domains are enumerated without a published comparison.
  • The published length-18 domain, the five length-20 representatives, and their budgets 27,18,10,9,3 / 36,26,16,17,6 are all recomputed from the definitions.

Control strength, including what did not discriminate

Controls were developed against a 37-mutant battery. Three real gaps it exposed and this PR fixes:

  1. The necessity audit inside the enumerator cannot fire on correct code, so deleting it changed nothing. Replaced with a converse control: the four conditions must reject non-covers (all 168 non-universal words at (3,8)).
  2. The coverage oracle had no non-vacuity control — an always-true covers initially passed. Now all 256 subsets of the fixture set are cross-checked against an independently written per-mask reference. Note the fixture is not minimal, so the obvious single-point-removal control would have been wrong.
  3. The ceiling in need = ceil((s*t - Q)/2) is untested by any length-22 verdict, so a floor-for-ceiling mutant survived. Now checked directly, including odd remainders.

Two mutants survive and are equivalent, not defects: >= universe vs == universe inside covers (the pair-sum set is always a subset), and appending (j,j,j,j) in the padding check (that is exactly two pad steps).

One honesty note: the verifier reports that the even budget is redundant given the identity, since need >= 0 means B0 <= 0 already fails. It is labelled redundant rather than presented as a fourth filter.

Scope

No supplier, tariff, kappa, certificate, frozen input or selected-frontier change. scripts/research_baseline.py still reports PASS_RESEARCH_BASELINE_BINDINGS_ONLY with the same values. Necessary conditions are necessary only: this is an upper bound on what a census must search, not a candidate list of existing words.

Overlap. #3699 independently recomputes the same 01021323 fixture and classifies which linear functionals make the old substitution falsely prune. Different deliverable: it answers which groupings are affected at small n; this answers what the split domain is at n = 7, L = 22. The shared fixture arithmetic agrees exactly.

Not discharged. The 17-point exclusions are imported, not re-proved, so the 9-split figure is conditional on #2773 and #2870. The registered launcher gates on Python 3.12, which this host lacks, so only --check-only ran locally; CI remains the first 3.12 run.

Open next questions

  1. Does a restored universal length-22 word exist? The domain is now 9 splits, so this is a finite census rather than an open one. first_step: run the corrected engine at (11,11) alone, where self-avoidance is valid and no revisit handling is needed. blocked_by: no node-count estimate or resource budget; Correct word-census parity budgets; 22 <= f(7) <= 24 in the PR943 model #2973's stop rule was explicitly no L22 census.
  2. Which zero-XOR subword lengths can realize the forced revisit counts? Pure combinatorics, no search. blocked_by: interaction with the collision budgets untested.
  3. Do KB3e: the 18-point cover question for F2^7 narrowed to an exact finite remainder (outcome=partial, no new kappa) #2911's undecided 18-point splits intersect the reachable ones? (12,6) is outside the length-22 domain entirely, so only three of its four splits are reachable at L = 22.

Credit Ross Richardson (#943 model); Aaron Wang (#2542 word model, #2773/#2870 17-point exclusions); Nicholas Stone (#2691 and the corrected census in research/f7-weight-parity-census-correction); Douglas Colkitt (source bindings and review). Automated research donation session; separate internal self-review is not independent human or proof-assistant review. Apache-2.0.

@petalas
petalas force-pushed the research/w1-b21-scatter-export-parity-20261018 branch from cd5d846 to 44334c6 Compare October 18, 2026 18:11
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.

1 participant