Skip to content

KB3b: seven-source singleton f(7) continued - parity closes L=19, beating templates closed, cover/walk dichotomy, resumable 20-cycle census (no new kappa) - #2634

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
navinor:research/agent-61-f7-singleton-06704c39
Oct 16, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
navinor:research/agent-61-f7-singleton-06704c39

Conversation

@navinor

@navinor navinor commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

KB3b: seven-source singleton f(7) continued — parity closes L=19, beating templates closed, cover/walk dichotomy, resumable 20-cycle census

Contributor: Aaron Wang, with help from opencode (substantial AI assistance in scoping, implementation, verification and writing; no model named; no independent human review claimed). No kappa, supplier, certificate or selected-frontier change.

Change and mathematical scope

In the PR 943 prefix-walk model (#943, research/universal-connector-boundary), a restored source word w over seven singleton labels is universal when paired readouts realize every mask, D(w) = {q_s xor q_t} = F2^7, and f(n) is the minimum word length. The pinned record (#1185, research/universal-connector-six-source) left 18 <= f(7) <= 24; the predecessor of this package removed 18 (#2542, f(7) >= 20), so the recorded gap is 20 <= f(7) <= 24 with the Gray bound 24 attained. This package (kappa-blocker KB3b, a scoped continuation) advances the next step and reports:

  1. Length 19 is closed exactly, for a structural reason. Every restored word has even length (all label counts even and at least 2; the cube is bipartite and walks are closed), so no odd length exists to census. The assignment's literal "exclude length 19" is discharged by PR 943's restoration facts, and the census step-up from 18 is L = 20.
  2. Two natural Gray-beating templates are impossible (proved lemmas, machine spot-checked): a single-excursion square-detour word [6, i, j, i, j, 6] plus a 16-cycle forces its cycle set R to be a transversal of the coordinate square, but a transversal's induced-cube graph has the level-set components of its offset map g, so a closed walk through R needs g constant — which makes R + R a 16-point plane and misses 48 masks. No word of that template is universal at any length.
  3. 20-point covers of F2^7 exist (explicit verified example; set-ILS finds covers in 14 of 30 restarts at k = 20, 28 of 30 at k = 22) — answering part of the predecessor's open question 2 in the direction r((C2)^7) <= 20. But every cover sampled (175 at k = 20 and 288 at k = 22 in session sweeps, plus the deterministic campaign) has an isolated hypercube vertex, hence admits no closed walk at any length. Covers and walk-shaped sets look disjoint at k <= 22; this is quantified evidence, not an exclusion.
  4. A deterministic search campaign with an L = 24 non-vacuity control tops out at 120/128 (length 20) and 126/128 (length 22), and finds 128/128 at length 24 in the same optimizer. Extended 600-restart runs confirm both ceilings. These are search failures, not exclusions; they agree with the pinned package's heuristic record (126/128 at length 22).
  5. A resumable restricted-growth simple-20-cycle census (the |P| = 20, (10,10) split of L = 20, PR 2542's proved-necessary prunes and the split-identity budget e_ex + b_ex <= 27) runs with exact per-shard node counts checkpointed in CENSUS20-PROGRESS.json. At submission 11 of 15 shards are complete: 798,901,058 nodes and 67,674,177 simple 20-cycles checked, zero universal words (the completed heavy shard 0102 alone accounts for 798,901,031 nodes and 67,674,177 cycles; the small shards die instantly on the self-avoidance prune). The three remaining heavy subtrees are of the same order — a capped probe of 0123 passes 5,000,000 nodes in 21.4 s (234,169 nodes/s) — so completing the (10,10) exclusion needs several more hours of the same exact enumeration; the checkpoint is resumable. No universal word appears in the 67.7 million cycles checked so far.

The gap 20 <= f(7) <= 24 is unchanged. The alphabet is singletons only; the charged DUO pair-source family (#2396, #2128, #2156) and the 63-mask weight-1/2/3 sparse family (#2229, #2236, #2397) are distinct scopes, recorded as concurrent.

Method: smallest falsifying instance first

Before any new number, the package reproduces the pinned research/universal-connector-six-source/EXPECTED.json byte-for-byte (histograms and records SHA-256 included): 945 words max 31/32 at n = 5, length 10 (3dcc5689…); 10,395 words max 49/64 at n = 6, length 12 (491b295f…); 945,945 words max 59/64 at n = 6, length 14 (3d711ffa…); plus the counting lower bounds 10/14/18 and the Gray constructions 12/16/24. It then fully re-runs the predecessor's decisive length-18 census against its vendored byte-pinned engine and reproduces 15,775,992 nodes, 312,064 simple 18-cycles, zero universal words. Nothing above is taken on trust.

Reproduction and checks

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

python3 -I -B research/universal-f7-singleton-l20-seed06704c39/verify.py
python3 -I -B research/universal-f7-singleton-l20-seed06704c39/independent.py
python3 -I -B research/universal-f7-singleton-l20-seed06704c39/test_engine.py
python3 -I -B research/universal-f7-singleton-l20-seed06704c39/census20.py
python3 scripts/research_package.py --package research/universal-f7-singleton-l20-seed06704c39 --check-only

Observed markers:

PASS_F7_L20_VERIFY <conclusion> L20=120 L22=126 seconds=...
PASS_F7_L20_INDEPENDENT {"cover20": "size=20 min_degree=0 no_closed_walk", ...}
Ran 14 tests in 0.040s — OK
PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check)

independent.py re-checks coverage with three formulations (dual predicate, interval XOR, position pairs) and re-derives the parity fact and the covers' degree obstructions with independently written loops. test_engine.py pins the vendored engine byte-exactly (SHA-256 82e4c407…), checks the transversal level-set lemma on a deterministic sample, and confirms the deterministic set-ILS hit. The search campaign (search.py) is deterministic (fixed CPython random seeds); search.py --extended runs the 600-restart session budget recorded in CERTIFICATE.json.

Scope and open questions

A finite study inside PR 943's abstract interface; no supplier instantiation and no kappa claim. Not checked: the repeated-state L = 20 splits ((10,9), (10,8), (9,9), (10,7) — note the identity kills only the 17-point splits (9,8)/(8,9), so |P| = 17 walks remain open), the L = 22 census splits, and set-level exhaustive enumeration. Structured next questions are in TASK.json and the package README: extend the census to the repeated-state splits with per-split budgets; decide r((C2)^7) = 20 or lower; and settle whether covers and walk-shape are incompatible at k <= 22 (which would make the Gray bound 24 sharp).

Credit

PR 943 model and first exact values: Ross Richardson (research/universal-connector-boundary). Pinned five/six-source record, counting bounds and Gray constructions: Douglas Colkitt (research/universal-connector-six-source, #1185). Length-18 exclusion, the restricted-growth cycle census engine (vendored here byte-exact with hash pin and credit in NOTICE.md/SOURCES.json), and the pair-representation identity: Aaron Wang with help from opencode (#2542). The community nine-point five-bit census fact used as a control there is published at #1166 (comment).

… closed, cover/walk dichotomy, resumable 20-cycle census
@NicholasStone

Copy link
Copy Markdown
Contributor

Correction to the WORD-census evidence: #2973 (head 91bde9fedb6a1872906876e60235af8b8a45f732) confirms that cyclic_census uses bit-0 groups with fixed collision budgets derived for weight parity. A concrete simple balanced n4 L8 universal counterexample is 01021323 (bit0 split6,2, excess8 > wrongly substituted budget5). Old traversal agreement is therefore insufficient to justify the word exclusion.

The corrected weight-parity engine independently restores L18 (9,9) with 951,416 nodes/zero hits and completes all five admissible L20 splits with zero hits; every run uncapped, exit0, complete=true, and then freshly replayed from the packaged source. With exact split classification, parity-swap and padding, the new finite result is 22 <= f(7) <= 24 inside PR943's abstract singleton word model. No selected-frontier/kappa change. Independent validation covers 164 small complete comparisons and 36 capped n7 comparisons, plus proof controls. Frozen predecessor packages are preserved. Actual-size bit0 SET-level enumeration remains algebraically valid, so unrelated later set-level proofs are not revoked. See PR2973 for the proof, exact receipts, source pins, limitations and predecessor attribution. Substantial OpenAI Codex assistance; no independent human review claimed.

@navinor

navinor commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

Corrective review (sweep #8): the word-census justification, reproduced independently

Replying to Nicholas Stone's correction on this PR (#2634 (comment)). I reproduced the finding before writing this reply.

1. Reproduced: the counterexample. A fresh standard-library CPython 3.12 script, written against the definitions in PR 2973's MATH.md section 4 (#2973, fetched at head 91bde9fedb6a1872906876e60235af8b8a45f732), confirms every stated number for the balanced n=4 L=8 word 01021323:

  • each of the 4 labels occurs exactly twice; all eight nonclosing prefix states are distinct; q_8 = 0 (restored, simple, balanced);
  • prefix set {0,1,2,3,4,6,8,12}; pair-XOR coverage is all 16 masks, so the word is universal;
  • weight split (4,4); bit-0 split (6,2);
  • wrongly substituted budget C(4,2)+C(4,2)-7 = 5; bit-0 collision excess 8; correct bit-0 budget C(6,2)+C(2,2)-7 = 9.

Replaying the vendored engine.py::cyclic_census accounting on that word (states grouped by nq & 1, single caller budget) rejects the walk at cumulative excess 8 with the substituted budget 5, and admits it with the correct budget 9. Script output: PASS bit0_collision_excess=8 old_prune_rejects=True (8 > 5) and PASS corrected_budget_admits=True (8 <= 9). As PR 2973 notes, this establishes unsoundness of the prune; it is not by itself a seven-label counterexample at length 18 or 20.

2. Reproduced: the budget substitution. The vendored engine groups prefix states by bit 0 (elif nq & 1 in cyclic_census), while this package's 20-cycle census passes the split-identity budget e_ex + b_ex <= 27, which is C(10,2)+C(10,2)-63, derived for the (10,10) weight-parity split. Time parity fixes the sizes of the weight classes; it does not fix the sizes of the bit-0 classes (PR 2973 MATH.md section 4: for bit-0 sizes 10+d,10-d the valid budget is 27+d^2, not invariably 27). PR 2973's corrected engine groups by Hamming-weight parity ("groups":"hamming_weight_parity" in its receipts) and uses each target split's own budgets even_budget = C(S,2)+C(T,2)-63 and odd_budget = S*T-64. The substitution is the error; the number 27 itself is correct for a weight-parity (10,10) census.

3. Affected sentences in our records (word-level claims resting on the old traversal-agreement justification):

  • PR body, item 5: "PR 2542's proved-necessary prunes and the split-identity budget e_ex + b_ex <= 27" and "At submission 11 of 15 shards are complete: 798,901,058 nodes and 67,674,177 simple 20-cycles checked, zero universal words". The prunes are not proved necessary, and the zero-hit counts are historical outputs of the unsound filter (PR 2973 MATH.md section 7: "Its partial length-20 simple-cycle census also applies the fixed bit-0 budget").
  • PR body, method: "It then fully re-runs the predecessor's decisive length-18 census against its vendored byte-pinned engine and reproduces 15,775,992 nodes, 312,064 simple 18-cycles, zero universal words. Nothing above is taken on trust." A byte-exact replay of an engine with an unsound prune proves replay fidelity, not the exclusion; "Nothing above is taken on trust" overclaims what the replay establishes.
  • Package wording carrying the same claim: research/universal-f7-singleton-l20-seed06704c39/README.md ("PR 2542's proved-necessary prunes" at the census description and at the scope section), NOTICE.md ("the proved-necessary census prunes"), CLAIM.md ("with PR 2542's proved-necessary prunes"), census20.py ("PR 2542's proved-necessary ones"), TASK.json ("Delivered: ... a resumable simple-20-cycle census ..."), SOURCES.json ("Length-18 exclusion, f(7) >= 20 ... Its engine is vendored byte-exact and its decisive census is fully re-run in verify.py"), and the CENSUS20-PROGRESS.json receipts.

4. What stands, and on whose evidence. Everything in this package that does not rest on the old census stands unchanged and is not demoted: item 1 (length 19 closed by restoration parity; a structural fact), item 2 (the beating-template impossibility lemmas), item 3 (the explicit 20-point cover and the sampled cover/walk dichotomy, already scoped as quantified evidence and not an exclusion), and item 4 (the search ceilings, already scoped as search failures). The inherited conclusion "the predecessor of this package removed 18" stands; it now stands on PR 2973's corrected weight-parity engine by Nicholas Stone (NicholasStone) (#2973), which independently restores the L18 (9,9) census at 951,416 nodes and zero hits, uncapped, exit 0, complete=true, and completes all five admissible L20 splits (including the (10,10) split this package started) with zero hits; corroborated by PR 3005 by Nick Petalas (petalas) (#3005, open at writing time). What falls is the justification: the replay and shard counts above no longer support the word exclusions on their own, "proved-necessary prunes" is withdrawn as applied to the bit-0 fixed-budget prune, and the corrected finite result 22 <= f(7) <= 24 (PR 2973) supersedes the "20 <= f(7) <= 24" gap phrasing.

5. SET-level claims are unaffected and are not demoted. PR 2973 scopes this explicitly ("Actual-size bit0 SET-level enumeration remains algebraically valid"): the pair-representation identity and its lemma rows, the identity contradiction of the 17-point splits (9,8)/(8,9), the counting lower bounds and the verified Gray constructions are not revoked. The 17-point cover chain remains completed at set level by PR 2773 (#2773) and PR 2870 (#2870). PR 2973's MATH.md section 7 records this scoping.

6. Record state in main. PR 2973 is merged and its package research/f7-weight-parity-census-correction/ records the correction in main's tree, with an affected-material inventory in MATH.md section 8 that prescribes preserving frozen predecessor bytes rather than silently changing pinned sources. I therefore opened no separate docs PR: the correction is already recorded in main, and the demotion above applies to how our merged records read against it.

Correction comment on this PR: #2634 (comment)
Correction comment on the sibling PR: #2542 (comment)
PR 2973 (correction, merged): #2973
PR 3005 (independent corroboration, open at writing time): #3005

Contributor: Aaron Wang, with help from opencode (no model named; substantial AI assistance in scoping, verification and writing; no independent human review claimed). All cited PRs were verified with gh pr view --json author,title at writing time: PR 2542 and PR 2634 by Aaron Wang (navinor), PR 2973 by Nicholas Stone (NicholasStone), PR 3005 by Nick Petalas (petalas).

Mister-Meeseeks pushed a commit that referenced this pull request Oct 17, 2026
…its simple-word boundary

Proves that Engine::capacity, the parity-capacity filter in conorholds'
simple length-22 exclusion, is a necessary condition for simple
restored universal words under its four-low, three-high projection,
including pairs between different blocks at one repeated low vertex,
and that each of the sixteen low-linear parity changes preserves its
verdict. A separately written position-pair oracle agrees with the
compiled predicate on all 791,827 declared gap inputs (53,379 accepted,
not claimed to be words); all 176 projections of a universal simple
24-step word pass, 120 with repeated low vertices; parity-reset and
omitted-pair mutants are detected. The universal word
010201030102010345464546 has 23 distinct prefixes and is rejected
because nine positions at low zero carry eight high states, so the
filter needs the simplicity premise that the predecessor's length-22
branch has; this is not a source bug or a length-22 counterexample.
It also reconstructs PR #2973's 01021323 calibration and pins the old
bit-0 call sites of PR #2542, #2634 and #2691. Complete censuses, the
other propagation rules, the published classification premises and
the non-simple branch are not checked. No new kappa.

Adds research/connector-capacity-parity-audit/ only.

Submitted by @commdata2338 with substantial AI assistance (OpenAI Codex
research and implementation; packaged with Claude Code).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X86sCSXdoDd61SDFfC1PKG
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