Repository navigation
Bounded length-22 census probe: exclude splits (11,7), (10,8), (11,8); measure the rest (answers #3708 OQ1's blocker; no new kappa) - #3731
Open
petalas wants to merge 2 commits into
Conversation
…,7), (10,8), (11,8) Extends the CrocSwap#2973 corrected word-census engine to length 22 by changing only its compile-time gate (three header/gate lines; all counters stay within their exact types). Validates the extension against the pinned predecessor: its math check, its brute-force small-domain cross-check in all four budget modes, and node-exact reproduction of all six recorded L20/L18 receipts (590371593 / 244301902 / 14450133 / 67643567 / 35241 / 951416 nodes). Runs capped censuses at the nine open length-22 splits of the PR CrocSwap#3708 split domain with both proved necessary budgets. Three splits complete with complete=true and zero hits - finite exclusions of (11,7) at 8,784,744 nodes, (10,8) at 597,933,297 and (11,8) at 1,349,702,650. The six loose-budget splits abort at the 2e9-node cap and are recorded as tree-size lower bounds only. With the imported CrocSwap#2773/CrocSwap#2870 exclusions, the length-22 domain narrows from nine splits to six. No hits anywhere; f(7) in {22,24} is untouched; no kappa, supplier or frontier change. Supplies the node-budget measurement named as the blocker of the CrocSwap#3708 handoff (open question 1). Fresh CI replays compare against the committed RESULT.json receipt; node equality is deterministic, timing excluded.
The single registered probe command re-ran all nine length-22 splits, including the six capped 2e9-node probes, and was killed at the 600 s per-command cap. Each completed split exclusion now gets its own registered command with a bounded timeout, and the six capped lower-bound probes move to the explicit opt-in --probe-all-splits mode. RESULT.json receipt values and the claim scope are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Supplies the resource-budget measurement named as the blocker of the open question 1 in PR #3708 ("no node-count estimate or resource budget; #2973's stop rule was explicitly no L22 census"), and completes the first three finite split exclusions of the length-22 word domain. Produced by Nick Petalas with AI assistance. Independent human and formal proof-kernel review are unclaimed.
Arithmetic scope, stated up front: no kappa, supplier, tariff, certificate, frozen-input or selected-frontier change.
f(7)remains22 <= f(7) <= 24and is not decided here. This is a finite census result inside PR943's prefix-walk model, not a formal-kernel proof.What is established
Engine extension to L=22, validated against the pinned predecessor. The corrected census engine of Correct word-census parity budgets; 22 <= f(7) <= 24 in the PR943 model #2973 (
research/f7-weight-parity-census-correction, sourcesha256 265ead91...) is extended by exactly three header/gate lines (L <= 20→L <= 22); nothing else changes (integrity-checked by diff inverify.py). Soundness of the gate change: atN=7, L=22all counters stay within exact small-integer/128-bit-mask types (largest values: even budget 110, odd budget 57, per-label multiplicity <= 10), so the L<=20 gate is conservative, not necessary. Behavioral proof: the extended binary reproduces all six recorded L20/L18 receipts node-exactly — 590,371,593 / 244,301,902 / 14,450,133 / 67,643,567 / 35,241 / 951,416 nodes — and passes the predecessor's brute-force cross-check (validation/check_corrected_c.py, all small splits, all four budget modes, cap and fail-closed controls) and itsmath/check_math.py.Capped censuses at all nine open splits (both proved necessary budgets enabled, restricted-growth canonical scope, revisits permitted):
(11,7)(10,8)(11,8)(9,9),(10,9),(10,10),(11,9),(11,10),(11,11)No universal word was found in any probe. Combined with the imported 17-point set-level exclusions of #2773/#2870 (splits
(10,7),(11,6)), any restored universal length-22 word must now have split in{(9,9), (10,9), (10,10), (11,9), (11,10), (11,11)}— the domain narrows from nine splits to six. For scale: #2973's complete length-20 exclusion totalled ~9.2e8 nodes over five splits; each of the six open L22 splits already exceeds 2e9 nodes. That is the concrete budget datum the handoff asked for; finishing the census is a resource decision, not a mechanism change.Certification scope, stated exactly: the three completed exclusions are CI-certified; each gets its own registered node-exact replay command (below). The six capped lower-bound runs are locally measured session evidence, reproducible with the documented opt-in command, and are not re-run by CI.
(11,11)probe had 3 budget-surviving restored leaves before its cap cut the search (they failed the exact coverage test; recorded, no claim); no prune beyond Correct word-census parity budgets; 22 <= f(7) <= 24 in the PR943 model #2973's two proved budgets was added.Verification
PASS_REGISTERED_RESEARCH_PACKAGE research/f7-l22-census-probe outcome=completedwith four registered checks, each with margin against the measured CI run: validation stages (declared 420 s; earlier CI run ~160 s; local 60 s), exclusion(11,7)(declared 60 s; local 0.8 s), exclusion(10,8)(declared 240 s; local 39 s), exclusion(11,8)(declared 480 s; local 90 s). Full registered launcher locally ~190 s. Run on CPython 3.12.15 at~/git/integer-mult-bounds/.venv/bin/python3.12, Apple arm64, Apple clang.RESULT.jsonsession receipt: each must exit 0 withcomplete=true, zero hits and the identical node count (8,784,744 / 597,933,297 / 1,349,702,650). Node counts are deterministic; timing fields are excluded from every equality check.RESULT.jsonvalues are unchanged, and the opt-in command reproduces the same receipt comparison locally in ~3 minutes on a many-core host.PASS_RESEARCH_COMMIT_BYTESate75698688de7300df4f44d86d31738302ea355b8, base20ecf2891(canonical main, revision 6).scripts/research_baseline.py:PASS_RESEARCH_BASELINE_BINDINGS_ONLY, selected record hash unchanged.Overlap and credit
upstream/are unchanged; the extended engine lives in the new package only.Open next questions
sum_x A_x B_x >= need(MATH.md §3) is proved at leaves but its partial quantity is not shown monotone — proving that (or a monotone variant) is the cheapest possible engine improvement.