Skip to content

Independent check of the f7 functional classification, plus the (5,14) domain (no new kappa) - #3733

Merged
Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
petalas:research/w3-1018-f7-functional-independent-check
Oct 20, 2026
Merged

Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
petalas:research/w3-1018-f7-functional-independent-check

Conversation

@petalas

@petalas petalas commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Change and mathematical scope

Independent verification (no κ) of a finite certificate, plus new coverage. No f(7) bound, no supplier, no selected-frontier change.

research/f7-functional-independent-check/ re-derives, with a separately written enumerator and classifier, the nine-domain functional classification published in #3699 (research/f7-bit0-functional-classification, exact head 13db47d8d31603c1391572009e1eb7a22675a219): the retained L/2 budget substitution falsely prunes universal words of the PR943 singleton prefix walk, and the question is whether coordinate bit 0 is special.

Measured, reproduced exactly on the first run:

  • simple closed word counts 4, 2, 29, 110, 358, 3695, 6525, 123704, 161936;
  • universal word counts 4, 2, 22, 110, 0, 828, 0, 0, 0;
  • substituted budgets 3, 9, 5, 13, 5, 15, -1, 11, -21;
  • false-prune totals 0, 0, 44, 190, 0, 2856, 0, 0, 0;
  • all 43 per-functional false-prune counts of the three firing domains;
  • the published bit-0 column 6, 20, 248;
  • the 01021323 fixture (nine prefix states, both splits, both budgets).

New coverage — three domains the published table does not contain:

n L simple closed universal budget false prunes firing functionals
3 10 0 0 17 0 0 of 7
4 12 314 314 23 150 13 of 15
5 14 33922 24787 27 56686 25 of 31

(5, 14) is the domain #3699 itself names as its open next question 2. There the substitution falsely prunes for exactly the 25 functionals of Hamming weight 1, 2 and 3 and for none of weight 4 or 5, with no exception of the (5, 12) kind. At (4, 12) the unsound class is strictly larger than at (4, 10): three of the four weight-3 functionals fire, leaving only 0111 and 1111 sound — so the unsound set grows with L on the measured range.

Status: finite certificate over ten bounded (n, L) domains. Not a weight-threshold theorem, not the seven-label regime, not a pruning repair. Remaining obligations: the necessity of the exact budget base + d^2 is inherited from #3699 and #2973's MATH.md and is not re-derived here.

Task and overlap

Validation

Interpreter: ~/git/integer-mult-bounds/.venv/bin/python3.12 (CPython 3.12). Environment: macOS arm64, standard library only, no network, no third-party packages.

python3.12 -B scripts/research_package.py --package research/f7-functional-independent-check
python3.12 -B scripts/check_research_commit.py --package research/f7-functional-independent-check --check-source-history
python3.12 -B research/f7-functional-independent-check/verify.py
python3.12 -B research/f7-functional-independent-check/test_verify.py

Local results: PASS_REGISTERED_RESEARCH_PACKAGE research/f7-functional-independent-check outcome=completed (which itself replayed both registered commands), PASS_RESEARCH_COMMIT_BYTES {..., "source_history_commits": ["20ecf2891d80b5acf18d980b2164fb44ea7faa90"]}, PASS_F7_FUNCTIONAL_INDEPENDENT_CHECK and 26/26 behavioural tests OK. Runtime ≈ 30 s for verify.py, ≈ 16 s for the tests.

Controls run on every invocation: the fixture and its C(s,2)+C(t,2)-(2^(n-1)-1) = base + d^2 identity; two independent collision-excess routes that must agree for every universal word and every functional of every domain; a budget-shift sensitivity control (-2, -1, +1, +2) that must leave every non-firing domain at zero and move the count on each firing domain; a second enumeration route (unconstrained walk, canonicalised afterwards) that must return the same word sets on six domains; and the predicates asserted on every enumerated word.

CI certification. The repository's registered replay job ran on this exact head and passed (replay (research/f7-functional-independent-check), 3m13s, run 39157448322, job 117763977402); its plan job passed in 2m2s. The same two commands pass locally under the 3.12 interpreter at ~/git/integer-mult-bounds/.venv/bin/python3.12.

Not run here: the (7, 18) / (7, 20) domains, any census in the seven-label regime, and any Lean or Docker job. This is finite arithmetic, not a formal proof; no receipt is claimed beyond RESULT.json, which verify.py regenerates and byte-compares.

Credit

The classification question, the model, the nine published domains and the nine pinned numbers are Nick Petalas's, in #3699, including the (5, 14) question this PR answers for universal words. Nicholas Stone wrote the word-census correction (#2973) and its MATH.md; James Reed wrote the bit-0 small-domain audit (#3096); Ross Richardson supplied the PR943 singleton prefix-walk model; Douglas Colkitt supplied the selected source bindings and review. The re-implementation, the three added domains and the controls are by Nick Petalas, produced with AI assistance. Apache-2.0. Independent human and formal proof-kernel review are unclaimed.

Open next questions

In the package README under Open next questions: monotonicity of the firing set in L (first step: classify (4, 14) and (5, 16); blocker: runtime beyond this package's registered 600 s replay budget), a proof of high-weight soundness rather than an observation (blocker: no bound on the collision excess of a universal word), and whether (6, 16) contains a universal word at all (blocker: (6, 14) already has 123704 simple closed words).

Workflow feedback (optional)

Not included; nothing blocked the run.

…d (5,14)

Re-derive the nine-domain functional classification of PR CrocSwap#3699 with a
separate enumerator and classifier: all word counts, substituted budgets,
43 per-functional false-prune counts and the bit-0 column reproduce exactly,
as does the 01021323 fixture.

Add three domains the published table does not contain.  At (5,14), the
domain the checked package names as its own open next question, the fixed
L/2 substitution falsely prunes for exactly the 25 functionals of Hamming
weight 1, 2 and 3, and for none of weight 4 or 5, with no exception of the
(5,12) kind.  At (4,12) the unsound class is larger than at (4,10): three of
the four weight-3 functionals fire, leaving only 0111 and 1111 sound.

Finite certificate only: no weight-threshold theorem, no f(7) value, no
pruning repair and no kappa.
…e pin

The checked package's head is not an ancestor of this publication commit, so
its exact objects cannot be SOURCES.json rows.  Move the head, SHA-256 and
blob ids into the README and keep SOURCES.json to ancestor files.
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