Skip to content

Correct word-census parity budgets; 22 <= f(7) <= 24 in the PR943 model - #2973

Merged
Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
NicholasStone:research/f7-parity-correction-20261016
Oct 16, 2026
Merged

Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
NicholasStone:research/f7-parity-correction-20261016

Conversation

@NicholasStone

Copy link
Copy Markdown
Contributor

The word-census engines in #2542/#2634/#2691 use bit-0 state groups with budgets derived for Hamming-weight parity. This can falsely prune universal words: the simple balanced n=4, L=8 word 01021323 covers all 16 masks but has bit-0 excess 8 against the incorrectly substituted budget 5. Historical count agreement therefore did not establish the claimed exclusions.

Adds an isolated corrective package with a weight-parity, revisit-aware C engine, proofs for both necessary collision budgets, independent direct/brute Python controls, and full fresh enumerations:

L weight split nodes universal
20 (10,10) 590,371,593 0
20 (10,9) 244,301,902 0
20 (10,8) 14,450,133 0
20 (9,9) 67,643,567 0
20 (10,7) 35,241 0
18 (9,9) 951,416 0

Each run completed from the empty prefix without a cap, exit 0, complete=true. Candidate leaves are not reported as all restored words. Exact split classification, parity-swap symmetry and padding of shorter restored words prove 22 <= f(7) <= 24 within the PR943 singleton prefix-walk model; the known Gray length-24 witness is checked directly. No supplier, tariff, selected-frontier or kappa change. This is a finite computational exclusion, not a formal-kernel proof.

Validation: 164 small full-domain C/brute comparisons across four budget modes; 12 cap/input/output controls; 36 capped n=7 exact C/Python comparisons; independent mathematical checks; then a second complete six-case replay from the integrated package. Both production and integrated counts agree. The independent n=7 Python check is capped, not a second full n=7 implementation replay.

python3 -I -B research/f7-weight-parity-census-correction/verify.py --full
python3 scripts/research_package.py --package research/f7-weight-parity-census-correction --check-only

Observed: PASS_F7_WEIGHT_PARITY_FULL ... f7_lower=22 f7_upper=24; PASS_PACKAGE_METADATA_AND_PINS. ~1 minute for the C traversals on the recorded Apple arm64 host; standard-library Python 3.12 and Clang/GCC required. Quick mode runs fresh controls and checks stored receipts, and explicitly does not claim a fresh complete census.

Frozen predecessor packages are unchanged. Bit 0 remains valid in set-level searches using actual group sizes; later #2773/#2870/#2911/#2933/#2961 results are scoped separately in MATH.md. Also corrects the previous local session's overstrong “zero slack” implication. Scientific base a23bdc1; refreshed main ec1f08b has unchanged pinned engines and selected record. No new competing correction found in the checked live PR/discussion corpus.

Continuation CLAIM: #2691 (comment) ; coordination: #1166 (comment) .

Contributor: Nicholas Stone, with substantial OpenAI Codex assistance including three complementary agents; no independent human review claimed. Credit Ross Richardson (PR943 model), Douglas Colkitt (PR1185 record), Aaron Wang/opencode (#2542/#2634 and later set-level work), Nicholas Stone (PR2691 predecessor engine). Apache-2.0. Open next questions: independent complete implementation replay and length 22 versus 24.

@NicholasStone

Copy link
Copy Markdown
Contributor Author

Final head: d48f3945dbb1ef5d06835744c4082b3bd04181c0. Added the POSIX feature declaration required to expose clock_gettime/CLOCK_MONOTONIC in strict C11 Linux builds. No search logic changed. The current source was freshly compiled and the complete six-case local replay rerun: all exact non-timing counts remain identical; PASS_F7_WEIGHT_PARITY_FULL ... f7_lower=22 f7_upper=24. FULL-REPLAY.txt now records that replay. SUMMARIES.json preserves the initial receipt source hash separately from the current source hash and explains the header-only delta. Hosted checks are separate from these completed local checks.

@Mister-Meeseeks
Mister-Meeseeks merged commit 445dad7 into CrocSwap:main Oct 16, 2026
1 check passed
Mister-Meeseeks pushed a commit that referenced this pull request Oct 17, 2026
…ngth degree-filter justification

Checks the retained PR #2542 joint_covers set enumerator, at its actual
coordinate-bit-0 split sizes, against a separate unpruned subset oracle:
all 32,906 zero-containing sets of F2^n for n = 1..4 and all 200 exact
split/filter domains agree (covers 1, 4, 64, 23,552; minimum-degree-two
subcounts 0, 1, 20, 5,074), confirming on the actual function the
set-level scope that PR #2973 states. The minimum-length universal word
010122 (prefix set {0,1,2,3,4}, vertex 4 of degree one) refutes the
docstring's claim that minimal words walk a Hamiltonian cycle, so the
optional degree-two filter is justified only under |P| = L >= 4; the
(3,2) call returns 18 covers unfiltered and none filtered. A pinned
call-site map finds six Python word calls plus PR #2691's native rule
on the invalid balanced budget and four set calls with the filter off;
PR #2773's set rows reproduce without the word engine, conditional on
its recorded Sidon floors. No new bound, f(7) claim or kappa change.

Adds research/f7-set-word-pruning-boundary/ 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
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
petalas added a commit to petalas/integer-mult-bounds that referenced this pull request Oct 18, 2026
The CrocSwap#2973 correction reports that the retained PR2542/PR2634/PR2691 word
engines group prefix states by coordinate bit 0 while applying a collision
budget derived for Hamming-weight parity. That report singles out bit 0.

This package tests the changed hypothesis that the substitution is not a
bit-0 artifact but a property of the L/2 substitution for any functional
other than the parity one. It recomputes the 01021323 fixture from scratch,
then classifies all 2^n - 1 nonzero linear functionals on nine small
singleton prefix-walk domains with n <= 7 and L <= 14.

At (4,10) and (5,12) the substitution falsely prunes a universal word for
every functional of Hamming weight <= n-2 and for none of weight >= n-1. At
(4,8) the same holds except for one weight-2 functional. Bit 0 is the first
member of that class, not a special case.

The package also proves and machine-checks the alternation lemma
l(q_{i+1}) XOR l(q_i) = v_{w_i}, which identifies the all-ones functional as
the only one whose class value alternates with time and therefore the only
one for which the L/2 substitution has a justification.

Scope: finite certificate on a stated small domain plus one scoped lemma.
The seven-label decision regime (7,18) and (7,20) is not reached; the only
seven-label domain here is vacuous. No new f(7) bound, no kappa, no
selected-frontier change, and no claim that any old exclusion is right or
wrong.

Co-Authored-By: Nick Petalas <petalas@users.noreply.github.com>
petalas added a commit to petalas/integer-mult-bounds that referenced this pull request Oct 18, 2026
The CrocSwap#2973 correction reports that the retained PR2542/PR2634/PR2691 word
engines group prefix states by coordinate bit 0 while applying a collision
budget derived for Hamming-weight parity. That report singles out bit 0.

This package tests the changed hypothesis that the substitution is not a
bit-0 artifact but a property of the L/2 substitution for any functional
other than the parity one. It recomputes the 01021323 fixture from scratch,
then classifies all 2^n - 1 nonzero linear functionals on nine small
singleton prefix-walk domains with n <= 7 and L <= 14.

At (4,10) and (5,12) the substitution falsely prunes a universal word for
every functional of Hamming weight <= n-2 and for none of weight >= n-1. At
(4,8) the same holds except for one weight-2 functional. Bit 0 is the first
member of that class, not a special case.

The package also proves and machine-checks the alternation lemma
l(q_{i+1}) XOR l(q_i) = v_{w_i}, which identifies the all-ones functional as
the only one whose class value alternates with time and therefore the only
one for which the L/2 substitution has a justification.

Scope: finite certificate on a stated small domain plus one scoped lemma.
The seven-label decision regime (7,18) and (7,20) is not reached; the only
seven-label domain here is vacuous. No new f(7) bound, no kappa, no
selected-frontier change, and no claim that any old exclusion is right or
wrong.

Co-Authored-By: Nick Petalas <petalas@users.noreply.github.com>
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.

2 participants