diff --git a/research/p112-cross-form-rank-tradeoff/CountFloor.lean b/research/p112-cross-form-rank-tradeoff/CountFloor.lean new file mode 100644 index 0000000000..ba63f036ce --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/CountFloor.lean @@ -0,0 +1,60 @@ +import Lean + +/- +Copyright (c) 2026 commdata2338. Apache-2.0. +Prepared with substantial OpenAI Codex assistance. + +Only the integer-count interface is formalized. Matrix ranks, support +classification, and the derivation of hcharge are explicit external premises. +-/ +namespace P112CrossForm + +theorem floor_of_counts (k n d mu charge : Nat) + (hk : k ≤ 8) + (hinc : 16 ≤ n + d) + (hschur : 16 ≤ n + mu) + (hcharge : 8 * n + (8 - k) * d + k * mu ≤ charge) : + 128 ≤ charge := by + match k with + | 0 => omega + | 1 => omega + | 2 => omega + | 3 => omega + | 4 => omega + | 5 => omega + | 6 => omega + | 7 => omega + | 8 => omega + | k + 9 => omega + +-- This is the source-level specialization for the new rank-(4,4) region. +theorem rank_four_floor (n d mu charge : Nat) + (hinc : 16 ≤ n + d) + (hschur : 16 ≤ n + mu) + (hcharge : 8 * n + 4 * d + 4 * mu ≤ charge) : + 128 ≤ charge := by + exact floor_of_counts 4 n d mu charge (by decide) hinc hschur hcharge + +-- Pure directions are charged separately; their counts each dominate mu. +theorem floor_of_term_prices (k n d mu charge c01 c10 p01 p10 : Nat) + (hk : k ≤ 8) (hinc : 16 ≤ n + d) (hschur : 16 ≤ n + mu) + (hp01 : mu ≤ p01) (hp10 : mu ≤ p10) (hcross : k ≤ c01 + c10) + (hbill : 8 * n + (8 - k) * d + c01 * p01 + c10 * p10 ≤ charge) : + 128 ≤ charge := by + have h01 := Nat.mul_le_mul_left c01 hp01 + have h10 := Nat.mul_le_mul_left c10 hp10 + have hsum := Nat.mul_le_mul_right mu hcross + rw [Nat.add_mul] at hsum + apply floor_of_counts k n d mu charge hk hinc hschur + omega + +-- Concrete counterexamples to dropping one of the mathematical inputs. +example : 16 ≤ 8 + 8 ∧ 8 * 8 + (8 - 0) * 0 + 0 * 8 ≤ 64 ∧ ¬128 ≤ 64 := by decide +example : 16 ≤ 0 + 16 ∧ 8 * 0 + (8 - 8) * 16 + 8 * 0 ≤ 0 ∧ ¬128 ≤ 0 := by decide +example : 16 ≤ 8 + 8 ∧ 8 * 8 + (8 - 8) * 8 ≤ 64 ∧ ¬128 ≤ 64 := by decide +example : 16 ≤ 16 + 0 ∧ 7 * 16 ≤ 112 ∧ ¬128 ≤ 112 := by decide + +#print axioms floor_of_counts +#print axioms rank_four_floor +#print axioms floor_of_term_prices +end P112CrossForm diff --git a/research/p112-cross-form-rank-tradeoff/PROOF.md b/research/p112-cross-form-rank-tradeoff/PROOF.md new file mode 100644 index 0000000000..f29d1c7c18 --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/PROOF.md @@ -0,0 +1,170 @@ +# A Schur price for arbitrary two-call P112 cross forms + +This is a scoped written proof, with rechecked finite P112 premises. Only the +integer-count implication in section 4 is formalized in Lean. No physical +supplier or multiplication theorem is claimed. + +## 1. Model and inherited premises + +Use Sagar Thakrar's PR2294 section 4 model, based on alephnan's PR1714: +two independent P112 calls, root-code factors, any finite number of terms, +ordinary transpose over the complex numbers, and separate-total union rank +prices. Let X be the fixed 112-by-8 P112 root matrix. Since X^T X=56 I, +exactness is equivalent to + + sum_j a_j c_j^T = I_16, a_j,c_j in C^8 direct-sum C^8. + +Delete terms with a zero factor. A factor block x has support supp(Xx). +Reader labels and source labels use dual binary coordinates; their within-call +pairing is the ordinary dot product. This is a change of coordinates from the +nondegenerate form b in PR2294, not a changed within-call pairing. + +The independently checked finite premises are: + +* Each nonzero root-code support spans the full binary space of dimension 9 + or one of eight coordinate-support hyperplanes, on both sides. +* Every ordered pair of nonzero within-call support spans pairs at rank at + least 8. Coordinate support pairs all have rank exactly 8. + +For completeness, the support implication follows from the finite census: +for each of the 511 nonzero binary functionals, collect the roots on which +it evaluates to one. Their rational span has rank 8 in 503 cases, and rank 7 +in eight cases with distinct coordinate-line kernels. If a functional kills +the labels of supp(Xx), these collected roots are orthogonal to x. Thus only +one of those eight kernels can occur for nonzero x. Two distinct annihilating +functionals would force x into two distinct coordinate lines, which intersect +only at zero. This proves the span classification over C as well, since +rational matrix rank is unchanged by extension to C. The 64 hyperplane-pair +ranks, plus monotonicity when either span is full, prove the second premise. + +Put arbitrary independent binary forms beta01 and beta10 between the two +call summands. They need not be transposes and need not arise from a single +nine-dimensional label table. Within-call pairings are unchanged. Price each +term by the rank over F2 of the union pairing matrix on its actual reader +and source support spans. This is the 18-dimensional direct-sum model of +PR2294, not the single-table rank-nine model of PR2338. + +Write r01,r10 for the global ranks of the two forms. Write c01,c10 for +their minimum ranks over the 64 ordered coordinate-support hyperplane pairs. +Monotonicity shows these are lower bounds for all nonzero root-code support +pairs. Restriction loses at most one rank per side, so + + c01 >= max(0,r01-2), c10 >= max(0,r10-2). + +All these ranks are binary ranks, unlike the complex ranks in section 3. + +## 2. The double-term price + +Call a term *pure 01* if only a^0 and c^1 are nonzero, and *pure 10* +for the reverse direction. All other terms are *non-pure*. A non-pure +term is *double* if all four blocks are nonzero. + +Every non-pure term costs at least 8. A double term costs at least + + 16 - k, k = min(8,r01,r10). (1) + +Proof: in each diagonal within-call block choose a nonsingular 8-by-8 +minor; these choices independently select rows and columns in each call. +The resulting 16-by-16 submatrix is [A B; C D], with A and D invertible. +Over F2, block elimination gives + + rank [A B; C D] = 8 + rank(D - C A^-1 B) + >= 16 - rank(C A^-1 B) + >= 16 - min(rank B,rank C) + >= 16 - min(r01,r10). + +The retained within-call minor also gives rank at least 8. Combining them +gives (1). No symmetry of B or C is used. This improves PR2294's general +double-term bound max(8,16-rho01-rho10) using the smaller of the two ranks. +The independently exhaustive 2-by-2 analogue checks all 9,216 choices with +invertible diagonal blocks, with equality achieved for each cross-rank pair. +That census is a control for, not a proof of, the arbitrary-size argument. + +## 3. Complex coefficient counts + +Let n be the number of non-pure terms, d the number of double terms, +and p01,p10 the pure counts. Each identity diagonal block has rank 8 over +C, so at least eight terms must have both factors nonzero in that call. +Counting across calls gives + + n+d >= 16. (2) + +Let R01 and R10 be the sums of the pure coefficient outer products in +the two directions. Define t01=rank_C R01, t10=rank_C R10 and +mu=min(t01,t10). Then t01<=p01 and t10<=p10. The non-pure terms sum to + + [I_8 -R01; -R10 I_8]. + +The complex Schur complement implies this matrix has rank at least +16-mu. A sum of n rank-one matrices has rank at most n. Therefore + + n+mu >= 16. (3) + +This is PR2294's count argument, retained with credit. It concerns the +aggregate pure coefficient matrices, not binary form ranks. + +## 4. The strengthened sufficient condition + +**Theorem.** If c01+c10 >= k=min(8,r01,r10), every exact factorization +in section 1 has COPY cost at least 128. The minimum is exactly 128. + +The total charge is at least + + 8n + (8-k)d + c01*p01 + c10*p10 + >= 8n + (8-k)d + (c01+c10)mu + >= 8n + (8-k)d + k*mu. (4) + +If n>=16, (4) is at least 128. Otherwise let delta=16-n. Equations +(2) and (3) give d>=delta and mu>=delta. Since 0<=k<=8, + + 8n+(8-k)d+k*mu >= 8n+(8-k)delta+k*delta = 128. + +The usual eight coordinate terms per call give I_16 and cost 16*8=128, +independently of the cross forms, proving sharpness. + +`P112CrossForm.floor_of_counts` in `CountFloor.lean` formalizes exactly +the natural-number implication from 0<=k<=8, (2), (3), and (4) to the +floor. `rank_four_floor` specializes it to k=4. `floor_of_term_prices` +also proves the passage from separately charged pure directions in (4), +assuming their counts each dominate mu and their price sum dominates k. +The binary matrix bound, +complex rank argument, support census interpretation, and initial +per-term bill in (4) are **not** formalized in that file. Its counterexamples demonstrate +that omitting the incidence count, Schur count, pure surcharge or rank-eight +within-call charge invalidates the corresponding weakened claim. + +## 5. Rank-only corollary and boundary + +A sufficient condition depending only on global ranks is + + max(0,r01-2)+max(0,r10-2) >= min(8,r01,r10). (5) + +In particular (5) holds whenever max(r01,r10)>=4 or either rank is zero. +For the first assertion, assume r01>=r10. If r10<=2, r01-2>=2>=r10; +if r10>=2, r01+r10-4>=r10. Both bounds dominate min(8,r01,r10). + +Among the 100 ordered rank pairs in {0,...,9}^2, condition (5) certifies +93. The seven not decided by this rank-only test are exactly + + (1,1), (1,2), (2,1), (2,2), (2,3), (3,2), (3,3). + +PR2294's global rank-sum-at-least-12 corollary covers 28 pairs; its +zero-form result and form-specific condition provide additional coverage. +Our comparison is with that specific rank-only corollary, not a claim +that every one of the other 65 pairs was previously unresolved. + +The rank-(4,4) forms in RESULT.json have c01+c10<8 but satisfy (5), +so PR2294 Proposition B's old form-specific test does not decide them +while the new theorem does. The 100 concrete form pairs checked by the +verifier are examples, not an enumeration of all binary forms. Each has +five exact decoder fixtures, including a non-coordinate mixed factorization. + +The seven residual rank pairs are not counterexamples or proven openings: +their actual c01,c10 can still satisfy section 4. No sub-128 decoder was +found or claimed. The criterion is sufficient, with no converse asserted. +No physical chart conversion, common-label embedding, supplier hosting, +precision, recursive interface, rank-power moment or kappa consequence is +established. The contribution is a COPY-rank-sum floor in the stated model. + +Prepared for commdata2338 (@commdata2338), with substantial OpenAI Codex assistance. +New work is Apache-2.0; predecessor text retains its original credit. diff --git a/research/p112-cross-form-rank-tradeoff/README.md b/research/p112-cross-form-rank-tradeoff/README.md new file mode 100644 index 0000000000..107a0a05c0 --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/README.md @@ -0,0 +1,126 @@ +# P112 cross forms: a Schur rank tradeoff and formal COPY-floor interface + +Two independent P112 root-code decoders still require **COPY cost 128** +under a broader class of arbitrary cross-call binary forms. If their global +ranks are r01,r10 and their minimum support-restricted ranks are c01,c10, +the sufficient condition is + + c01 + c10 >= min(8, r01, r10). + +This follows by charging a term touching both calls at least +`16-min(8,r01,r10)`, then using the exact coefficient identity to count +terms. The [written proof](PROOF.md) and [Lean count theorem](CountFloor.lean) +state the different evidence boundaries explicitly. This is a COPY-rank-sum +floor, not a physical supplier, rank-power moment bound or new kappa. + +Prepared for commdata2338 (@commdata2338), with substantial OpenAI Codex assistance. + +## Scope and result + +The model is PR2294 section 4: arbitrary directed cross forms on two copies +of a nine-dimensional binary space, unchanged within-call P112 pairings, +any finite number of complex root-code factors, and separate-total union +rank prices. The union pairing need not fit a single nine-dimensional table. + +The rank-only sufficient test +`max(0,r01-2)+max(0,r10-2) >= min(8,r01,r10)` covers **93 of the 100 ordered +global rank pairs** in `0..9`. It covers every pair with maximum at least +four and every pair with a zero rank. Seven low-rank pairs remain undecided +by that test; they are listed in the proof and RESULT.json. They are not +claimed to admit savings. + +PR2294's form-specific sufficient condition requires `c01+c10>=8`; its +rank-sum-at-least-12 corollary covers 28 global rank pairs. This package +strengthens those tests. Its explicit rank-(4,4) example has support minima +(3,3), so the old test fails while the new test proves the exact minimum +128. Sixteen within-call coordinate terms attain 128 for every cross form. + +## Evidence and reproduction + +From the repository root, Python 3.12, standard library only: + +```sh +python3 -I -B scripts/research_package.py --package research/p112-cross-form-rank-tradeoff --check-only +python3 -I -B scripts/research_package.py --package research/p112-cross-form-rank-tradeoff +python3 -I -B research/p112-cross-form-rank-tradeoff/test_integrity.py +``` + +The registered replay independently constructs the Hamming-shell root set, +checks 12,544 label pairings, both 511-functional support censuses, all 64 +within-call support ranks, 9,216 small block matrices and 505 exact decoder +cost fixtures. Eight mathematical controls reject weakened hypotheses. +A deliberately degenerate rank-(1,1) example makes the criterion abstain; +finite decoders tested there do not decide its unrestricted minimum. + +Expected marker: + +```text +PASS_P112_CROSS_FORM_RANK_TRADEOFF ranks=93/100 blocks=9216 decoders=505 controls=8 abstentions=1 +``` + +The five coefficient identities are checked in dimension 16, which is +equivalent to all 224-by-224 scalar demand entries because the source-bound +root matrix has an explicit left inverse. Binary term costs are computed +on actual support spans, preserving matrix rank. No predecessor verifier is +imported. Replay compares every structured RESULT.json field and preserves +explicit checks under `python -O`. Typical local replay is a few seconds. + +Separately, use **Lean 4.21.0** with its bundled core libraries; +Mathlib and Lake are unnecessary: + +```sh +lean +leanprover/lean4:v4.21.0 -j1 research/p112-cross-form-rank-tradeoff/CountFloor.lean +python3 -I -B research/p112-cross-form-rank-tradeoff/check_lean.py --lean /path/to/lean +``` + +The second command requires the selected executable to report 4.21.0. It +builds three theorems, checks four concrete counterexamples and rejects four +false proof files. Their axiom audits list only `propext` and `Quot.sound`. +The registered Python replay does **not** build Lean; its pass is finite +certificate evidence only. The complete matrix/rank proof is written, +not kernel formalized. Local checks are author checks, not independent review. + +`--write-result` on verify.py regenerates RESULT.json for intentional updates; +ordinary replay is read-only. Source and predecessor pins are in SOURCES.json. + +## Task, overlap and attribution + +Task `formal-interface-lemma`, refined to the rank-price/count interface; +the full card is in [TASK.json](TASK.json). The claim is in +[Discussion #2372](https://github.com/CrocSwap/integer-mult-bounds/discussions/2372). Base: +`0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2`. + +* Sagar Thakrar (@thakrarsagar), [PR2294](https://github.com/CrocSwap/integer-mult-bounds/pull/2294), + head `18d6ac4f864af2b71aa8cf5f4541fcfc4350e2f0`, supplies the arbitrary + cross-form model, support premises, original count argument, weaker + sufficient conditions and the open question. Its proof is retained verbatim + under sources/ with its credit and Apache-2.0 notice. +* Alephnan's PR1714 supplies the root-code batch model; Mihir Srivastava's + PR845 and Adam Gall's PR1098 supply the support-lemma lineage. The fixed + main-branch P112 single-lift geometry is an immutable input. +* DreamingOfClouds' [PR2338](https://github.com/CrocSwap/integer-mult-bounds/pull/2338), + head `82700676e1d42acf98dc1921cb6ef82551620008`, proves related batch floors + with a single rank-nine label table. Its text is pinned for scope comparison; + none of its SAT results is a premise of this proof. + +The new contribution is the minimum-of-cross-ranks Schur price, its coupling +to the prior complex count argument, the expanded sufficient region and the +kernel-checked conditional count interface. It does not re-claim the original +128 isometric-chart floor. All new work is Apache-2.0. Substantial OpenAI +Codex assistance was used for derivation, implementation, checking and writing. + +## Open next questions + +1. Decide the remaining rank pairs (1,1), (1,2), (2,1), (2,2), (2,3), + (3,2), (3,3) when the actual support minima fail the new criterion. + A small first step is to classify which of the eight hyperplanes kill + each rank-one form. This matters because this proof leaves exactly that + low-rank source of possible sub-128 behavior; coefficient identities + and per-term support restrictions still have to be enforced jointly. +2. Formalize the matrix-to-count premises. Start with the 16-by-16 block + Schur bound over F2 and C and then the support classification. This would + reduce the current written-proof boundary; the Python census and the + natural-number theorems alone do not formalize those implications. + +No physical implementation or additional construction search is justified +by this sufficient-condition result alone. diff --git a/research/p112-cross-form-rank-tradeoff/RESULT.json b/research/p112-cross-form-rank-tradeoff/RESULT.json new file mode 100644 index 0000000000..a78c57fd65 --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/RESULT.json @@ -0,0 +1,160 @@ +{ + "block_census": { + "matrices": 9216, + "tight_by_cross_rank": { + "0,0": 36, + "0,1": 324, + "0,2": 216, + "1,0": 324, + "1,1": 1296, + "1,2": 1296, + "2,0": 216, + "2,1": 1296, + "2,2": 216 + } + }, + "controls": [ + "missing_incidence", + "missing_schur", + "missing_pure_surcharge", + "undercounted_within_price", + "overstrong_schur", + "missing_within_rank", + "codimension_two_loss", + "missing_cross_endpoint_term" + ], + "form_fixtures": { + "coefficient_endpoints": 5, + "criterion_passes": 100, + "decoder_cases": 505, + "form_pairs": 100, + "new_rank44_example": { + "beta01_rows": [ + 1, + 2, + 4, + 8, + 0, + 0, + 0, + 0, + 0 + ], + "beta10_rows": [ + 4, + 8, + 16, + 32, + 0, + 0, + 0, + 0, + 0 + ], + "decoder_costs": { + "noncoordinate_schur": 201, + "one_cross": 132, + "schur": 185, + "standard": 128, + "two_cross": 136 + }, + "k": 4, + "ranks": [ + 4, + 4 + ], + "support_minima": [ + 3, + 3 + ] + }, + "old_criterion_passes": 47, + "undecided_control": { + "beta01_rows": [ + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0 + ], + "beta10_rows": [ + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0 + ], + "decoder_costs": { + "noncoordinate_schur": 148, + "one_cross": 128, + "schur": 142, + "standard": 128, + "two_cross": 128 + }, + "ranks": [ + 1, + 1 + ], + "support_minima": [ + 0, + 0 + ], + "verdict": "criterion inconclusive" + } + }, + "rank_region": { + "certified_pairs": 93, + "prior_rank_sum12_pairs": 28, + "unresolved_pairs": [ + [ + 1, + 1 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 3, + 3 + ] + ] + }, + "scope": "written conditional matrix proof; finite premises; separate Lean count theorem", + "support_censuses": [ + { + "7": 8, + "8": 503 + }, + { + "7": 8, + "8": 503 + } + ], + "support_pair_ranks": 64, + "within_pairings": 12544 +} diff --git a/research/p112-cross-form-rank-tradeoff/SOURCES.json b/research/p112-cross-form-rank-tradeoff/SOURCES.json new file mode 100644 index 0000000000..0089d9cd0d --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/SOURCES.json @@ -0,0 +1,47 @@ +{ + "schema_version": 1, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "e8870e5917057d59b730eb14721a778639eca050", + "sha256": "d46eb6d5b3e279428753d770653663fbdf1063e55c255ea073d768f344927ef7" + }, + { + "path": "research/p112-single-lift/reference-geometry.json", + "usage": "input", + "git_blob": "d862663d3c0ffe3c72df510e89997beb85cef640", + "sha256": "4f44af368e046002553d632ee90c6470990827cea3fae41f0f54018522d7a080" + } + ], + "predecessors": [ + { + "head": "18d6ac4f864af2b71aa8cf5f4541fcfc4350e2f0", + "source_path": "research/p112-batch-chart-change/PROOF.md", + "local_path": "sources/PR2294-PROOF.md", + "git_blob": "177c27bd6c4f75a2524eb2e8ade74045b7abb060", + "sha256": "b0aef60119916aea6f768a92896be3b934a017a14e0ffdb17d66d6187ae3438b" + }, + { + "head": "82700676e1d42acf98dc1921cb6ef82551620008", + "source_path": "research/decoder-floors-frontier-format/README.md", + "local_path": "sources/PR2338-README.md", + "git_blob": "a1751a2a0b35d8607cf901da6fae6036cdb9e1bc", + "sha256": "0a941616cd2fac679182e5bb97e9a307bf22e42ac9541bbca3fadc81b1fda2b5" + }, + { + "head": "82700676e1d42acf98dc1921cb6ef82551620008", + "source_path": "research/decoder-floors-frontier-format/NOTICE.md", + "local_path": "sources/PR2338-NOTICE.md", + "git_blob": "8b1f75f7e7c0002b5c08b2e06e5bed32fae5b6f0", + "sha256": "95ffb286f159eaab0e1620fc860fea91b94fe14a28ed4a4da52716f52f53bc7a" + } + ] +} diff --git a/research/p112-cross-form-rank-tradeoff/TASK.json b/research/p112-cross-form-rank-tradeoff/TASK.json new file mode 100644 index 0000000000..0d194fa1e1 --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/TASK.json @@ -0,0 +1,85 @@ +{ + "schema_version": 1, + "task_id": "formal-interface-lemma", + "priority_revision": 4, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "original_card": { + "id": "formal-interface-lemma", + "question": "Can one small, precisely scoped interface lemma be formalized with its actual hypotheses?", + "starting_points": [ + "certificates/selected-result.json", + "research/hyperplane-end-lean/PROOF.md" + ], + "methods": [ + "Formalize a missing boundary lemma identified by the selected review.", + "Audit a formal theorem-to-certificate binding independently." + ], + "acceptance_gate": "State the exact formalized proposition and remaining assumptions; avoid duplicate arithmetic formalizations already present.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the exact hypotheses in the hyperplane-end proof and distinguish Lean theorems from finite supplier assumptions.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "State one missing boundary lemma in full before starting a proof-assistant build.", + "bottleneck_link": "A missing interface proof can reduce the conditional gap even if it does not change kappa.", + "allowed_variations": [ + "Narrow to one formal lemma or one theorem-to-certificate binding." + ], + "scope_change_triggers": [ + "Formalizing already-covered arithmetic and claiming the full multiplication theorem." + ], + "overlap_terms": [ + "hyperplane end", + "formal interface", + "Lean binding" + ] + }, + "scope_status": "refined", + "actual_scope": "PR2294 arbitrary two-call P112 cross forms: a stronger Schur rank price, the exact conditional COPY128 count interface in Lean, and its finite source binding.", + "scope_change_reason": "Take the named open cross-form interface in PR2294 rather than repeat a selected-supplier arithmetic proof. The formalization covers the natural-number implication only; matrix premises remain explicit.", + "bottleneck_link": "Eliminates additional two-call cross-form coupling ranks as routes to a lower separate COPY bill, while making the matrix-to-count proof boundary explicit. No supplier or kappa improvement.", + "budget_minutes": 60, + "stop_rule": "Stop after the sufficient-condition theorem, exact P112 premises, Lean count implication and negative controls; leave the seven low-rank pairs and physical implementation open.", + "outcome": "completed", + "evidence": "PROOF.md; CountFloor.lean (Lean4.21.0, propext and Quot.sound only); RESULT.json (93 rank pairs,9216 block matrices,505 decoder fixtures,8 controls and1 abstention).", + "author": "commdata2338", + "ai_assistance": "Substantial OpenAI Codex (GPT-6 Astra) assistance in derivation, implementation, checking and writing; no independent human review claimed.", + "open_questions": [ + { + "question": "Decide the seven residual global rank pairs when the actual support-minimum criterion fails.", + "why_it_matters": "This is the remaining low-rank region not excluded by the new sufficient condition.", + "first_step": "Classify rank-one forms by which of the eight reader/source hyperplanes annihilate them.", + "blocked_by": "Must enforce exact complex coefficient identities and support-dependent prices jointly; finite fixture costs do not prove a minimum." + }, + { + "question": "Formalize the binary and complex matrix-to-count implications.", + "why_it_matters": "The current kernel theorem assumes the matrix-derived arithmetic inequalities.", + "first_step": "Prove the block Schur lower bound with invertible within-call8-by8 minors.", + "blocked_by": "Needs a matrix-rank library and formal binding of the finite P112 support premises." + } + ], + "selection": { + "type": "live-open-question override", + "task_id": "formal-interface-lemma", + "scope_key": "636f26dec98e26b296e8", + "card_retrieval_nonce": "e08434b24e3b43ce5b9af0fdcc95d1ac", + "request": "PR2294 section4 and open question1", + "priority_revision": 4 + }, + "predecessors": { + "2294": "18d6ac4f864af2b71aa8cf5f4541fcfc4350e2f0", + "2338": "82700676e1d42acf98dc1921cb6ef82551620008" + }, + "claim_url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/2372", + "final_refresh": { + "utc": "2026-10-15T07:04:46.599084+00:00", + "main_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "priority_revision": 4, + "changed_since_base": [] + } +} diff --git a/research/p112-cross-form-rank-tradeoff/VERIFY.json b/research/p112-cross-form-rank-tradeoff/VERIFY.json new file mode 100644 index 0000000000..a12fcd182a --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/VERIFY.json @@ -0,0 +1,21 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/p112-single-lift/reference-geometry.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Exact source pins, P112 support premises, Schur block census, explicit decoder endpoints and prices, eight mathematical failure controls, abstention and full RESULT.json equality" + } + ] +} diff --git a/research/p112-cross-form-rank-tradeoff/check_lean.py b/research/p112-cross-form-rank-tradeoff/check_lean.py new file mode 100644 index 0000000000..24844b05da --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/check_lean.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Build the core-only Lean count lemma and reject four false variants.""" +import argparse +from pathlib import Path +import shutil +import subprocess +import tempfile + +HERE = Path(__file__).resolve().parent + + +def invoke(executable, filename): + return subprocess.run([executable, "-j1", "-DwarningAsError=true", str(filename)], + capture_output=True, text=True, timeout=60) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--lean", default=shutil.which("lean")) + args = parser.parse_args() + if not args.lean: + raise SystemExit("Lean 4.21.0 required; pass --lean PATH (no automatic installation)") + version = subprocess.check_output([args.lean, "--version"], text=True, timeout=60).strip() + if not version.startswith("Lean (version 4.21.0,"): + raise SystemExit("Expected Lean 4.21.0, got " + version) + result = invoke(args.lean, HERE / "CountFloor.lean") + if result.returncode or "sorryAx" in result.stdout + result.stderr: + raise SystemExit(result.stdout + result.stderr) + for name in ("floor_of_counts", "rank_four_floor", "floor_of_term_prices"): + expected = f"'P112CrossForm.{name}' depends on axioms: [propext, Quot.sound]" + if expected not in result.stdout: + raise SystemExit("Unexpected axiom audit: " + result.stdout) + # Each missing-hypothesis variant is false, with a concrete witness in + # CountFloor.lean. A failed proof here is a compiler control, not its proof. + controls = [ + "example : 128 ≤ 64 := by decide\n", + "example : 128 ≤ 0 := by decide\n", + "example : (8 : Nat) * 8 ≥ 128 := by omega\n", + "example : (7 : Nat) * 16 ≥ 128 := by omega\n", + ] + with tempfile.TemporaryDirectory(prefix="p112-count-controls-") as directory: + for i, content in enumerate(controls): + path = Path(directory) / f"False{i}.lean" + path.write_text("import Lean\n" + content) + failed = invoke(args.lean, path) + if failed.returncode == 0 or "error:" not in failed.stdout: + raise SystemExit("False theorem accepted or wrong failure: " + failed.stdout + failed.stderr) + print(version) + print(result.stdout.strip()) + print("PASS_LEAN_P112_COUNT_FLOOR theorems=3 concrete_counterexamples=4 rejected_proofs=4") + + +if __name__ == "__main__": + main() diff --git a/research/p112-cross-form-rank-tradeoff/sources/PR2294-PROOF.md b/research/p112-cross-form-rank-tradeoff/sources/PR2294-PROOF.md new file mode 100644 index 0000000000..177c27bd6c --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/sources/PR2294-PROOF.md @@ -0,0 +1,281 @@ +# Two-call P112 batch floor under changed cross-call label charts + +Scope: k = 2 independent P112 all-pairs demands (C = I_2), root-code factors, +separate-total union price, exactly as in merged PR1714 +(`research/p112-batch-centre-floor`, alephnan). The **only** change is the +cross-call label chart. This is a written proof with exact finite premises +rechecked by `verify.py`. It is not a Lean proof and has not had independent +human review. + +## 0. Inherited model and premises + +X is the 112 x 8 live P112 root matrix (norm four, frame-adapted Hamming +coordinates), with `X^T X = 56 I_8`. Labels ell_i live in the nine-dimensional +binary space V with nondegenerate symmetric pairing b, where +`b(ell_i, ell_j) = 1 + x_i.x_j/2 mod 2` (PR1714 section 1). + +A factorization is `D T^T = I_2 (x) X X^T` with `D = (I_2 (x) X) A` and +`T = (I_2 (x) X) Cf`. A and Cf are complex 16 x m matrices, and the transpose +is ordinary. Since `I_2 (x) X` has the left inverse `(1/56)(I_2 (x) X^T)`, +this is equivalent to + + A Cf^T = I_16. (0) + +Term j has the reader column `a_j = (a_j^0, a_j^1)` and the source column +`c_j = (c_j^0, c_j^1)`, with one 8-block per call. Terms with a zero column +are discarded. + +**Inherited finite premises** (PR845 Mihir Srivastava; PR1098 Adam Gall; +PR1714 alephnan; rechecked here by an independent stdlib construction): + +* (S) *Support lemma.* For nonzero complex `a in C^8`, the label span of + `supp(Xa)` is V or one of eight hyperplanes `H_k = span ell(E_k)`, where + `E_k = supp(X e_k)`. Rechecked: 503 of 511 binary functionals have + complement rank 8 and eight have rank 7 with coordinate-line kernels. +* (P) *Pair lemma.* `rank b|(U x W) >= 8` for any two such spans U, W. + Rechecked: all 64 ordered pairs `(E_i, E_j)` have F2 rank 8. The cases + involving V (`V x H_k`, rank 8; `V x V`, rank 9) follow from + nondegeneracy of b (Gram rank 9, checked). +* Consequently every root-code support span has dimension >= 8. Taking + U = W in (P) gives `rank <= dim U`. + +## 1. Changed chart + +Call 1 keeps the chart ell. Call 2's row i carries the label `phi(ell_i)` +for a linear bijection phi of V. A term's union reader-label set is + + L(S_j) = ell(supp X a_j^0) union phi ell(supp X a_j^1), + +and similarly for the source set L(T_j). Its price is the F2 rank of the +pairing matrix `[b(s,t)]` for s in L(S_j) and t in L(T_j). A general pair of +charts (phi_1, phi_2) reduces to `phi = phi_1^{-1} phi_2` only when phi_1 +is an isometry. This package treats call 1 fixed. + +**Isometric charts.** Take phi in O(V,b), so `b(phi x, phi y) = b(x, y)`. +Then call 2's own pairing, and hence its standalone P112 demand price, is +unchanged; only the cross-call pairing `b(x, phi y)` changes. Conversions +between charts are granted **free**. This favourable grant only +strengthens the negative conclusion below. + +Equivalent V (+) V description: put the union pairing +`Gamma = [[G, G phi], [phi^T G, G]]` on V (+) V, with call-s labels in +summand s. The price of a term is the rank of Gamma on the two union +spans. `verify.py` checks that the single-V and V (+) V computations +agree on its fixtures. + +## 2. PR1714's per-term step does not extend to changed charts + +PR1714 section 3 shows that every active term costs at least eight "even +when the chosen blocks have different call indices". That uses the +common chart. Under phi, consider a **pure cross term**, with reader +column only in call 1 and source column only in call 2: +`a = (a^0, 0)` and `c = (0, c^1)`. Its price is `rank b|(U x phi W)`, where +U and W are root-code spans. Hence + + price = dim U - dim(U cap (phi W)^perp) >= dim U + dim W - 9 >= 7. (1) + +Equality needs `U = H_i`, `W = H_j` and `phi v_j in H_i`, where `H_k = v_k^perp`. +Thus the price is 7 exactly when `b(v_i, phi v_j) = 0`. Under the common chart, +`b(v_i, v_j) = 1` for all i and j, which is PR1714's 64-pair check. + +Let w0 be the characteristic vector, with `b(x,x) = b(x,w0)`. For any +isotropic u, meaning `b(u,u) = 0`, the transvection `t_u(x) = x + b(x,u) u` +lies in O(V,b). Then + + b(v_i, t_u v_j) = 1 + b(v_i,u) b(v_j,u), + +so t_u makes exactly `s^2` ordered pairs rank 7, where +`s = #{k : b(v_k,u) = 1}`. The verifier checks this formula on all 255 +isotropic transvections. Its finite census has s^2 = 0 for 15 vectors, +16 for 224 vectors, and 64 for 16 vectors. Thus **some isometric charts +make all 64 exceptional cross pairs rank 7**. + +The fixed-seed sample has 162 charts, including the identity and the +targeted chart. Its observed counts are 0, 16, 24, 28, 32, 36, 40 and 64. +Direct 56 x 56 F2 ranks agree with the formula on 1,600 chart/pair +instances. So the per-term step **does not extend** to changed charts. +This is not an error in PR1714, which asserts the step only under its +common chart. + +## 3. Theorem A (isometric charts): the minimum is still 128 + +**Theorem A.** For every phi in O(V,b) and every exact root-code +factorization of `I_2 (x) X X^T`, the total union price is at least 128. +The standard decoder `u_s (x) X e_k` on both sides attains 128. Equality +requires that the factorization have no pure cross term. + +*Proof.* Classify each active term: + +* N, **non-pure**: some call s has both `a^s != 0` and `c^s != 0`. +* P01: `a = (a^0, 0)` and `c = (0, c^1)`. +* P10: `a = (0, a^1)` and `c = (c^0, 0)`. + +These cases exhaust all active terms because there are only two calls. + +*Prices.* A non-pure term contains the within-call block for call s as +a submatrix of its union pairing matrix. For s = 2, isometry gives +`b(phi x, phi y) = b(x,y)`. Monotonicity and (P) therefore give price >= 8. +By (1), a pure cross term has price >= 7. + +*Counting.* A P01 term's outer product `a c^T` lies only in the (0,1) +block. A P10 term's lies only in the (1,0) block. Write +`R01 = sum_{P01} a^0 (c^1)^T` with `r01 = rank R01 <= |P01|`, and define +R10 and r10 likewise. By (0), + + Q_N := sum_{N} a_j c_j^T = [[I, -R01], [-R10, I]]. + +The Schur complement over C gives +`rank Q_N = 8 + rank(I - R10 R01) >= 16 - min(r01, r10)`. A sum of |N| +rank-one matrices has rank at most |N|, so + + |N| >= 16 - min(r01, r10). (2) + +*Total.* Let mu = min(r01, r10). Then + + total >= 8|N| + 7(|P01| + |P10|) + >= 8(16 - mu) + 7(r01 + r10) + >= 128 + 6 mu + 7(r01 + r10 - 2 mu) >= 128. (3) + +If a pure term exists, then `|P01| + |P10| >= 1`. If mu = 0, the excess +`7(|P01| + |P10|) >= 7` is strict. If mu >= 1, then 6mu > 0. Hence +equality forces `P01 = P10 = {}`. The standard decoder has 16 terms; each +pairs `H_k` with itself inside one call, so it costs 128 under every +phi. QED. + +*Rank-7 cross terms therefore never help.* Every pure cross term adds +at least 7 units. It can remove at most `8 min(r01, r10)` units from the +non-pure count, and only when both directions are present. + +**Exact fixtures** (targeted transvection chart, with full 224 x 224 +all-pairs replay): + +* One-cross decoder: 16 non-pure terms plus one rank-7 P01 term. Its + cost is 135, matching the lower bound in (3). The same decoder costs 136 + under the common chart. +* Two-cross decoder: 15 non-pure terms and two rank-7 pure terms. Its cost + is 135, against the bound 134. +* Schur-pattern decoder with `R01 = R10 = I`: 8 non-pure terms and 16 pure + terms. Its cost is 188, against the bound 176. + +## 4. Proposition B (general cross forms; sufficient condition only) + +Secondary model: on V (+) V, keep b as both within-call blocks. Allow +arbitrary cross forms beta01 (call-1 reader, call-2 source) and beta10. +Let c01 and c10 be the minimum ranks of beta01 and beta10 on pairs of +root-code spans. By monotonicity, these minima are taken over the 64 +hyperplane pairs. + +**Proposition B.** If `c01 + c10 >= 8`, every exact k = 2 root-code +factorization costs at least 128. + +*Proof.* Non-pure terms still cost at least 8 by the within-call +submatrix and (P). Count (2) does not depend on prices. Thus + + total >= 8(16 - mu) + c01 r01 + c10 r10 + >= 128 + (c01 + c10 - 8) mu + c01 (r01 - mu) + c10 (r10 - mu) + >= 128. QED + +**Corollary B' (invertible charts in the V (+) V reading).** Let phi be +any linear bijection of V, isometric or not. Keep b as each call's own +pairing and take the cross forms `beta01(x,y) = b(x, phi y)` and +`beta10(x,y) = b(phi x, y)`. For hyperplanes U, W, +`rank b|(U x phi W) >= dim U + dim W - 9 = 7`, so `c01, c10 >= 7` and +Proposition B gives the floor 128. More generally, any cross forms with +`rank beta01 + rank beta10 >= 12` qualify: restricting a form to a pair of +hyperplanes lowers its rank by at most 2, so `c01 + c10 >= 12 - 4 = 8`. +Only the single-V reading of a non-isometric chart, where call 2's own +pairing changes, is left open by this route. + +This is **only a sufficient condition**. The zero form beta = 0 has +`c01 = c10 = 0` but still obeys the floor: + +**Proposition C (beta = 0).** If both cross forms vanish, every exact +factorization costs at least 128. + +*Proof.* The union pairing matrix is block diagonal. A term's price is +the sum, over calls s with `a^s != 0 != c^s`, of its within-call ranks, +each at least 8. Diagonal block s of (0) is `I_8`, the sum of +`a^s (c^s)^T` over terms with both parts nonzero. So at least eight such +(term, s) incidences exist for each s. The total is at least +`8 * 16 = 128`. QED + +This is the "beta = 0 pitfall": the cheap-looking Schur pattern +`Q_N = [[I,-I],[-I,I]]` (rank 8) plus 16 pure cross terms of price 0 +costs exactly `8 * 16 + 0 = 128`, because each both-call term costs 16. +The verifier replays it exactly. + +**Proposition D (any cross forms; necessary conditions for going below +128).** Call a non-pure term *double* if `a^0, c^0, a^1, c^1` are all +nonzero. For such a term, let rho01_j be the rank of beta01 from the +call-1 reader span to the call-2 source span. Let rho10_j be the rank of +beta10 from the call-2 reader span to the call-1 source span. Then every +exact k = 2 root-code factorization satisfies + + total >= 128 - sum_{double j} min(8, rho01_j + rho10_j) + sum_{pure j} price_j. (4) + +*Proof.* Let n_s count the terms with `a^s != 0 != c^s`. Diagonal block s +of (0) is `I_8`, so `n_s >= 8`. Every non-pure term counts in n_0 or n_1, +and the d double terms count in both. Hence the non-double non-pure terms +number at least `16 - 2d`, and each costs at least 8 by (P). + +A double term's union matrix is `[[G00, B01], [B10, G11]]`. Here G00 and +G11 are within-call blocks of rank at least 8 each. B01 and B10 are its +cross blocks, of ranks rho01_j and rho10_j. Subadditivity of rank gives a +price of at least `max(8, 16 - rho01_j - rho10_j)`. Summing, + + total >= 8(16 - 2d) + sum_double max(8, 16 - rho01_j - rho10_j) + sum_pure, + +which is (4). QED + +Corollaries: + +* Proposition C is the case beta = 0, where every rho is 0. +* A sub-128 decoder in any cross-form model needs two things. First, + `mu = min(r01, r10) >= 1`; otherwise (2) gives `|N| >= 16` and the + total is at least 128. Second, it needs double terms whose cross-form + ranks strictly exceed what the pure terms pay. In the verifier, + inequality (4) is checked on four exact families, 50 forms each. Its + minimum value is 128 there. + +**Remark (coordinate families, every cross form).** In the two-cross and +Schur-pattern families, each both-call term pairs `H_p (+) H_q` with +itself. G restricted to `H_p x H_p` is invertible by (P). The Schur +complement then gives price + + 8 + rank(G_q - beta10 G_p^{-1} beta01) >= 16 - min(rank beta01, rank beta10), + +with all forms restricted to the relevant hyperplanes. The two pure terms +on the same pair cost `rank beta01 + rank beta10`. Each such group +therefore costs at least 16, and both families cost >= 128 for every +cross form. In the one-cross family, mu = 0. Its cost is +`128 + rank beta01|(H_p x H_q)`. + +The verifier checks these families, plus a non-coordinate Schur pattern +`[I;-I] M M^{-1} [I,-I]` with M upper-triangular all-ones, on three kinds +of cross form: + +* beta = 0; +* the targeted chart; +* 48 seeded random cross-form pairs. + +All but beta = 0 meet the sufficient condition of Proposition B. That +makes this a weak finite search; it does **not** show that every cross +form, or every decoder, obeys the floor. + +## 5. What is not proved + +* An exact minimum for arbitrary cross forms, which may be below 128 for + some form and some non-coordinate decoder. No such decoder was + constructed. None of the cross forms here is a legal or priced + interface. +* General k, C != I_2, outside-code overcomplete factors, masked + identities and temporal relations. Non-isometric charts in the single-V + model change call 2's own demand price, so they are out of scope here + (their V (+) V reading is covered by Corollary B'). +* Any physical meaning. Chart conversions are granted free. A real + interface would have to pay for them, and that would only raise costs. + The floor is internal to PR1714's algebraic separate-total objective; + it is not a lower bound for arbitrary interacting circuits. + +Prepared by thakrarsagar with substantial AI assistance from Claude +(Anthropic, Claude Opus 5.5). Apache-2.0. diff --git a/research/p112-cross-form-rank-tradeoff/sources/PR2338-NOTICE.md b/research/p112-cross-form-rank-tradeoff/sources/PR2338-NOTICE.md new file mode 100644 index 0000000000..8b1f75f7e7 --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/sources/PR2338-NOTICE.md @@ -0,0 +1,16 @@ +# Notice + +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code; Apache-2.0 (`LICENSE`, copied from the repository root). + +## Credits + +- **#446** (cost model, Theorem C), **#595**, **#1590**, **#2111**, **#2125**, **#2162**, **#2228**, **#2244**, **#2277**: the model, the dense pairing, the root-code floors (#2228 Theorem 4), Theorem 4′ and the frame-intersection certificate (#2277 §5) that this package extends. The statements "P112 ≥ 64 for every rank-8 realisation" (Theorem P), the cross-call batching bounds with `GL(9)` charts and `k ≥ 3` (Theorem B, Bk) and the every-`B` coordinate-block minrank are new here, built on those. Rigidity of the minimal-rank label table (Theorem R) is new here for E8, P112, P104 (#968's unit and class representatives), E7 and E6 only: for P111 it is prior work of **#620** (GamingPuzzled, SAT) and **#1097** (bitplane, merged, LRAT-checked in the general model), and **#1815** (jmbarrancoml) is the one-sided P112 predecessor; here P111 is re-derived on #589's lines. +- **#968**, **#1077**, **#1180**, **#1212**, **#1213**, **#1236**, **#1744**, **#757**, **#761**, **#620**, **#1097**, **#1815**, **#1331** (Arham-Tahir64), **#1249** (bbMisk, independent check of #1236), **#717** (ours; term-cost model, frontier-word censuses): the E8 / P112 / P104 / P111 floors for 8 terms, for factors in the live root code, rigidity, and the 9-term decoder outside the root code (#1180, whose cost 65 and shape are re-derived in `c4`). +- **#1224** (joaqcoo; the merge lemma, one-sided overcomplete structure), **#1633** (bbMisk; excess-rank budgets), **#1714** (the independent-call batch model), **#2294** (thakrarsagar; the `k = 2` / `O(9)` / Gram batching core, found independently of Theorem B and credited for priority), **#2293** (navinor; independent audit of our Lemma CR2 / Theorem B2), **#2176**, **#2206**, **#2232**, **#2240**, **#2247**, **#2137**, **#2272**, **#2267**, Discussion 1267 (philippeVV; co-star families), Discussion 1166 (1337isnot1337; child-merging screen). +- **#589** (P111 bit word): `data/p111_lines.json` is the `lines` array of `research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz` on `main` (sha256 pinned in `SOURCES.json`). +- Tools: kissat 4.0.4 (SAT; never CaDiCaL); `drat-trim` (Marijn Heule and Nathan Wetzler), not vendored here, optional. +- No file is copied from another contributor. `lib/roots.py`, `lib/satgen.py`, `lib/frames.py`, `lib/report.py`, `scripts/provenance.py`, `checks/c5_attaining_decoders.py`, `data/p104_frames.json` and `LICENSE` are the author's own files from the package of #2277 (`research/overcomplete-and-realisation-floors`). + +## New in this package + +Everything under `research/decoder-floors-frontier-format/`: `README.md`, `verify.sh`, `SOURCES.json`, `MANIFEST.sha256`, `lib/*.py`, `checks/*.py`, `sat/*.py`, `scripts/provenance.py`, and the evidence files `data/*.json`, `sat/results.jsonl`, `sat/results_misc.jsonl`, `sat/proofs/` (all produced by the generators in this package; the P104 class representatives `data/p104reps.json` and `data/h4_F1.json` were exported from the author's working card `STRAYS`, and are re-verified by the checks: `c1.gauge`, `c2`). diff --git a/research/p112-cross-form-rank-tradeoff/sources/PR2338-README.md b/research/p112-cross-form-rank-tradeoff/sources/PR2338-README.md new file mode 100644 index 0000000000..a1751a2a0b --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/sources/PR2338-README.md @@ -0,0 +1,291 @@ +# Decoder floors are tight in the frontier format: one F2^9 label table, factors in col M of a rank-8 realisation (P112 64, E8 72, P104 (#968's unit) 56; two-call batches 128) — no κ claim + +> **Scope, stated first.** This package says one thing: *for decoders of the E8-family units that are hosted the way the frontier hosts them* — one global label +> table in `F2^9` (so the admissible pairing `B` of the whole unit has `F2`-rank `≤ 9`), with the factors of every term in the column space of a minimal-rank realisation +> (`col P ⊆ col M`, `col Q ⊆ row M`, rank `M = T = 8`; the square decoder of a *rank-9* realisation is **not** covered, OPEN §5.2 (c)), any number of terms, any number of independently batched calls — **the copy cost of the decoder cannot be lowered +> below P112 64, E8 72, P104 56 (P104 means #968's unit, `F1 = H4`; E7 49 on its own rank-7 table), and two independent P112 calls cost at least 128**, all attained. It contains **no κ claim**, no window, +> no supplier, no word-side (helper, transport, packing) cost. Everything outside that format is listed in §5 as **OPEN**, with what each escape would have to achieve. +> Nothing here removes the need to price an escape; it only says where the escapes are. **Credit, stated first:** the P111 row of Theorem R (rigidity of the rank-9 fitting matrix of a P111 pattern) is prior work of #620 (GamingPuzzled; SAT) and #1097 (bitplane, merged; LRAT-checked in the general model), and #1815 (jmbarrancoml, merged) proves a one-sided P112 fitting rigidity; what is new here is Theorem R on E8, P112, P104 (#968's unit and class representatives), E7, E6, plus P111 on #589's 111 lines in the symmetric and general model with DRAT (§3.1, §3.7). Other P104 units are **not claimed** (§6, §5.6). +> +> **Labels.** **PROVEN** (proof in this README, or a cited proof of a merged / open PR of the swarm); **CHECKED** (recomputed by `verify.sh`: exact integer / `Fraction` / bit +> arithmetic, or SAT whose UNSAT verdict carries a DRAT proof that `drat-trim` verifies; kissat 4.0.4 only, never CaDiCaL); **RECORDED** (a result of the author's working +> cards that this package does **not** re-run, stated with its exact scope and where the evidence is; nothing in §2 marked PROVEN or CHECKED depends on a RECORDED item +> unless that is said); **OPEN**. + +## 0. Reading this package + +```sh +bash research/decoder-floors-frontier-format/verify.sh /fresh/output/dir # Python >= 3.11, standard library only +DRAT_TRIM=/path/to/drat-trim KISSAT=/path/to/kissat bash research/decoder-floors-frontier-format/verify.sh /fresh/output/dir +``` + +Step 0 checks every file against `MANIFEST.sha256` and every pin of `SOURCES.json` (hard stop on a mismatch). Then seven check scripts print one `PASS` / `FAIL` line per +assertion (`SKIP` for anything that needs `kissat` or `drat-trim` when it is absent: those lines are not PASS). `verify.sh` exits nonzero on any FAIL. One core; +6-7 minutes of CPU with both tools (358 s and 417 s user in two runs on a loaded machine; the 30 rigidity instances are re-solved and the UNSAT proofs re-checked), about 20 s without them (4 SKIP lines). +`HIT_FULL=1` additionally re-solves three slow clique-hitting instances (kissat only, no proof; §3.6). + +| script | what it recomputes | +|---|---| +| `checks/c1_rigidity.py` | Theorem R: regenerates 30 CNFs (hash, #vars, #clauses), recorded verdicts, 4 shipped DRAT proofs, and (with kissat) re-solves all 30; 16 UNSAT proofs re-checked with drat-trim, 14 SAT models decoded | +| `checks/c2_support_propagation.py` | Lemma 1.1 census (all `2^h − 1` label classes) on D4, D6, E7, E8, P112, P104; survivors, pair ranks, exactness of the per-term rank | +| `checks/c3_batch_premises.py` | labels of P112 in `F2^9`, normals `w_i`, `b(w_i,w_j) = 1`, `ρ(N(f_i),N(f_j)) = 8`, frame lemma, an `O(9)` chart with all 64 cross pairs of rank 7 | +| `checks/c4_masked_costar.py` | #1180's nine-term identity (cost 65), co-star dead sets, survivor 7-cliques | +| `checks/c5_attaining_decoders.py` | the decoders that attain the floors (E8 72, E7 49, D6 30, D4 12, P112 64, P104 56), exact `Fraction` arithmetic | +| `checks/c6_block_minrank_punctures.py` | EDGE E1a (every admissible `B`: the block `N(f)` of P112 has minrank 8; 8 DRAT proofs) and the C4.1 clique-hitting bounds on punctures | +| `checks/c7_p111_unit.py` | the P111 bit unit of #589's word: 111 lines of an E8 line system, `rank_F2 B_d = 9`, an 8-frame | + +Layout: `lib/` (E8-family units, Bron–Kerbosch, exact `F2` / `Q` linear algebra, CNF helpers; `roots.py`, `satgen.py`, `frames.py`, `report.py` are the author's own files from +#2277's package, `units.py`, `supprop.py`, `solve.py` are new), `sat/` (generators `rigid.py`, `misc.py`, `hitting.py`; registries; recorded results +`results.jsonl`, `results_misc.jsonl`; shipped DRAT proofs `proofs/*.drat.xz`; author tools `mkresults.py`, `mkmisc.py`), `data/` (frames, the 111 P111 lines, one chart). + +## 1. Setting + +A **unit** is a set of `v` pairwise non-proportional lines `r_t ∈ Q^8` of the E8 root system (`E8`: 120 lines, `P112 = E8 − F0`, `P104 := E8 − F0 − F1` with `F1 = H4`, the second frame of #968's unit (the swarm has other P104 units, e.g. #1399's 896 admissible ones; those are not covered here, §6 and §5.6; the 1,260 frames `F1` disjoint from `F0` fall into invariant classes by the number of live 8-frames of the unit, `759 / 767 / 801`, and `H4` lies in the 759 class), `E7`, `E6`, the bit unit `P111` of #589). A **realisation** `M` has `M_tt ≠ 0` and `M_ts = 0` for orthogonal `t ≠ s`. A **decoder** is `M = Σ_j p_j q_jᵀ` +with an **admissible (fitting) pairing** `B ∈ F2^{v×v}`: `B_tt = 1`, `B_ts = 0` for non-orthogonal `t ≠ s`, free on orthogonal pairs. Cost `= Σ_j rank_F2 B[R_j, A_j]`, `R_j = supp p_j`, +`A_j = supp q_j` (the copy-pairing rank sum that the invoice charges; every bound below therefore also holds for any costlier physical charge). The **dense** pairing is +`B_d = 1` on every orthogonal pair (and the diagonal); `rank_F2 B_d = h = 9` for E8, P112, P104, P111, `7` for E7, E6. +**Model hypothesis (the frontier format).** The registers of the word carry labels in one `F2^h`; the pairing used by every term is a block of one matrix `B = U Vᵀ` +(or `P Pᵀ`, the physical symmetric form) with `U, V ∈ F2^{v×h}`, i.e. `rank B ≤ h`. That the frontier word hosts its decoders on a single table of dimension `h = 9` is an +engineering fact of the word; the code that fixes it is in this repository: `research/complex-571-cold14-k492/code/construct_k_triangle.py:20` (`P=D['binary_ports'] … h=9`), `:183–187` (the centre frames are `hyper(P[frame[i]])`, so the physical pairing is `J + Gram(even parts)`, symmetric of rank `≤ 9`) and `:364` (`'ports':P[8:]`); the working card `EDGE/HOSTING.md` (not shipped) records the same reading, with the term-cost model of #717 (cost = dimension of the label span). It is **not** proved here, it is the hypothesis whose negation is §5 item 1. +**Label classes** (as in #2277 §1): `C = col B_d` (dim `h`); a class is the support of a nonzero `w ∈ C`; `Def(R) = {w ∈ C : supp w ∩ R = ∅}`, `δ(R) = dim Def(R)`. +**Frames.** A `T`-frame is `T` pairwise orthogonal lines (`T = 8` for E8, P112, P104, P111; 7 for E7). Every realisation has rank `≥ T` (a frame gives an invertible diagonal minor). + +## 2. Master table: escape class → status → certificate + +"Class X" = one label table with `h = 9` (`h = 7` for E7), factors in `col M / row M` of a rank-`T` realisation. + +| # | escape class | what is shown | status | certificate | +|---|---|---|---|---| +| 1 | non-dense admissible `B` of rank `≤ 9` (E8, P112, P104 = #968's unit and three class representatives, P111) or `≤ 7` (E7, E6) | every fitting `B` of that rank **equals the dense `B`**, general `UVᵀ` and symmetric `PPᵀ` | **CHECKED** (16 DRAT-verified UNSAT + 10 SAT controls + 4 non-dense witnesses) | `c1`, §3.1 (Theorem R); the P111 case is #620 / #1097's, re-derived on #589's lines | +| 2 | factors in the E8 root code, any `m`, dense `B` | P112 ≥ 64, E8 ≥ 72, P104 (#968's) ≥ 56, E7 ≥ 49 | **PROVEN** (cited, not re-run: #2228 Thm 4; #1180) + attained (**CHECKED**, `c5`) | #2228, #1180; with row 1 this is every `B` at `h = 9` | +| 3 | any rank-8 realisation, factors in `col M`, any `m` | **P112 ≥ 64**; P104 (#968's unit) ≥ 56; E8 ≥ 72, E7 ≥ 49 | **PROVEN** from **CHECKED** (Lemma 1.1 census) | §3.2 (Theorem P), `c2`; E8/E7/P104 also #2277 Cor. 5.3 | +| 4 | ≤ 8 paid terms, factors anywhere | square ⇒ row 3 | **PROVEN** | §3.3 | +| 5 | #1180's outside-code nine-term example | costs exactly 65; its shape is ≥ 64 for **every** `B` | **CHECKED** + **PROVEN** | `c4`, `c6`, §3.3 | +| 6 | co-star nine-term masked decoders (Disc. 1267) | all 120 dead sets span in every rank-8 realisation ⇒ each is a square decoder of a rank-9 realisation (pins them to §5 item 2(c)) | **CHECKED** (`c4`) + **PROVEN** consequence | §3.3 | +| 7 | batches: `k` independent P112 calls on one `F2^9` table, any chart, factors in `col M_c`, any `m` | `k = 2`: ≥ 128 + 3t; `k ≥ 3` (symmetric charts): ≥ 64k + 3t; attained | **PROVEN** from **CHECKED** premises | §3.4 (Thm B, Bk), `c3`; k = 2 / O(9) / Gram also swarm #2294 | +| 8 | any `B` on a single coordinate block | `rank_F2 B[N(f), N(f)] ≥ 8` for every admissible `B`, all 8 `f` | **CHECKED** (8 DRAT) | `c6`, §3.5 (EDGE E1a) | +| 9 | punctures of the coordinate term under any table | clique hitting: `f(2) ≥ 14`, `f(6) ≥ 46`, `f(7) ≥ 52`, `f(8) = 56`; `s/f(s) ≤ 1/7` on the computed values | **CHECKED** (s = 2, 6: DRAT; 7, 8 exact); s = 3, 4, 5 **RECORDED** (kissat UNSAT re-run with `HIT_FULL=1`, no DRAT here) | `c6`, §3.5 | +| 10 | P111 bit unit | rigid at `h = 9` (sym + general; **prior work of #620 / #1097**, re-derived on #589's lines); set-decoders with ≤ 12 totals cost ≥ 63, and with 13 totals ≥ 63 | rigidity **CHECKED** (2 DRAT); ≥ 63 for ≤ 12 and for 13 totals **RECORDED** | `c1`, `c7`, §3.7 | +| 11 | E8 square root-code decoders for **every** `B` (no `h` cap) | ≥ 72 (4022 pair classes) | **RECORDED** (4022 DRAT verified in the working card; not re-run) | §3.8 | +| 12 | `FL(4)`: every D4 decoder, every `B`, every `m` | ≥ 12 | **RECORDED** (support-level enumeration, 144 classes) | §3.8 | +| 13 | E7 square maximal-normal root-code decoders, every `B` | ≥ 49 (no ≥ 5 root–root partners) | **RECORDED** (exact enumeration + independent audit in the working card) | §3.8 | +| 14 | P104 delivery (#968's decoder) under any `F2^9` table | no helper-free nested delivery (24 DRAT) | **RECORDED** | §3.8 | +| 15 | PUNCT2 near-miss unions `p = 25..44`, any physical table, any `m` | no decoder beats P102's 54/102 (Model C) | **RECORDED** | §3.8 | +| 16 | **label tables of rank `h ≥ 10`** | non-dense fitting tables exist (row 1, witnesses); a 112-port unit needs cost ≤ 59 at `h = 10` to tie P112-`h = 9` (≤ 55 at `h = 11`) | **OPEN** | §5.1 | +| 17 | **factors outside `col M`, `m ≥ 9`** | `m = 9`: `ρ ∈ {8, 9}`; (b) `ρ = 8` one outside factor, (c) `ρ = 9` square rank-9, (d) `m ≥ 10` | **OPEN** | §5.2 | +| 18 | **bit window of 14 totals** (13 totals: RECORDED closed, row 10) | 14-total run in progress in the working card, not final | **OPEN** | §5.3 | +| 19 | **puncture windows `p ≥ 45`** | — | **OPEN** | §5.4 | +| 20 | **batches `m ≥ 17` outside `col M`**, GL charts with `k ≥ 3`, mixed units, correlated demands, `h ≥ 10` joint tables | — | **OPEN** | §5.5 | +| 21 | **P104 units other than #968's** (Theorem R for all 1,260 frames `F1`; the Lemma 1.1 census for them) and **rank-9 square decoders** | — | **OPEN** | §5.6, §5.2 (c) | + +Rows 11–15 are *beyond* what the headline needs: at `h = 9` row 1 already forces `B = B_d`, so the headline uses `B_d` only. Their role is to show that the dense-pairing +statements are not hiding a cheap non-dense escape *inside* the `h = 9` class; row 1 does that, and rows 11–13 give the independent every-`B` statements for the +(square, root-code) sub-class. + +## 3. Results + +### 3.1 Theorem R: the minimal-rank label table is unique (CHECKED, DRAT) + +**Theorem R.** Let `U ∈ {E8, P112, P104, P111}` (P104 as defined in §1, plus the class representatives below) and let `B ∈ F2^{v×v}` fit `U` with `rank_F2 B ≤ 9`. Then `B = B_d`. The same holds for `E7, E6` with `rank B ≤ 7`. (**Credit:** for P111 this is #620's and #1097's result; see the paragraph after the table.) +It holds in the general model `B = U Vᵀ` and in the symmetric model `B = P Pᵀ` (the physical one: `B_d = J + C` with `C` the alternating Gram of the even-weight label parts, +which is `PPᵀ` for odd-weight labels `P_t = 1 + e_t`). For P104 the statement is checked for `H4`'s `F1` (the frame of #968; its unit has 759 live 8-frames, so it lies in the 759 class) and one representative of each of the three invariant +classes (`759 / 767 / 801` live 8-frames) of frames disjoint from `F0`: **three classes, four instances** (`H4` is in the 759 class). **These classes are not proven to be single orbits**, and the backfill over all 1,260 frames was not finished, +so P104 is claimed only for #968's unit (`F1 = H4`); Theorem P's census was run on `H4` only, and Theorem R / Theorem P for every other P104 unit is **not claimed** (§6, OPEN §5.6). + +*Encoding (`sat/rigid.py`).* `B = U Vᵀ` with `U, V ∈ F2^{v×h}`; constraints `⟨U_t, V_t⟩ = 1`, `⟨U_t, V_s⟩ = 0` for every non-orthogonal ordered pair `t ≠ s`; mode `alt` adds the clause +"some orthogonal ordered pair (unordered in the symmetric model) has `B_ts = 0`"; mode `ctl` omits it. Products and parities are Tseitin variables with constant folding. +*Gauge (PROVEN).* Let `S` be a pairwise non-orthogonal `k`-clique (`k = 8` for E8, P112, P104, P111; 7 for E7; 5 for E6; pinned in `results.jsonl`, `c1.gauge` checks the clique). +Then `B[S,S] = I_k`, so `U[S]` has rank `k`; `GL(h)` acts by `U ↦ U g`, `V ↦ V g^{-T}`, preserves `B` and is transitive on rank-`k` `k`-tuples, so `U[S] = (e_1..e_k)` w.l.o.g. In the +symmetric model with `k = 8`, `h = 9`: `P[S]` is orthonormal, `W = span P[S]` is nondegenerate, `W^⊥ = ⟨w⟩` with `w·w = 1` (`det I_9 = det I_8 · w·w`), so an isometry in `O(9)` maps +`P[S]` to `(e_1..e_8)`; this needs `k ≥ h − 1`, which `registry()` asserts for every symmetric UNSAT instance. (For SAT instances the gauge is only a restriction, so a SAT verdict stands.) +Rank `≤ h` is equivalent to a factorisation with `h` columns, so UNSAT of `alt` says every fitting `B` of rank `≤ h` is dense. (The general model contains the symmetric one as a sub-model, so general-model UNSAT already implies the symmetric statement and, for E7 and E6 where only the general model is run, covers the physical table; the symmetric runs are redundant but consistent.) + +| group (`results.jsonl`) | instances | verdict | check | +|---|---|---|---| +| `alt`, minimal rank | P112, E8, P104 (H4, 759, 767, 801), P111, each sym + gen (14 instances); E7, E6 gen at `h = 7` (2) | **UNSAT**, every proof verified by drat-trim (binary DRAT, kissat 4.0.4) | `c1.status`, `c1.resolve`; four proofs shipped (`proofs/`, sym P112 / E8 / P104-H4 / P111) | +| `ctl`, no extra clause | P112, E8, P104-H4, P111 (sym + gen), E7, E6 | **SAT**; every decoded model is a fitting matrix with 0 non-dense orthogonal entries (model is `B_d`) | `c1.ctl` | +| negative controls | `SUB20`, `SUB40` (the gauge clique plus the first 20 / 40 other lines of P112, `h = 9`, gen); P112 at `h = 10` (sym 59 of 3304, gen 89 of 6608 orthogonal pairs with `B_ts = 0`) | **SAT**: a non-dense fitting `B` exists | `c1.neg` | + +(The encoding is the one of the author's working card `STRAYS/rigid2.py`; the clique choice here is deterministic and pinned, so the CNFs differ from the card's files, with the +same verdicts. The `h = 10` row shows the instance family does detect non-rigidity; the `SUB` rows show the same at `h = 9` on sub-units.) + +**Prior work on P111 and one-sided P112 rigidity (credit; this changes the novelty of Theorem R).** #620 (GamingPuzzled, open) found by SAT, without proof logs, that the rank-9 fitting matrix of its archived P111 pattern is unique; #1097 (bitplane, merged 2026-10-13) proof-checked this with LRAT: "fitting rank ≤ 9, unequal to `B0`" is UNSAT in the general (asymmetric) model with an 8-port gauge. That is the P111 row of Theorem R, and it is **theirs**. *Which set?* #1097's object is the archived sorted Hamming-root order of #620 with indices `39, 52, 57, 71, 76, 78, 103, 109, 114` deleted (`encoding.py:9`); #589's 111 lines (`data/p111_lines.json`) are a different 111-subset of the same 120 Hamming-coordinate lines: 104 lines in common (up to sign), 7 on each side only (a one-off comparison against #1097's retained `e8units.hamming_e8`, not part of `verify.sh`; whether the two sets are `W(E8)`-equivalent was not checked). So Theorem R here **re-derives** the P111 statement on #589's puncture, in both the general and the symmetric model, with DRAT, and does not rely on #1097. #1815 (jmbarrancoml, merged 2026-10-14) is the one-sided predecessor for P112: with the two column spaces fixed, unit diagonals and the required zeros force `N = RRᵀ` and `B = UUᵀ`; Theorem R removes the column-space hypothesis on `B` (every fitting `B` of rank `≤ 9` is dense). What is new here is Theorem R on E8, P112, P104 (#968's unit and representatives), E7 and E6. + +**Corollary R1 (PROVEN from Theorem R and the theorems of §3.2 / rows 2).** In the frontier format (one `F2^9` table, `F2^7` for E7), every term pairs through the dense `B_d`. Hence +every statement made below for the dense pairing holds for every hosted decoder, and *the overcomplete "any `B`" slack* (orthogonal-normal blocks of fitting minrank 5–6; +orthogonal E8 root–root terms of rank 6) *does not exist at `h = 9`*: it needs a non-dense `B`, hence `h ≥ 10`. +**Corollary R2 (two-call tables, PROVEN).** If a two-call batch uses one `F2^9` and each call's block fits P112, the labels are `(P, PΦ)` with `Φ ∈ O(9, F2)` (general model: +`(U, V), (UΦ, VΦ^{-T})`, `Φ ∈ GL(9)`). *Proof.* By Theorem R both blocks equal `B_d`, of rank 9. `P_1P_1ᵀ = P_2P_2ᵀ` has rank 9, so `P_1, P_2` have the same column space and `P_2 = P_1Φ`; +then `P_1(ΦΦᵀ − I)P_1ᵀ = 0` with `P_1` of full column rank gives `ΦΦᵀ = I`. ∎ + +### 3.2 Theorem P: P112 ≥ 64 in every rank-8 realisation (PROVEN from CHECKED) + +Setting (#2277 §5). `K` is any field (the swarm uses `Q` / `C`; Lemma 1.1 and Theorem P are field-independent). Let `M` be a realisation of rank exactly `T = 8` (the minimum), `M = P₀ N Q₀ᵀ`, `P₀, Q₀ ∈ K^{v×8}` bases of `col M`, `col Mᵀ`, `N ∈ GL_8`; `π(t)` is row `t` of `P₀`. +Consider decoders with `p_j = P₀x_j`, `q_j = Q₀y_j` (every square decoder `m = 8` is of this form; for `m > 8` this is the hypothesis `col P ⊆ col M`). Then `N = Σ_j x_j y_jᵀ`, so at least 8 terms +are nonzero. + +**Lemma 3.1 (support-only bound; #2277 Lemma 5.1, restated).** For `R, A ⊆ [v]`, `rank_F2 B_d[R, A]` depends only on the subspaces `Def(R), Def(A) ⊆ C`, and `≥ h − δ(R) − δ(A)`. +*Proof.* Take `B_d = X Yᵀ`, `X = Y ∈ F2^{v×h}` of full column rank (`B_d` symmetric), `col X = C`. `ker X_R ≅ Def(R)` via `w = Xz`, so `rank X_R = h − δ(R)`, and the row space of `X_R` is +the annihilator of `ker X_R`, i.e. determined by `Def(R)`; likewise for `A`. Sylvester gives the bound. ∎ +**Lemma 3.2 (Theorem 4′; #2277 §5, restated).** `cost ≥ Σ_{j : x_j, y_j ≠ 0} (h − δ(R(x_j)) − δ(A(y_j)))`, with `R(x) = {t : π(t)·x ≠ 0}`. If `w ∈ Def(R(x))` then `π(supp w) ⊆ x^⊥`: the class +`supp w` is *deficient* (its `π`-image lies in a hyperplane). *Proof.* Lemma 3.1 and the count of nonzero terms. ∎ + +**Lemma 1.1 (support propagation; working card `IDEAL3` §1.1, PROVEN here).** Let `E` be an 8-frame and write a functional `h*` that kills `π(O)` as `h* = Σ_{e ∈ E} c_e σ(e)`, where `σ(e) = N κ(e)ᵀ`, `κ(e)` = row `e` of `Q₀` +(`π(e)·σ(e′) = M_{ee′}`: for a frame `E` the `σ(e)` are the dual basis of `{π(e)}` up to the nonzero scalars `M_ee`, and `σ(e)` depends on the line only). (i) `c_e = 0` for `e ∈ E ∩ O`: `h*(π(e)) = c_e M_ee`. (ii) For every 8-frame `F`: `supp_E(c) ⊆ (E ∖ O) ∩ ⋃_{g ∈ F∖O} N̄(g)`, +`N̄(x) = {x} ∪ {lines non-orthogonal to x}`. *Proof.* (i) is the displayed identity. For (ii), applying (i) to `F` gives `h* ∈ span σ(F∖O)`; expanding `σ(g)` in the dual basis of `E`, +`σ(g) = Σ_e (M_eg/M_ee) σ(e)`, whose `E`-support lies in `{e : M_eg ≠ 0} ⊆ N̄(g) ∩ E` (`M_eg = 0` for orthogonal `e ≠ g`). ∎ +*Corollary.* If iterating (ii) over all frames ends with some `S_E = ∅`, the class `O` is non-deficient in **every** rank-8 realisation. + +**Census (CHECKED, `c2`).** For every one of the `2^h − 1` classes: D4 (3 frames), D6 (15), E7 (135), E8 (2025): **all** certified. P112 (1260 frames): **exactly 8 classes uncertified** (the +8 sets of 56 live lines orthogonal to one removed root; each has `rank_Q = 7`, i.e. is Gram-deficient, so the certificate is sharp); P104 (`H4`'s unit, 759 frames; the census was run on this unit only): 16 uncertified (sets of 52), also +exactly the Gram-deficient ones. In both units the uncertified classes contain **no 2-dimensional subspace** (`a ⊕ b` is never one). For each uncertified `O`, the classes with support inside `O` are +`{O}` alone (`c2.def`), so `Def(V∖O) = ⟨w_O⟩` and the single-deficiency rank is `rank B_d[V∖O, V] = 8`; over all ordered pairs of P112 survivors `rank B_d[V∖O, V∖O′] = 8` (64 of 64), and +for P104 the values are `8` (192) and `7` (64). + +**Theorem P (PROVEN from the CHECKED census).** For P112, every rank-8 realisation `M`, every decoder with `col P ⊆ col M`, `col Q ⊆ row M` (all square decoders, any `m` otherwise), dense `B`: +**cost ≥ 64**, attained by the removed-frame coordinate decoder (`c5`). For P104 = #968's unit (`F1 = H4`; the census of Lemma 1.1 is run on this unit only): **cost ≥ 56**, attained (`c5`). +*Proof.* A nonzero `w ∈ Def(R(x_j))` is a deficient class (Lemma 3.2), hence one of the 8 (16) survivors (Corollary of Lemma 1.1; the census). Survivors contain no 2-dimensional subspace, so +`δ(R(x_j)), δ(A(y_j)) ≤ 1`, and by Lemma 3.1 and the census the term's rank is `9` (no deficiency), `8` (one) or, for both deficient, the pair rank: `8` in P112, `≥ 7` in P104. So every nonzero +term costs `≥ 8` (P112), `≥ 7` (P104); at least 8 terms are nonzero. ∎ +For E8 (72) and E7 (49) no class is deficient (census), so every term costs `h`; with at least `T` terms the floors are `8·9 = 72`, `7·7 = 49`. (#2277 Cor. 5.3 gives all of E8 72, E7 49, D6 30, D4 12, P104 56 +via the weaker clause-(c) certificate; its P112 value was 56, and "P112 ≥ 64 for every realisation" was listed there as open — Theorem P closes it.) **Sharpness (CHECKED, `c5`):** +frame decoders with `M = Gram` cost 72 (E8), 49 (E7), 30 (D6), 12 (D4); the removed-frame decoder of P112 costs 64; the eight frame-pair terms of #968 cost 56 on P104. + +### 3.3 Few terms, outside `col M`, #1180 and the co-star (PROVEN / CHECKED) + +*(working card `STRAYS-MASK` §1–§3; dense `B`, which at `h = 9` is every `B` by Theorem R)* +**1.1 Free-term absorption.** A term with `B[R_j, A_j] = 0` contributes `0` to the cost and nothing on the diagonal or on orthogonal pairs, so the paid part `N = Σ_{paid} p_j q_jᵀ` is again a realisation +of the same pattern with the same cost; w.l.o.g. every term is paid. +**1.2 Merge lemma (#1224 Lemma D, both sides).** If `q_i = c q_k` then `p_i q_iᵀ + p_k q_kᵀ = (c p_i + p_k) q_kᵀ`; the new row support lies in `R_i ∪ R_k`, and +`rank B[R_i ∪ R_k, A_k] ≤ rank B[R_i, A_k] + rank B[R_k, A_k]` (`A_i = A_k`). The merge does not raise the cost for **any** `B`. W.l.o.g. no two row normals and no two column normals are proportional. +**1.3 `m ≤ 8`.** `rank N ≥ α_⊥ = 8`, so `m ≥ 8`; `m = 8 = rank N` is the square case with factors in `col N / row N` (every factor lies in the column space of a rank-8 matrix with 8 terms), so Theorem P +gives `≥ 64` (P112), `≥ 56` (P104, #968's unit), **whatever the factors, the realisation or the masking**. This covers every component of #1213, not only the connected one. +**1.4 `m = 9` trichotomy.** `a = rank P = ρ + s`, `b = rank Q = ρ + t`; Sylvester: `ρ ≥ a + b − 9`, so `s + t ≤ 9 − ρ` with `ρ = rank N ∈ {8, 9}`. (a) `ρ = 8`, `s = t = 0`: Theorem P; (b) `ρ = 8`, `s + t = 1`: §5.2 (b) (#1180 / #1224's residual class); (c) `ρ = 9`: square in a rank-9 realisation (OPEN, §5.2 (c)). +**#1180's example (CHECKED, `c4`).** Its nine-term identity `D Tᵀ = 8·Gram` holds on all `112 × 112` entries (`ex1180`-form: `t_1 = R_0 + z`, outside terms `(t_1, R_0)` and `(−z, R_0)`) and its term ranks under `B_d` +are `[8]×8 + [1]`, **total 65**. Its two outside-`col M` terms share the column vector `R_0`: by the merge lemma (any `B`) the example costs at least the removed-frame decoder, whose terms are the blocks `B[N(f), N(f)]`, +each of fitting minrank 8 for every `B` (`c6`, §3.5), so **after merging the two outside terms it is the removed-frame decoder, which costs ≥ 64 for every admissible `B` by E1a**: the "outside `col M`" in #1180's example is only a split of a proportional pair. +**Co-star (CHECKED, `c4`; PROVEN consequence over any field of characteristic 0, the scope of the working card `STRAYS-MASK` Theorem 3.2).** *Definitions.* The **dead set** of a term `p qᵀ` on the row side is `{t : p_t = 0}` (the lines the term does not touch), on the column side `{t : q_t = 0}`; a set of lines is **spanning** if its images `π(t)` span `K^8` in every rank-8 realisation. For each of the 120 root lines `α`, the dead set `V ∖ S_α` (`S_α` = live lines orthogonal to `α`, plus `α` if live; `|S_α| = 60` for the 112 live `α`, 56 for the 8 removed) is certified spanning in every +rank-8 realisation (Lemma 1.1). *Lemma (inside dead sets; STRAYS-MASK Lemma 3.1).* If a term of a rank-8 realisation has its column factor in `row M` (`q = Q₀ȳ`, `ȳ ≠ 0`, an "inside" side), its dead set `{t : κ(t)·ȳ = 0}` has images in the hyperplane `ȳ^⊥`, so it is not spanning and cannot contain `V ∖ S_α` (rows by transposition: the pattern is symmetric). *Consequence.* Let a nine-term masked co-star decoder (philippeVV, Discussion 1267; every term's supports inside co-stars, arbitrary coefficients, zeros, any `k`) have `ρ` = the rank of the full nine-term sum. If a term is free, or two row or two column normals are proportional, the paid or merged part has `≤ 8` terms, hence is square, and Theorem P gives `≥ 64` outright. Otherwise `ρ = 8` would give `s + t ≤ 1` (§1.4), so one side, say `t = 0`, is inside for all nine terms, contradicting the Lemma; `ρ ≥ 10 > m` is impossible. So `ρ = 9` and the decoder is a square +biorthogonal decoder of a **rank-9** realisation: cases (a), (b) of §1.4 are empty for co-stars. This pins the open `k = 7/8/9` families to §5.2 (c); it does not close them. Every survivor class contains an +orthogonal 7-clique and no 8-clique (`c4.survclique`), so its killing functional is unique up to scale in every rank-8 realisation. + +### 3.4 Batching: independent calls on one `F2^9` table (PROVEN from CHECKED) + +*(working card `STRAYS-BATCH`; the model is #1714's: `k` independent P112 calls, `C = I_k`, cross-call blocks of the requested matrix are 0.)* The requested matrix is `M_1 ⊕ … ⊕ M_k`, `M_c = P_cQ_cᵀ` a rank-8 +realisation (Gram: `P_c = Q_c = X`). A decoder is `Σ_j d_j t_jᵀ = M` with `d_j = (P_ca_j^{(c)})_c`, `t_j = (Q_cc_j^{(c)})_c`; exactness is `A Cᵀ = I_{8k}`. One label table on all `112k` lines; each call's block fits P112, +so by Theorem R it is dense and by Corollary R2 call `c` carries labels `PΦ_c`. The charge of term `j` is `rank_F2` of the pairing between the span of the output labels of its union support `S_j` and the span of the input +labels of `T_j` (the cheapest charge, #1714; every costlier charge is covered). **Premises (CHECKED, `c3`; they are Lemma 1.1's sharpness in label language):** +(P1) in any rank-8 realisation the support of `P_c x`, `x ≠ 0`, has label span `V` (dim 9) or one of 8 hyperplanes `H_i = w_i^⊥` (it avoids the deficient class `O_i`, the live lines orthogonal to `f_i`); the survivors contain no 2-dimensional +subspace, so no support avoids two classes and every span has dim ≥ 8. (P2) `b(w_i, w_j) = 1` for all 64 ordered pairs, and `ρ(N(f_i), N(f_j)) = 8` for all 64 pairs, `i = j` included. +**Theorem B (`k = 2`, PROVEN).** For every chart `Φ` (`O(9)` symmetric or `GL(9)` general) every decoder satisfies `Σ_j cost_j ≥ 128 + 3t`, `t = #{j : cost_j = 7}`; the minimum is 128 (two coordinate decoders), only at `t = 0`. +*Step 1.* Union spans have dim ≥ 8 (P1), so cost `≥ 8 + 8 − 9 = 7`; at cost 7 both spans are hyperplanes. *Step 2 (rank-7 terms are pure cross-call).* If `a_j` has a nonzero part in call `c`, that part's span (dim ≥ 8) lies in the output span `H` +of dim 8, hence equals it, so `H` is a call-`c` output hyperplane; likewise `H′` is the input hyperplane of every call where `c_j` is nonzero. If one call had both parts nonzero, `(H, H′)` would be an output / input hyperplane pair of +that call, which pairs at rank 8 by (P2). So `calls(a_j) ∩ calls(c_j) = ∅`. *Step 3 (rank count).* With `N = Σ_{cost 7} a_jc_jᵀ = [[0, N₁₂],[N₂₁, 0]]`, `t₁₂ + t₂₁ = t`, `rank N₁₂ ≤ t₁₂`, `rank N₂₁ ≤ t₂₁`; the other active terms +cost ≥ 8 and sum to `I₁₆ − N`, so there are at least `rank(I − N) = 8 + rank(I₈ − N₂₁N₁₂) = 16 − d` of them, `d = dim ker(I₈ − N₂₁N₁₂) ≤ min(t₁₂, t₂₁) ≤ t/2`. So `Σ cost ≥ 7t + 8(16 − d) ≥ 128 + 7t − 8min(t₁₂,t₂₁) ≥ 128 + 3t`. ∎ +**The counting floor 120 is not the truth** (`c3.chart.rank7`): there is a chart `Φ ∈ O(9, F2)` (shipped in `data/chart_rank7.json`) for which all 64 cross pairs (call-1 support `N(f_i)`, call-2 support `N(f_k)`) pair at rank 7, while within a call the same pairings have rank 8. +Per-term counting alone gives 120; the extra 8 units come from the rank argument. +**Theorem Bk (`k ≥ 3`, symmetric model, PROVEN).** Charts `Φ_c ∈ O(9, F2)`, any rank-8 realisations, any `m`: `Σ cost ≥ 64k + 3t`. *Proof.* Steps 1–2 verbatim. Every hyperplane is `n^⊥` for a unique normal; slot `(c,i)` has normal `Φ_cw_i`, and +`b(n, n) = 1` by (P2). Partition the `8k` slots into classes by normal (at most one slot per call). A rank-7 term has `b(n, n′) = 0`, so `n ≠ n′`; `a_j` is supported in the class of `n`, `c_j` in the class of `n′`. For `x ∈ Z^P_{c,i}`, `y ∈ Z^Q_{c,i′}` (`Z^P_{c,i}` := the coefficient vectors `x` whose call-`c` output support `supp P_c x` avoids `O_i`, i.e. lies in the hyperplane slot `(c,i)` with normal `Φ_c w_i`; `Z^Q_{c,i′}` := the same on the input side, `supp Q_c y` avoiding `O_{i′}`), +`i ≠ i′`: `yᵀx = Σ_{e ∈ E}(y·q_c(e))(p_c(e)·x)/M_ee` over any 8-frame `E` of live lines; a summand needs `e ∈ N(f_i) ∩ N(f_{i′})`, and `c3.framelemma` finds for every `i < i′` a frame with `E ∩ N(f_i) ∩ N(f_{i′}) = ∅`, so `yᵀx = 0`. Hence +`K = CᵀA` over the rank-7 terms has `K_ij ≠ 0` only if `class(c_i) = class(a_j)`, `K_ii = 0`. *Lemma K:* `corank(I_{8k} − ACᵀ) = corank(I_t − K) ≤ t/2` (order the classes; the larger of `{j : α(j) < β(j)}`, `{j : α(j) > β(j)}` has size `≥ t/2`, along `K`-arcs inside it the class strictly +moves, so `K[S,S]` is nilpotent up to a permutation and `I − K[S,S]` is invertible). So `Σ cost ≥ 7t + 8(8k − t/2) = 64k + 3t`. ∎ (Every batch with exactly `8k` terms needs no factor hypothesis, #1714 §5.) +**Credit.** #2294 (thakrarsagar) proves the `k = 2`, `O(9)`, Gram-root-code core first (its Theorem A: `≥ 128 + 6μ + 7(r_01 + r_10 − 2μ)`, `μ = min(r_01, r_10)`) and independently finds that some isometric charts make all 64 exceptional pairs rank 7; the derivation above was done +before #2294 was read and is the same inequality. Beyond #2294: `GL(9)` charts of the general factor model, any rank-8 realisation (the Theorem P setting), and `k ≥ 3` in the symmetric model. + +### 3.5 One coordinate block under any `B`; punctures (CHECKED) + +**EDGE E1a (`c6`, 8 DRAT).** For each removed root `f` (all 8), `N(f)` is the 56-line support of the coordinate term. *Every* admissible `B` has `rank_F2 B[N(f), N(f)] ≥ 8`: the instance "`rank ≤ 7`" (gauge: the largest non-orthogonal +clique in `N(f)`, 7 lines) is UNSAT with a drat-trim-verified proof (8 proofs of about 70 kB each; one shipped), and "`rank ≤ 8`" is SAT (the dense block). So no choice of `B` lowers a coordinate term of the removed-frame decoder, and with +`m ≥ 8` the removed-frame decoder costs `≥ 64` for every `B`. (Together with the merge lemma this is the "shape ≥ 64 for every `B`" of §3.3.) `ω_non(N(f)) = 7` and `α_⊥(N(f)) = 4` are recomputed in `c6`. +**Punctures (NEWWORD C4.1).** A puncture `D ⊆ N(f)` (lines deleted from the support) that brings `rank B[R∖D, R∖D]` to `≤ 8 − s` for some admissible `B` must hit every `(9 − s)`-clique of pairwise non-orthogonal lines (a clique `C` has `B[C,C] = I` +for every admissible `B`). `f(s)` := the least size of such a hitting set. Proven bounds: `f(2) ≥ 14` (the 576 7-cliques cannot be hit by 13 lines; DRAT), `f(6) ≥ 46` (the largest triangle-free kept set has 10 lines: 11 is UNSAT, DRAT; the working card +had 15 and `≥ 42`), `f(7) ≥ 52` (`α_⊥(N(f)) = 4`, exact), `f(8) = 56`. Recorded (kissat UNSAT, working-card DRAT; `HIT_FULL=1` re-solves them here without a proof): `f(3) ≥ 23`, `f(4) ≥ 32`, `f(5) ≥ 38` (the card's `s = 1` value, `z ≥ 8`, is EDGE's separate +`killgauge` SAT result and is not reproduced here). The ratios `s/f(s)` are `.1429, .130, .125, .132, .130, .135, .143` (`s = 2..8`; `c6.f` prints the proven ones): **no computed `s ∈ {2..8}` exceeds 1/7** (`s = 3–5` RECORDED, `s = 1` not computed here). The puncture-saving statement +("punctured coordinate decoders tie P112 at best under any global label table") is therefore the clique-hitting bound plus the card's price model (break-even `s/f(s) > .1441`, margin under 1%, inside the price model's error): the **bound** is CHECKED, the +**pricing consequence** is RECORDED and is not claimed as a theorem. + +### 3.6 Slow instances + +`HIT_FULL=1` re-solves `hit_k6_z22`, `hit_k5_z31`, `hit_k4_z37` (the `s = 3, 4, 5` bounds) with kissat only; recorded (kissat 4.0.4, UNSAT, no proof; wall time under machine load): `hit_k6_z22` 102 s, `hit_k5_z31` 227 s, `hit_k4_z37` 9 s, i.e. `f(3) ≥ 23`, `f(4) ≥ 32`, `f(5) ≥ 38`; their results are in `sat/results_misc.jsonl` (flagged `slow`) and re-derived by `HIT_FULL=1`. No DRAT is checked for these here (the proofs are 100–200 MB). + +### 3.7 The bit side: P111 (rigidity CHECKED, prior work of #620 / #1097; "≥ 63" RECORDED) + +**P111 is rigid at `h = 9` (CHECKED, `c1`, `c7`; prior work: #620 by SAT, #1097 LRAT-checked in the general model, see §3.1).** On #589's set, which is not #1097's (§3.1), the statement is re-derived here in two models. The 111 live lines of #589's word (`data/p111_lines.json`; the source file's sha256 is pinned in `SOURCES.json` and equals the entry of `research/e8-bit-p111-tuned/MANIFEST.sha256` on `main`) are a sub-configuration of an E8 line system +(`c7`); `alt` is UNSAT in the symmetric and the general model (drat-trim verified; the symmetric proof is shipped), the controls are SAT with the dense `B`. So at `h = 9` the bit side is also a dense-`B` question. +**RECORDED (not reproduced here): P111 set-decoders with at most 12 retained totals cost ≥ 63.** The working card `STRAYS-BIT` proves it premise-free from the full census of the E8 line matroid's flats (ranks 1–6: `120 / 4,900 / 85,680 / 661,542 / 2,091,600 / 2,221,780`, maximal line counts `1, 3, 6, 12, 20, 36`; +the rank-6 flats with ≥ 24 lines are exactly the 4,900 sets `a^⊥ ∩ b^⊥`), `G ≥ 12` (no live code word is covered by rank-≤ 6 sets of total rank ≤ 11, exhaustive) and an induction `D(Λ) ≥ r_k + D(Λ ∩ a_k^⊥)`. That enumeration needs 378 s with numpy and was **not ported to the standard library**; this package +does not verify it and no other statement here uses it. It extends #757 / #761 (63 optimal on the shipped P111 for 9, 10 and 11+ label terms) and agrees with #620 (63 for P111; exact SAT, cost ≤ 62 UNSAT, 8 totals UNSAT; also #1097's rank-9 uniqueness above). +**RECORDED (another agent's working card, `STRAYS-BIT` closure 2; not re-run and not reviewed here): P111 word-priced bit decoders with 13 totals cost ≥ 63.** In the word's pricing (the set-decoder model: retained totals are arbitrary live-line sets, each priced by the rank of its span) the card reports exact rational Farkas certificates for all 132 code classes of excess 4 (re-checked there with `Fraction`s only), on top of `G(3) ≥ 15` and `G(4) ≥ 14` (exhaustive: no ≤ 4-set low cover of total rank ≤ 13, no 3-set low cover of total rank ≤ 14), and `P110` (P111 minus line 38) `≥ 63` for `n ≤ 12` totals, which is P110's whole hosting window (`R = 439 ≤ 4·110`). The card also reports rigidity at `h = 9` on P110 (controls SAT). The card's status for **14 totals** is *in progress*: of the 51,973 excess-5 classes, 51,233 have Farkas certificates and 735 are integer-only (kissat UNSAT, drat-trim verified for the 55 classes with `κ = 6, 7`; `κ = 8, 9` pending, no final count). So: **13 totals RECORDED closed; 14 totals in progress, OPEN** (§5.3). Not covered by the card: decoders outside the set-decoder model (a retained total charged below its source span's rank, i.e. a projected or asymmetric copy) and `≥ 15` totals (excluded by hosting, `R ≤ 4v`). + +### 3.8 Recorded results of the working cards (not re-run) + +* **E8□ (IDEAL3 §4.6).** Every square E8 root-code decoder costs `≥ 72` for **every** `B` (4,022 non-orthogonal pair classes, each with fitting minrank `≥ 9`); the card's `census/e8drat.out` ends "DONE 4022 classes; not verified: 0". The proof logs (139 MB) are not shipped. Not needed at `h = 9`. +* **FL(4) (IDEAL3 §2).** The Frame Lemma for `n ≤ 4` (PROVEN modulo a 144-class support-level enumeration) gives `D4 ≥ 12` for every decoder, every realisation, every `m`, every `B`. Lemmas 4.1 (maximal-pair reduction) and 4.2 (`k`-term averaging) of IDEAL3 §4 are the shared-`B` reductions used by E8□ and the E7 statement below. +* **E7 (STRAYS S4).** Square maximal-normal root-code decoders cost `≥ 49` for every `B`: no decoder has ≥ 5 root–root partners (256 bad partners, 16 compatible 5-sets, 0 six-sets, 0 completions; Sonnet enumeration, independently re-audited). The 49 *on E7's own rank-7 table*, the case in the headline, needs only Theorem R at `h = 7` (CHECKED) and #2277 Cor. 5.3. +* **P104 delivery (NEWWORD C4.2).** For #968's P104 frame-pair decoder (cost 56, rank-7 terms) no global admissible label table in `F2^9`, with any per-term gather orientation, allows helper-free nested delivery (24 DRAT-verified instances; pairs `(0,1), (0,4), (1,4)`, same orientation, both directions; the graph of class-1 pairs is triangle-free and 3-regular on the 8 terms, so among any three mutually adjacent terms two share an orientation). Extends EDGE-B's Delivery Lemma from the dense table to every table. Escape: `h > 9` (a P104 at `h = 10` already loses to P112 at `h = 9` on the format ceiling: `3.931e-3 < 3.995e-3`). +* **PUNCT2, `p = 25..44` (NEWWORD c5).** Model C (dense pairing, column-space factors): at the 1,323 near-miss unions the bilinear forms vanishing on orthogonal live pairs have nullity 1 (`N ∝ Gram`), so every 8-term decoder is biorthogonal; for `m ≥ 9` merging and PUNCT2's deficiency census (`d ≤ 2`) give cost `≥ 5m ≥ 45 > 40.24` (`p = 44`) and `≥ 7m − 12 ≥ 51 > 44.47` (`p = 36`); rigidity at the two representatives is DRAT-verified and the 1,323 unions form two `W(E8)` orbits. So no decoder in the class beats P102's 54/102; the "+13–15%" near-miss points were relaxation artefacts. Depends on PUNCT2's census inputs, which are not shipped. +* **E7 frame decoders (NEWWORD c3).** No E7 root-line decoder with `m = 8` and every cross `⟨y_i, x_j⟩ = ±1`; best type mixes cost `≥ 39` on `≤ 50` ports (`x ≥ .78`), none beats P56's `x = .75` even with per-term-optimal `B` and free delivery (scope: crosses in `{0, ±1}`, root-line normals). +* **EDGE (coordinate block, minrank 8 every `B`):** CHECKED in §3.5. EDGE-B's Delivery Lemma (dense table) is the one C4.2 extends; not re-run. + +## 4. How to cite this + +"For every decoder hosted on one `F2^9` label table (Theorem R: the pairing is the dense one), with factors in the column space of a rank-8 realisation and any number of terms (Theorem P; #2228 Thm 4 for the root code), the copy costs of the E8-family units are exactly +P112 64, E8 72, P104 56 (#968's unit, `F1 = H4`; E7 49 on rank-7 tables), and `k` independent P112 calls cost `≥ 64k` (`= 128` for `k = 2`; symmetric / physical table for `k ≥ 3`, `GL` charts with `k ≥ 3` are open, §5.5) (Theorem B, Bk; #2294). Remaining escapes: tables of rank `≥ 10`, rank-9 square decoders and overcomplete factors outside `col M` with `≥ 9` terms, the bit window of 14 totals (13 is RECORDED closed), puncture windows `p ≥ 45`, batches of `≥ 17` terms outside `col M`, other P104 units." + +## 5. OPEN (each leaves class X; priced where a price exists; none constructed) + + +### 5.1 Label tables of rank `h ≥ 10` + +Non-dense fitting tables exist at rank 10 (`c1.neg`: `P112_sym_h10_alt`, `P112_gen_h10_alt` are SAT). *Price* (working card `STRAYS/PRICE-P112-H10.md`, a Sonnet helper's pricing, not a theorem; it reproduces the P104 rows of NEWWORD `c4/PRICE-H10.md`): a 112-port unit at +`h = 10` must reach **cost ≤ 59 (−5 units)** to tie P112-at-`h = 9`, before any helper growth; at `h = 11`, `≤ 55`. **Status: undecided.** Per-term floors under a global rank-10 cap were probed on the first orthogonal-normal class (free-`B` minrank 6) and timed out at 20 minutes for cap 7 at both `h = 10` and `h = 12`. Per-term `≥ 8` at rank `≤ 10` would close `h = 10` (since `m ≥ 8`). +For E8 overcomplete under any `B`: non-orthogonal terms `≥ 9`, other orthogonal terms `≥ 8`, orthogonal root–root terms are 6; counting alone allows `m ∈ {9, 10, 11}` below 72; the `m = 9` root-normal family is jointly `≥ 65` (EDGE). Another agent works this (working card `STRAYS-H10`). + + + +### 5.2 Factors outside `col M`, `m ≥ 9` + +Proven (§3.3): `m ≤ 8` ⇒ `≥ 64` / 56 for any factors and any realisation; `m = 9`: `ρ = rank(paid part) ∈ {8, 9}`, `s + t ≤ 9 − ρ`. **Open:** (b) `ρ = 8` with one factor outside `col M` (#1180's residual class; necessary conditions proven, 42k of 45k class pairs uncertified at support level); +(c) `ρ = 9`, square in a rank-9 realisation (needs a rank-9 analogue of Lemma 1.1, `Σδ ≥ 18` to reach ≤ 63; contains every philippeVV co-star `k = 7/8/9` family, §3.3); (d) `m ≥ 10` (budget `s + t ≤ m − ρ`, #1633; the average term rank would have to drop below 6.4). All under dense `B`, which at `h = 9` is every `B`. (working card `STRAYS-MASK`; `STRAYS-MASK2` continues.) + + + +### 5.3 Bit window of 14 totals (13 totals: RECORDED closed) + +P111 set-decoders with `14` retained totals: the `≤ 12` and `13`-total bounds are RECORDED (§3.7); the 14-total finite per-code check is still running in the working card (`STRAYS-BIT`, no final count), so it stays OPEN. `≥ 15` totals are excluded by hosting in the current word (`R ≤ 4v`). + + + +### 5.4 Puncture windows `p ≥ 45` + +PUNCT2's exclusion covers `p = 25..44` (RECORDED, §3.8). For `45 ≤ p ≤ 112`: is `cost ≥ (54/102)(120 − p)` in Model C (dense or rank-≤ 9 `B`), column-space factors, any `m`? The census of `d ≥ 3` kernels and non-root flats beyond 44 has not been run; the `T²` law (#2125, argued) predicts no gain for `v ≲ 64`. (working card `PUNCT3`.) + + + +### 5.5 Batches outside class X + +`m ≥ 17` terms with factors outside `col M` (every 16-term batch needs no factor hypothesis, #1714 §5); `GL(9)` charts with `k ≥ 3` (mathematical only: the physical table is symmetric; the obstruction is a possible loop in the component quotient of the output / input hyperplane graph, so +Lemma K's ordering argument may fail; the bound needs only `corank(I_t − K) ≤ 7t/8`); `h ≥ 10` joint tables (pure cross terms may cost `< 7`; #2294 Props B–D cover cross blocks that factor through the call labels as bilinear forms); correlated demands (`C ≠ I`, #1714 §4); mixed-unit batches; a second call on a different unit. + + + +### 5.6 Other P104 units; rank-9 square decoders + +Theorem R and the Lemma 1.1 census (Theorem P) are run for P104 = #968's unit (`F1 = H4`) only, with Theorem R also at one representative of each of the classes `759 / 767 / 801`. **Not claimed:** Theorem R for all 1,260 frames `F1`, the census and Theorem P for any other P104 unit (the swarm has many, e.g. #1399's 896 admissible ones). The rank-9 square case is §5.2 (c). + + +**Out of scope by construction:** non-E8 units (BIGTHEORY: no-go only for `h ≤ 13`; #2222-type large-`h` units are compensation-bound), and all word-side overheads (helpers, transport, packing). 1337isnot1337's rank-16 child-merging screen (Discussion 1166, `< 0.21%` even at zero overhead) is a word-side route, not a decoder saving. + +## 6. What was not reproduced + +See §3.5 (steps `s = 3, 4, 5` of the puncture table; `s = 1` not computed), §3.7 (the 12- and 13-total bit bounds) and §3.8: every RECORDED item is a result of the working cards that this package neither re-runs nor depends on for rows 1–10 of §2, with the single exception noted in §3.5 (the pricing +consequence of the puncture table). Differences between the working cards and this package, none of them a failed reproduction: the SAT instances are regenerated with a deterministic gauge clique (the card's files differ, the verdicts agree); `f(6)` is `≥ 46` here (card: `≥ 42` from a looser 15-set instance); the `h = 10` witnesses differ from the card's +(non-dense in 59 / 89 orthogonal entries rather than 171 / 381); the card's "rank(B − B_dense) = 8" for the `h = 10` witness is not claimed. Not claimed: Theorem R for all 1260 frames of P104 (class representatives only), and Theorem P or any P104 statement for units other than #968's (`F1 = H4`); the rank-9 square case (§5.2 (c)); novelty of the P111 row of Theorem R (#620 / #1097). + +## 7. Credits and related PRs + +Our PRs: #1590 (model, merged), #2111, #2125, #2162 (Lemma CR2 / Theorem B2; navinor's independent audit #2293 passes our CR2/B2 on 58 instances), #2228 (root-code floors Thm 4, dense polar law), #2244, #2277 (Theorem 4′, frame-intersection certificate, Cor. 5.3). Swarm: #968 (frame-pair P104 decoder), #1180 (outside-code nine-term example), #1212 / #1213 / #1236 (rank-8 rigidity, components, root-star supports), #1744 (global fitting rank ≥ 9 on P112), #757 / #761 (P111 63), #620 (GamingPuzzled; P111 rank-9 uniqueness and 63, found by SAT) and #1097 (bitplane, merged; LRAT proof of that uniqueness in the general model, on the archived Hamming order, not on #589's set), #1815 (jmbarrancoml, merged; one-sided P112 fitting rigidity), #1331 (Arham-Tahir64, merged; the coordinate COPY 64 is not improved by one free rectangle; related to E1a and the punctures), #1249 (bbMisk, merged; independent verification of #1236's 64), #717 (ours; term cost = dimension of the label span, frontier-word censuses and decoder floors; the hosting model rests on it), #2176 / #2206 (forced minors, exact pairing costs), +#2232 / #2240 / #2247 / #2137 (E6 screens, 1337isnot1337), #2272 (dense-polar small-`T` screen), #2267 (rectangular Lean form of the shadow lemma), #2294 (k = 2 batching, thakrarsagar), #1714 (batch model), #1224 (joaqcoo; the merge lemma and one-sided overcomplete structure), #1633 (bbMisk; excess-rank budgets), Discussion 1267 (philippeVV; co-star families). +Tools: kissat 4.0.4, drat-trim (Marijn Heule, Nathan Wetzler). See `NOTICE.md`. + +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code; Apache-2.0. diff --git a/research/p112-cross-form-rank-tradeoff/test_integrity.py b/research/p112-cross-form-rank-tradeoff/test_integrity.py new file mode 100644 index 0000000000..0bcd3c5c9e --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/test_integrity.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Relocated replay and corruption rejection through the public verifier CLI.""" +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import unittest + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +GEOMETRY = Path("research/p112-single-lift/reference-geometry.json") + + +class IntegrityTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.temp = tempfile.TemporaryDirectory(prefix="p112-cross-form-replay-") + cls.root = Path(cls.temp.name) + cls.package = cls.root / "research/p112-cross-form-rank-tradeoff" + shutil.copytree(HERE, cls.package, ignore=shutil.ignore_patterns("__pycache__", "*.olean")) + (cls.root / GEOMETRY).parent.mkdir(parents=True) + shutil.copyfile(ROOT / GEOMETRY, cls.root / GEOMETRY) + + @classmethod + def tearDownClass(cls): + cls.temp.cleanup() + + def run_replay(self, optimized=False): + return subprocess.run([sys.executable, "-I", "-B"] + (["-O"] if optimized else []) + + [str(self.package / "verify.py")], cwd=self.root, + text=True, capture_output=True, timeout=120) + + def test_relocation_optimized(self): + result = self.run_replay(True) + self.assertEqual(result.returncode, 0, result.stderr[-1500:]) + self.assertIn("PASS_P112_CROSS_FORM_RANK_TRADEOFF", result.stdout) + + def mutate(self, path, transform, expected): + original = path.read_bytes() + try: + path.write_bytes(transform(original)) + result = self.run_replay(True) + self.assertNotEqual(result.returncode, 0) + self.assertIn(expected, result.stderr) + finally: + path.write_bytes(original) + + def test_source_drift(self): + self.mutate(self.root / GEOMETRY, lambda b: b + b"\n", "input pin:") + + def test_predecessor_drift(self): + self.mutate(self.package / "sources/PR2294-PROOF.md", lambda b: b + b"\n", + "predecessor pin:") + + def test_false_receipt(self): + def alter(payload): + result = json.loads(payload) + result["rank_region"]["certified_pairs"] = 100 + return json.dumps(result).encode() + self.mutate(self.package / "RESULT.json", alter, "committed result equality") + + def test_receipt_type_change(self): + def alter(payload): + result = json.loads(payload) + result["rank_region"]["unresolved_pairs"][0][0] = True + return json.dumps(result).encode() + self.mutate(self.package / "RESULT.json", alter, "committed result equality") + + +if __name__ == "__main__": + unittest.main() diff --git a/research/p112-cross-form-rank-tradeoff/verify.py b/research/p112-cross-form-rank-tradeoff/verify.py new file mode 100644 index 0000000000..7ea286387f --- /dev/null +++ b/research/p112-cross-form-rank-tradeoff/verify.py @@ -0,0 +1,385 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Independent exact finite premises and controls; no predecessor code imports. + +The arbitrary-factorization result is the written proof. CountFloor.lean +formalizes its arithmetic interface, with matrix premises explicitly assumed. +""" +import argparse +from collections import Counter +from fractions import Fraction +import hashlib +import itertools +import json +from math import gcd +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +GEOMETRY = "research/p112-single-lift/reference-geometry.json" + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def reject(action, label): + try: + action() + except ValueError: + return label + raise ValueError("control was accepted: " + label) + + +def basis(rows): + pivots = {} + for row in rows: + while row: + p = row.bit_length() - 1 + if p in pivots: + row ^= pivots[p] + else: + pivots[p] = row + break + return tuple(pivots.values()) + + +def rank2(rows): + return len(basis(rows)) + + +def rankq(rows): + """Fraction-free elimination with primitive integer rows.""" + pivots = {} + for source in rows: + row = list(source) + for p, other in sorted(pivots.items()): + if row[p]: + a, b = other[p], row[p] + row = [a * x - b * y for x, y in zip(row, other)] + g = 0 + for x in row: + g = gcd(g, x) + if g > 1: + row = [x // g for x in row] + p = next((i for i, x in enumerate(row) if x), None) + if p is not None: + pivots[p] = row + return len(pivots) + + +def rankq_reference(rows): + """A separate Fraction oracle used on the coefficient endpoints.""" + a = [[Fraction(x) for x in row] for row in rows] + r = 0 + for c in range(len(a[0]) if a else 0): + p = next((i for i in range(r, len(a)) if a[i][c]), None) + if p is None: + continue + a[r], a[p] = a[p], a[r] + a[r] = [x / a[r][c] for x in a[r]] + for i in range(r + 1, len(a)): + q = a[i][c] + a[i] = [x - q * y for x, y in zip(a[i], a[r])] + r += 1 + return r + + +def parity(x): + return x.bit_count() & 1 + + +def dot(x, y): + return sum(a * b for a, b in zip(x, y)) + + +def form(matrix, x, y): + return parity(x & sum(parity(row & y) << i for i, row in enumerate(matrix))) + + +def restricted(matrix, left, right): + return rank2(sum(form(matrix, x, y) << j for j, y in enumerate(right)) + for x in left) + + +def pins(): + manifest = json.loads((HERE / "SOURCES.json").read_text()) + for item in manifest["files"]: + if item["usage"] == "input": + need(hashlib.sha256((ROOT / item["path"]).read_bytes()).hexdigest() + == item["sha256"], "input pin: " + item["path"]) + for item in manifest.get("predecessors", []): + need(hashlib.sha256((HERE / item["local_path"]).read_bytes()).hexdigest() + == item["sha256"], "predecessor pin: " + item["local_path"]) + + +def geometry(): + data = json.loads((ROOT / GEOMETRY).read_text()) + x, labels, duals = data["X"], data["labels"], data["duals"] + need(len(x) == len(labels) == len(duals) == 112, "geometry size") + # Reconstruct the norm-four Hamming-shell lines independently of the file. + shell = set() + for a in range(1, 8): + for b in range(2): + support = [i for i in range(8) if parity(a & i) == b] + for signs in itertools.product((-1, 1), repeat=3): + row = [0] * 8 + row[support[0]] = 1 + for i, sign in zip(support[1:], signs): + row[i] = sign + shell.add(tuple(row)) + def canonical(row): + sign = next(t for t in row if t) + return tuple(t if sign > 0 else -t for t in row) + need({canonical(row) for row in x} == shell, "independent Hamming shell") + need(rank2(labels) == rank2(duals) == 9, "two full label spans") + for i in range(8): + for j in range(8): + need(sum(row[i] * row[j] for row in x) == 56 * (i == j), "left inverse") + for i in range(112): + for j in range(112): + d = dot(x[i], x[j]) + need(d % 2 == 0, "even root dot") + need(parity(duals[i] & labels[j]) == (1 + d // 2) % 2, + "within-call pairing") + histories = [] + for name, lab in [("reader", duals), ("source", labels)]: + history, exceptional = Counter(), [] + for h in range(1, 512): + rows = [row for row, label in zip(x, lab) if parity(h & label)] + r = rankq(rows) + history[r] += 1 + if r < 8: + zeros = [i for i in range(8) if all(row[i] == 0 for row in rows)] + need(r == 7 and len(zeros) == 1, name + " exceptional kernel") + exceptional.extend(zeros) + need(history == {8: 503, 7: 8}, name + " support census") + need(sorted(exceptional) == list(range(8)), name + " coordinate exceptions") + histories.append({str(k): v for k, v in sorted(history.items())}) + readers = [basis(duals[i] for i in range(112) if x[i][j]) for j in range(8)] + sources = [basis(labels[i] for i in range(112) if x[i][j]) for j in range(8)] + ident = tuple(1 << i for i in range(9)) + for u in readers: + for v in sources: + need(len(u) == len(v) == 8 and restricted(ident, u, v) == 8, + "64 within-support ranks") + return data, readers, sources, histories + + +def matrix_census(): + mats = [tuple((word >> (2 * i)) & 3 for i in range(2)) for word in range(16)] + gl = [a for a in mats if rank2(a) == 2] + tight = Counter() + total = 0 + for a, d, b, c in itertools.product(gl, gl, mats, mats): + rows = tuple(a[i] | (b[i] << 2) for i in range(2)) + \ + tuple(c[i] | (d[i] << 2) for i in range(2)) + actual = rank2(rows) + rb, rc = rank2(b), rank2(c) + lower = 4 - min(2, rb, rc) + need(actual >= lower, "block Schur minimum-rank bound") + if actual == lower: + tight[f"{rb},{rc}"] += 1 + total += 1 + need(total == 9216 and len(tight) == 9, "exhaustive block coverage and sharpness") + return {"matrices": total, "tight_by_cross_rank": dict(sorted(tight.items()))} + + +def unit(i): + return tuple(int(i == j) for j in range(16)) + + +def decoder_fixtures(): + standard = [(unit(i), unit(i)) for i in range(16)] + one = [(unit(i), tuple(int(j == i) - int(i == 0 and j == 8) + for j in range(16))) for i in range(16)] + one.append((unit(0), unit(8))) + two = [(unit(i), unit(i)) for i in range(16) if i not in (0, 8)] + z = tuple(int(i == 0) - int(i == 8) for i in range(16)) + two += [(z, z), (unit(0), unit(8)), (unit(8), unit(0))] + schur = [] + for i in range(8): + z = tuple(int(j == i) - int(j == i + 8) for j in range(16)) + schur += [(z, z), (unit(i), unit(i + 8)), (unit(i + 8), unit(i))] + mixed = [] + for k in range(8): + a = tuple(int(i <= k) for i in range(8)) + c = tuple(int(i == k) - int(i == k + 1) for i in range(8)) + mixed.append((a + tuple(-v for v in a), c + tuple(-v for v in c))) + mixed += [(unit(k), unit(k + 8)), (unit(k + 8), unit(k))] + return {"standard": standard, "one_cross": one, "two_cross": two, + "schur": schur, "noncoordinate_schur": mixed} + + +def coefficient_counts(terms): + endpoint = [[sum(a[i] * c[j] for a, c in terms) for j in range(16)] for i in range(16)] + need(endpoint == [[int(i == j) for j in range(16)] for i in range(16)], "I16 endpoint") + kinds = [] + for a, c in terms: + ac = [any(a[8 * s:8 * s + 8]) for s in range(2)] + cc = [any(c[8 * s:8 * s + 8]) for s in range(2)] + need(any(ac) and any(cc), "discard zero factors") + kinds.append("D" if all(ac + cc) else "N" if any(ac[s] and cc[s] for s in range(2)) + else "P01" if ac[0] else "P10") + ranks = [] + for name, i0, j0 in [("P01", 0, 8), ("P10", 8, 0)]: + matrix = [[sum(a[i0 + i] * c[j0 + j] for (a, c), kind in zip(terms, kinds) + if kind == name) for j in range(8)] for i in range(8)] + r = rankq(matrix) + need(r == rankq_reference(matrix), "independent coefficient rank") + ranks.append(r) + n, d = sum(k in ("N", "D") for k in kinds), kinds.count("D") + mu = min(ranks) + need(n + d >= 16 and n + mu >= 16, "incidence and Schur counts") + return kinds, n, d, mu, ranks + + +def price_data(data, terms): + x, duals, labels = data["X"], data["duals"], data["labels"] + def spans(coef, lab): + return [basis(label for row, label in zip(x, lab) + if dot(row, coef[8 * s:8 * s + 8])) for s in range(2)] + return [(spans(a, duals), spans(c, labels)) for a, c in terms] + + +def cost(b, c, reader, source): + rows = [] + for s in range(2): + for u in reader[s]: + bits, j = 0, 0 + for t in range(2): + for v in source[t]: + bit = parity(u & v) if s == t else form(b if s == 0 else c, u, v) + bits |= bit << j + j += 1 + rows.append(bits) + return rank2(rows) + + +def form_fixtures(data, readers, sources): + fixture_data = {} + for name, terms in decoder_fixtures().items(): + fixture_data[name] = (coefficient_counts(terms), price_data(data, terms)) + # Each rank is realized by an actual form; these are fixtures, not all forms. + pairs, sufficient, old_sufficient, example = 0, 0, 0, None + total_checks = 0 + undecided_control = None + cases = [] + for r, s in itertools.product(range(10), repeat=2): + b = tuple((1 << i) if i < r else 0 for i in range(9)) + c = tuple((1 << ((i + 2) % 9)) if i < s else 0 for i in range(9)) + cases.append((r, s, b, c, "rank_pair")) + # This rank-(1,1) case forces abstention; a few decoders cannot decide it. + ar = next(v for v in range(1, 512) if all(not parity(v & u) for u in readers[0])) + ac = next(v for v in range(1, 512) if all(not parity(v & u) for u in sources[0])) + low = tuple(ac if (ar >> i) & 1 else 0 for i in range(9)) + cases.append((1, 1, low, low, "undecided_control")) + for r, s, b, c, case in cases: + need(rank2(b) == r and rank2(c) == s, "prescribed form ranks") + c01 = min(restricted(b, u, v) for u in readers for v in sources) + c10 = min(restricted(c, u, v) for u in readers for v in sources) + k = min(8, r, s) + need(c01 >= max(0, r - 2) and c10 >= max(0, s - 2), "codimension loss") + if case == "rank_pair": + sufficient += c01 + c10 >= k + old_sufficient += c01 + c10 >= 8 + prices = {} + for name, ((kinds, n, d, mu, ranks), entries) in fixture_data.items(): + charges = [cost(b, c, left, right) for left, right in entries] + for kind, charge in zip(kinds, charges): + lower = 16 - k if kind == "D" else 8 if kind == "N" else c01 if kind == "P01" else c10 + need(charge >= lower, "term-price premise") + strong = 8 * n + (8 - k) * d + c01 * kinds.count("P01") + c10 * kinds.count("P10") + need(sum(charges) >= strong, "additive rank price") + if c01 + c10 >= k: + formal_input = 8 * n + (8 - k) * d + k * mu + need(sum(charges) >= formal_input >= 128, "formal count interface") + prices[name] = sum(charges) + if name == "standard": + need(sum(charges) == 128, "sharp separate-call attainer") + total_checks += 1 + if (r, s) == (4, 4): + example = {"beta01_rows": list(b), "beta10_rows": list(c), "ranks": [r, s], + "support_minima": [c01, c10], "k": k, "decoder_costs": prices} + need(c01 + c10 < 8 and c01 + c10 >= k, "strict extension example") + if case == "rank_pair": + pairs += 1 + else: + need([c01, c10, k] == [0, 0, 1], "criterion must abstain") + undecided_control = {"ranks": [r, s], "support_minima": [c01, c10], + "beta01_rows": list(b), "beta10_rows": list(c), + "decoder_costs": prices, "verdict": "criterion inconclusive"} + return {"form_pairs": pairs, "decoder_cases": total_checks, + "criterion_passes": sufficient, "old_criterion_passes": old_sufficient, + "new_rank44_example": example, "coefficient_endpoints": len(fixture_data), + "undecided_control": undecided_control} + + +def rank_region(): + yes, no, prior = [], [], [] + for r, s in itertools.product(range(10), repeat=2): + test = max(0, r - 2) + max(0, s - 2) >= min(8, r, s) + (yes if test else no).append([r, s]) + if r + s >= 12: + prior.append([r, s]) + need(len(yes) == 93 and len(prior) == 28, "rank-only region") + need(no == [[1, 1], [1, 2], [2, 1], [2, 2], [2, 3], [3, 2], [3, 3]], "seven unresolved rank pairs") + return {"certified_pairs": len(yes), "prior_rank_sum12_pairs": len(prior), "unresolved_pairs": no} + + +def controls(): + result = [] + # These are witnesses that individual theorem hypotheses cannot be dropped. + result.append(reject(lambda: need(8 * 8 >= 128, "incidence absent"), "missing_incidence")) + need(8 + 8 >= 16, "first control retains Schur") + result.append(reject(lambda: need(8 * 0 + 0 * 16 + 8 * 0 >= 128, "Schur absent"), "missing_schur")) + need(0 + 16 >= 16, "second control retains incidence") + result.append(reject(lambda: need(8 * 8 + 0 * 8 >= 128, "pure price absent"), "missing_pure_surcharge")) + # Replacing the within-call rank-eight price by seven would be false. + result.append(reject(lambda: need(7 * 16 >= 128, "within price undercount"), + "undercounted_within_price")) + # An overstrong block lower bound fails at A=D=B=C=I_2. + ident = (1, 2) + block = tuple(ident[i] | (ident[i] << 2) for i in range(2)) * 2 + need(rank2(block) == 2, "sharp Schur control") + result.append(reject(lambda: need(rank2(block) >= 3, "extra rank unit"), "overstrong_schur")) + zero = (0, 0) + result.append(reject(lambda: need(rank2(zero + zero) >= 4, "missing invertible diagonal"), "missing_within_rank")) + mat = (1, 2, 4, 8, 0, 0, 0, 0, 0) + u = tuple(1 << i for i in range(1, 9)) + v = tuple(1 << i for i in range(9) if i != 1) + need(restricted(mat, u, v) == 2, "two-codimension loss attainer") + result.append(reject(lambda: need(restricted(mat, u, v) >= 3, "one loss only"), "codimension_two_loss")) + damaged = decoder_fixtures()["two_cross"][:-1] + result.append(reject(lambda: coefficient_counts(damaged), "missing_cross_endpoint_term")) + return result + + +def run(): + pins() + data, readers, sources, histories = geometry() + return {"scope": "written conditional matrix proof; finite premises; separate Lean count theorem", + "support_censuses": histories, "within_pairings": 12544, "support_pair_ranks": 64, + "block_census": matrix_census(), "rank_region": rank_region(), + "form_fixtures": form_fixtures(data, readers, sources), "controls": controls()} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--write-result", action="store_true") + args = parser.parse_args() + result = run() + path = HERE / "RESULT.json" + if args.write_result: + path.write_text(json.dumps(result, indent=2, sort_keys=True) + "\n") + else: + # JSON booleans and integers must remain distinct (Python True == 1). + committed = json.dumps(json.loads(path.read_text()), sort_keys=True, separators=(",", ":")) + generated = json.dumps(result, sort_keys=True, separators=(",", ":")) + need(committed == generated, "committed result equality") + print("PASS_P112_CROSS_FORM_RANK_TRADEOFF ranks=93/100 blocks=9216 decoders=505 controls=8 abstentions=1") + + +if __name__ == "__main__": + main()