Repository navigation
Audit the class-C 4-flat covering-config census of #2954: the cheapest config is useless for the hard rows, 3 of 5 are redundant (no kappa claim) - #3315
Conversation
…p#2954 Adds research/k2-class-c-config-audit: an exact, table-only audit of the published class-C config tables from the CrocSwap#2954 help package. No E8/P112 geometry, kill criterion (Lemma B) or RRC is re-derived or verified, and no kappa, decoder floor, residue exclusion, supplier or frontier claim is made. Two findings about compute allocation: * The advertised cheapest config 6543 = (6,5,4,3) -- 2.6e7 pairs, ~4e4 CPU-h, the only plausibly affordable route-B target -- appears only on rows that relative root counting already kills, and covers zero of the 17 rows in rows17.csv. * The exact minimum config set covering the 16 config-coverable hard rows is {5544, 5555, 6554}. Configs 5554, 6444 and 6544 are redundant, removing 4.4e8 enumerated pairs on the README's own counts (a lower bound, since 6444's count is unpublished). The same three configs also cover all 64 config-coverable rows of the 70-row census. Supporting checks: every listed config satisfies sum g <= 52, with 6554 saturating it exactly at 52; rows17 is exactly rows70 minus the 53 RRC-killed rows; shared-row fields agree; and the 6 rows with no config are 3, 12, 24, 37, 54, 61. The verifier asserts both input sha256 values, runs the 8 structural checks and 4 rejecting mutants, prints PASS_K2_CLASS_C_CONFIG_AUDIT and exits 0. Python 3.12, standard library only, under a second. Completeness of the config list is explicitly NOT verified; the packing predicate that decides row-to-config admissibility is unpublished. Credit DreamingOfClouds for the audited help package, tekuuu for PR2975/PR3000, and the retained CrocSwap#2816/CrocSwap#2826/CrocSwap#2862 lineage and PR2985/PR3049 residue chain. Prepared by muatfannajm-dot, with substantial OpenCode (Space Bunny Free) assistance. Apache-2.0.
The published per-config totals in Discussion CrocSwap#2954 (6554:62, 5555:27, 6544:40, 5554:23, 6543:16) are reproduced exactly by dominance closure and not by literal CSV incidence (which gives 39/21/36/22/16). The previous version of this package read the relation as literal incidence, which understated 6554's reach and overstated the required campaign. Under the recovered relation the exact minimum cover of the 16 config-coverable hard rows is {5555, 6554}, not {5544, 5555, 6554}: 5544, 5554, 6444 and 6544 are all dominated by 6554, and 11 of the 13 table configs are redundant for the full census. 6543 is dominated by 6554, so the advertised cheapest config is redundant by dominance as well as unused on hard rows. Adds dominance_checks() with its own rejecting control (add 6554 to row 3 moves the closed total off 62) and records the dominance substitution as an explicit open question, since it is a source-semantic premise this table audit cannot prove. The dominance observation was pointed out by Krzysztof Wojt (@krzysztofwojt) in his claim on Discussion CrocSwap#2954; this commit carries it out and credits him.
Correction: the cover relation is dominance closure, not literal incidence@krzysztofwojt was right and my headline claim #2 was wrong. Your point about rows 13/62 listing I had read the cover relation as literal CSV incidence (a config serves exactly the rows that list it). That is wrong. Your published per-config totals pin the real relation down:
Dominance closure reproduces all five totals exactly; literal incidence reproduces none of them correctly. Corrected results
What I added
The limit I am now stating explicitly, and it is your questionThe whole two-config conclusion rests on one premise this table audit cannot prove: that Also unchanged: no completeness claim about the config list (the packing predicate is still unpublished), no span/RRC/E8 geometry claim, no row excluded. Credit to Krzysztof Wojt for the dominance observation and to DreamingOfClouds for the audited tables. Apologies for the wasted round-trip on a claim I should have checked against your own published totals the first time. |
All scientific claims remain independently unvalidated. No scientific replay or selected-frontier update. PRs: #3298, #3299, #3300, #3301, #3302, #3303, #3305, #3306, #3307, #3308, #3309, #3310, #3311, #3312, #3313, #3315, #3316, #3317, #3318, #3319, #3320, #3321, #3322, #3323, #3324, #3325, #3326, #3327, #3328, #3329, #3330
Summary
An exact, table-only audit of the class-C 4-flat covering-config census in the Discussion #2954 help package. It answers one narrow, decision-changing question: which of the advertised four-flat configs actually have to be run?
Adds
research/k2-class-c-config-audit. Catalogue cardcensus-pruning-audit,scope_status: refined(the handoff-first rule selected the live unclaimed #2954 request instead of the card's #2973 parity census; the card's own discipline -- never treat a prunable enumeration as a disproved bound -- is honoured, and no residue is excluded here).No E8/P112 geometry is re-derived. The kill criterion (Lemma B) and relative root counting are not verified. No kappa, decoder floor, residue exclusion, supplier or frontier claim.
Two findings
1. The advertised cheapest campaign is provably useless for the hard rows.
#2954prices five configs and singles out6543=(6,5,4,3)as cheapest -- 2.6e7 pairs vs 1.1e8-3.3e8, ETA ~4e4 CPU-h vs ~3e5. It is the only plausibly affordable route-B target, and it is where the existing acceleration work (tekuuu PR2975, PR3000) was pointed.6543appears only on rows that relative root counting already kills, and covers zero of the 17 rows inrows17.csv. The complete set of configs seen only on RRC-killed rows is5444, 5543, 5553, 6443, 6533, 6543, 6553. Spending 4e4 CPU-h there cannot advance the hard problem.2. Three of the advertised configs are provably redundant. The exact minimum set covering the 16 config-coverable rows of the 17 is
5554,6444and6544are redundant. The same three configs also cover all 64 config-coverable rows of the whole 70-row census, so the reduction is not specific to the 17. On the README's own pair counts, dropping redundant5554(3.3e8) and6544(1.1e8) removes 4.4e8 enumerated pairs before any closure runs.6444's count is unpublished, so 4.4e8 is a lower bound.Supporting checks -- all pass
sum g <= 52, and6554=(6,5,5,4)saturates it exactly at 52, making it the unique largest admissible 4-flat budget in the table;rows17.csvis exactlyrows70.csvminus the 53RRC-killedrows (symmetric difference empty), kill count 53 as published;d,s,weights,eand config list agree between the two tables;3, 12, 24, 37, 54, 61, confirming Help wanted: the "class C" cells of the one-sided K2 residue (excess pays for corrections, d >= 4) -- 17 hard rows, a 4-flat span question #2954's "6 rows have no 4-flat candidate". Row 37 is the only one of the 17.What is deliberately not established
sum g <= 52); that the packing predicate admits no further config is not, because that predicate is only sketched in Help wanted: the "class C" cells of the one-sided K2 residue (excess pays for corrections, d >= 4) -- 17 hard rows, a 4-flat span question #2954. The redundancy result is a statement about the published list. Recorded inTASK.jsonopen_questions[0]and the README.span H <= d-1, and RRC are untouched.Evidence and reproduction
Python 3.12, standard library only, <1 s. The verifier asserts both input sha256 values, runs the 8 structural checks, then runs 4 rejecting mutants, each caught:
6555(sum g = 56)rows17.csvrows17.csvonlyRESULT.jsonrecords every derived quantity. Author-checked; not independently reviewed.Sources
Audited help package:
DreamingOfClouds/integer-mult-bounds, branchresearch/k2-class-c-help, help-package source commit1b25759bff5486293a9083ebbe0097b5f6642e08. Theg-table, thesum g <= 52bound and the pair counts are quoted from #2954 and its README and restated inverify.py. The two CSVs are not Git objects in this repository, so they carry nogit_blobrow; they are vendored underinputs/, declared as live inputs inVERIFY.json, and their sha256 is re-checked on every run as the byte-equality receipt.Base canonical main
463113d675af7410ac91d53a4fed51ec6494eb9a, priority revision 6.Overlap tooling limitation, stated plainly
python3 scripts/find_overlap.py --refreshcould not refresh its remote corpus: its remote refresh shells out togh, which is not installed in my environment, so it reportedopen_prs: null, discussions: nulland fell back to local notes only. I substituted authenticated API reads of #2954, #1166 and #3156 and API searches over open and closed PR bodies. This is not an arbitrary-diff or unpublished-work census, and a null result would not by itself have proved novelty.scripts/find_overlap.pyshould not hard-depend onghfor its refresh path -- flagging that as workflow feedback.Distinctness
Predecessor credit
DreamingOfClouds -- the class-C help package, the
s4z/s3zengines,data88.txt, theg-table, thesum g <= 52bound, and both CSV tables that are the entire object of this audit. Their results are retained in full; nothing here disputes them. tekuuu -- PR2975, PR3000. Nick Petalas and the retained #2816 / #2826 / #2862 E8/P112 lineage; the PR2985 / PR3049 residue chain. Douglas Colkitt and the retained source lineage.Prepared by muatfannajm-dot, with substantial OpenCode (Space Bunny Free) assistance. Apache-2.0. The audited help package remains DreamingOfClouds' work under the repository's Apache-2.0 licence.
Open next questions
inputs/rows70.csv. Blocked by: the predicate is unpublished;s4z.cencodes it only implicitly.sum g <= 52for row 37, or prove none does. Blocked by: needs the E8/P112 flat geometry and the unpublished RRC scenario list.