diff --git a/research/resonant-all-width-projector/.gitattributes b/research/resonant-all-width-projector/.gitattributes new file mode 100644 index 0000000000..883436c6dc --- /dev/null +++ b/research/resonant-all-width-projector/.gitattributes @@ -0,0 +1 @@ +* -text whitespace=cr-at-eol diff --git a/research/resonant-all-width-projector/CHECKS.json b/research/resonant-all-width-projector/CHECKS.json new file mode 100644 index 0000000000..a021a94976 --- /dev/null +++ b/research/resonant-all-width-projector/CHECKS.json @@ -0,0 +1,25 @@ +{ + "date": "2026-10-22", + "root_request_new_kappa_achieved": false, + "complete_supplier": false, + "new_kappa": null, + "certificate": "Exact integer group algebra plus written universal proof", + "python": "CPython 3.12 on Windows x86-64", + "normal": "pass", + "optimized": "pass", + "independent_direct_tensor_widths": [ + 1, + 2, + 3 + ], + "separate_agent_review": "pass; original public leaf hashes recorded separately", + "kernel_audit": false, + "hosted_linux_ci": false, + "full_source_history_audit": "not run: shallow checkout", + "native_precision": "explicit charged scalar contract plus O(w) basic-arithmetic fallback; no consumer funding claimed", + "executed_subprocess_mutations": [ + "target-byte", + "annihilator-coefficient", + "discard-phase" + ] +} diff --git a/research/resonant-all-width-projector/CROSS-REVIEW.json b/research/resonant-all-width-projector/CROSS-REVIEW.json new file mode 100644 index 0000000000..f48cca05bf --- /dev/null +++ b/research/resonant-all-width-projector/CROSS-REVIEW.json @@ -0,0 +1,22 @@ +{ + "status": "PASS", + "command": "python -I -O -B verify.py", + "checked_sha256": { + "PROOF.md": "b3fff35b828e6a4ed13e5f791bd581e7a00864de6f578f9d7e863e472b85ba89", + "verify.py": "29554fca57ad1b91469cbd65543882ebdaf8cafa93b8dc2ff37b00baef03e930", + "TARGET.json": "e7df852b5c641f326ac67cd35cea8da6cfdd059fa12df1cf6fb758bb4206d684", + "EXPECTED.json": "a9d8b692d166a417b708035895ef2b7196de6777cdb4acbbe1ade354c3cb1d8c" + }, + "review": [ + "Integer group-algebra identity retained actual central phases; no representation quotient substitution.", + "H=4 A* A and C=A* A/16 scalings independently checked.", + "Scaled Horner numerator, trace aggregation, f>=1 scope and support projector checked.", + "Pseudoinverse is (1/16) R(C) A* and both support projectors follow by singular-vector decomposition.", + "Uniform inverse bound and conditional native scalar tariff reviewed.", + "Optimized verifier passed exact 21504-element group certificate and three rejecting controls." + ], + "blockers": [], + "clarification": "Two owned Horner buffers are sufficient if the fixed A* input term is recomputed from the retained original input in each step; three owned buffers are an alternative.", + "complete_supplier": false, + "new_kappa": false +} diff --git a/research/resonant-all-width-projector/EXPECTED.json b/research/resonant-all-width-projector/EXPECTED.json new file mode 100644 index 0000000000..051fb082d2 --- /dev/null +++ b/research/resonant-all-width-projector/EXPECTED.json @@ -0,0 +1,35 @@ +{ + "arithmetic": "unbounded exact Python integers", + "complete_supplier": false, + "gram_support": 704, + "group_order": 21504, + "max_integer_bound_bits": 187, + "mutation_controls": 3, + "new_kappa": false, + "polynomial_degree": 18, + "ranks_f_1_to_12": [ + 0, + 1, + 0, + 100, + 0, + 6256, + 0, + 395200, + 0, + 25198336, + 0, + 1611136000 + ], + "source_terms": 256, + "status": "PASS_EXACT_ALL_WIDTH_RESONANT_RANK", + "trace_coefficients": { + "-2": "-1/8", + "-4": "1/64", + "-8": "3/256", + "2": "-1/8", + "4": "1/64", + "8": "3/256" + }, + "valid_widths": "all integers f >= 1" +} diff --git a/research/resonant-all-width-projector/LICENSE b/research/resonant-all-width-projector/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/resonant-all-width-projector/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/resonant-all-width-projector/MANIFEST.json b/research/resonant-all-width-projector/MANIFEST.json new file mode 100644 index 0000000000..6416dc2d00 --- /dev/null +++ b/research/resonant-all-width-projector/MANIFEST.json @@ -0,0 +1,18 @@ +{ + ".gitattributes": "f06202a408fef9b9ea69bb6b1cb8160dbb0378c5bb67a444d510d231813824c8", + "CHECKS.json": "eda7c3866e9c745093b0df0a2a3efadf8d885e7e4104cebb4d0ac698b0e73680", + "CROSS-REVIEW.json": "59e113b4da27a7eabffba9da8ce4cdf510cefc21a9ccfc52ac7e68e7ff85313a", + "EXPECTED.json": "a9d8b692d166a417b708035895ef2b7196de6777cdb4acbbe1ade354c3cb1d8c", + "independent_tensor.py": "7a1e472d78e30a3c556f059469ecd700422abef76832a82941c714394f0dfc69", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "MUTATION-RESULT.json": "2348d5e227cb7678ca9d1e03fe3fcbce548950cb9018e313b13cb3aca5dc3179", + "NOTICE": "10d2b7fe2684fd08ff45b4bcc47e974f7cc5c1c1cb7eeff5596f4b0207f7ce7c", + "preflight.py": "6c4e1e989f8187254f7439f59da70ae09b19a7c9e75d14fc00592e765cc83c6b", + "PROOF.md": "a11f8a97519ae94982b1a212d2cc9789d82a4452317eb1d3843080caf910c45c", + "README.md": "d7d63f3bef95d1d9f53251c72dd367ab53e2a71a2c56f762046413ace7c08097", + "SOURCES.json": "e5856ef775496559c0a3601cc2d5dd1acc63270dc13ba096be17cbb03bc9d015", + "TARGET.json": "e7df852b5c641f326ac67cd35cea8da6cfdd059fa12df1cf6fb758bb4206d684", + "TASK.json": "7662ab5e52cc384e421d89b3e8ac67fae72de5c1b739669d0e695b8cd81cf2f0", + "VERIFY.json": "9bd01c33b4abc0b93f612838bad91bfcab1f4b3d617d9ac58beb5ac10051d3f2", + "verify.py": "29554fca57ad1b91469cbd65543882ebdaf8cafa93b8dc2ff37b00baef03e930" +} diff --git a/research/resonant-all-width-projector/MUTATION-RESULT.json b/research/resonant-all-width-projector/MUTATION-RESULT.json new file mode 100644 index 0000000000..8d97eda0a7 --- /dev/null +++ b/research/resonant-all-width-projector/MUTATION-RESULT.json @@ -0,0 +1,20 @@ +[ + { + "mutation": "target-byte", + "rejected": true, + "returncode": 1, + "diagnostic": "ValueError: source SHA256 mismatch" + }, + { + "mutation": "annihilator-coefficient", + "rejected": true, + "returncode": 1, + "diagnostic": "ValueError: exact degree-18 group-algebra identity failed" + }, + { + "mutation": "discard-phase", + "rejected": true, + "returncode": 1, + "diagnostic": "ValueError: left stabilizer" + } +] diff --git a/research/resonant-all-width-projector/NOTICE b/research/resonant-all-width-projector/NOTICE new file mode 100644 index 0000000000..b1bcbb5e88 --- /dev/null +++ b/research/resonant-all-width-projector/NOTICE @@ -0,0 +1,6 @@ +Resonant all-width rank and recovery certificate. +Contribution: Dugongue. Apache-2.0. +TARGET.json is retained byte for byte from Nick Petalas PR #4825, exporting JoyboyBrian PR #4797. +Retained predecessor credit: Yiyang (#4710), lee-phys (#4688), Jacob Sussman (#4628). +See SOURCES.json for immutable source pins and PROOF.md for scope. +The source also retains PR #4751 (2b7b84971377e389bb60bc99973e023084225dc9), whose fixed-original-owner premise is not changed by this rank theorem. diff --git a/research/resonant-all-width-projector/PROOF.md b/research/resonant-all-width-projector/PROOF.md new file mode 100644 index 0000000000..2a65c15beb --- /dev/null +++ b/research/resonant-all-width-projector/PROOF.md @@ -0,0 +1,166 @@ +# Proof and explicit recovery program + +## Frozen group and evaluation + +TARGET.json contains 256 distinct records with coefficient +1/16 or -1/16. +A record (p,s) is the actual monomial matrix g e_j = i^{s(j)} e_{p(j)}. +Multiplication is composition, including every fourth-root phase. The verifier +never quotients by a central scalar or by a symplectic tableau. Let G be the +finite subgroup of these monomial matrices generated as needed below, and write +A=(1/16) sum_g a_g [g] in the complex group algebra, with a_g = +/-1. +For every f >= 0, evaluation rho_f([g])=g tensor ... tensor g is a unital +star-algebra homomorphism. Define A_f=rho_f(A). The coefficient a_g is outside +the tensor power: a tensor power of a sum is not used. + +## Exact, bounded certificate + +Let B=sum_{g,h} a_g a_h [g^{-1}h]. The verifier constructs B by integer +convolution. It has 704 nonzero coefficients, each divisible by 64. Thus +H=B/64=4 A* A has integer coefficients and coefficient l1 norm 1024. +Define C=H/64=A* A/16. + +The low-first coefficients of the polynomial p are the literal POLY list in +verify.py. It has degree 18, is monic, and p=x q with q(0)=-40131624960. +The exact certificate is H * (64^17 q(H/64))=0 in the INTEGER group algebra. +The verifier evaluates this identity over unbounded Python integers on all +21,504 group elements, without modular reduction. It also checks the complete +coefficient table of H and every factor used to accelerate multiplication. +Consequently p(C)=0 in the group algebra and after evaluation at every width. + +For reproducibility, the acceleration is itself an exact factorization. Put +c=i I, and let X0 and Z0,Z1,Z2 be the usual three-bit Pauli monomials. The +five factors (I+c^2), (I+c X0), (I+Z0), (I+Z1), (I+Z2) expand to the 32-element +subgroup average 32 D. Direct coefficient comparison proves D A=A and splits +the support of A into eight signed left cosets. If b0 is their signed sum of +representatives, A=2 D b0. Conjugating the five subgroup generators by one +representative r0, and setting b=r0^{-1}b0, gives exactly + +\[ +H=\frac12 b^*\prod_{j=0}^4 (I+r_0^{-1}d_jr_0)b. +\] + +All factors belong to the 21,504-element Gram subgroup. The verifier reconstructs +this subgroup, checks the factorization against the independently convolved B, +and applies the rightmost factor first. Every division by 2 is checked integral. +No representation quotient replaces group-algebra equality. + +A conservative bound starts at beta=1 and, for k=16,...,0, replaces beta by +`1024*beta + abs(q[k])*64**(17-k)`. The final multiplication has bound +`1024*beta`. The maximum bound has 187 bits, below 2^255. This also justifies a +separate exact signed 256-bit implementation; the public verifier uses Python +integers and does not rely on fixed-width overflow assumptions. Earlier modular +minimal-polynomial searches were discovery aids, not the certificate. + +## Support projector and rank + +C_f=A_f* A_f/16 is Hermitian positive semidefinite. Its nonzero eigenvalues +are roots of q because p(C_f)=0. Since q(0) is nonzero, + +\[ +P_{R,f}=I-q(C_f)/q(0) +\] + +acts as 0 on ker A_f and as 1 on its orthogonal complement. It is the right +support projector onto im A_f*. Its trace equals rank A_f. +Expanding this polynomial in the actual group basis and grouping by the exact +complex trace of each 8 by 8 monomial gives the following nonzero contributions: + +| trace of g | coefficient in trace(P_R) | +|---|---| +| -8 | 3/256 | +| -4 | 1/64 | +| -2 | -1/8 | +| 2 | -1/8 | +| 4 | 1/64 | +| 8 | 3/256 | + +The verifier computes this table by integer arithmetic followed by rational +reduction. Every nonreal trace contribution cancels. Since +trace(g^{tensor f})=trace(g)^f, the displayed rank formula follows for ALL +integers f >= 1. Terms with trace zero can then be omitted. The restriction +f >= 1 is essential: a zero trace base contributes 0^0 at formal width zero, +and the displayed six-term expression is not the width-zero rank. + +## Constructive pseudoinverse and output recovery + +Write s(x)=(q(x)-q(0))/x and R(x)=-s(x)/q(0), an explicit polynomial of degree 16. +Then x R(x)=1-q(x)/q(0). Define + +\[ +A_f^\dagger=\frac1{16} R(C_f) A_f^*. +\] + +Multiplication gives A_f^dagger A_f=C_f R(C_f)=P_R,f. The matrix A_f A_f* +has the same positive eigenvalues as A_f* A_f, and its zero eigenspace is +ker A_f*. Therefore the same polynomial gives the LEFT output projector +P_L,f=I-q(A_f A_f*/16)/q(0), and A_f A_f^dagger=P_L,f. +These statements can also be checked on each singular vector pair. They imply +all four Moore-Penrose identities, and for every arbitrary input y, + +\[ +A_f^\dagger(A_f y)=P_{R,f}y. +\] + +In particular an inherited partial channel z=A_f K_f x constructively determines +P_R,f K_f x. It does not determine the complementary projection of K_f x. +The zero odd-width channel has pseudoinverse zero, as the same formula shows. + +There is a uniform numerical bound independent of f: ||A_f||_2 <= 16 from its +coefficient sum, and ||C_f||_2 <= 16 from ||H||_1/64. Thus + +\[ +||A_f^\dagger||_2 \le +\frac{\sum_{k=0}^{16}|q_{k+1}|16^k}{|q_0|}, +\] + +where q_k is the low-first coefficient of q. This deliberately coarse but +explicit finite constant proves that no inverse norm growing with width is +hidden in the recovery program. + +## Native cost, ownership and limits + +R(C)A* is a fixed finite rational linear combination of actual monomials. +It supplies an explicit recovery PROGRAM, rather than an assumed decoder oracle. +For a fixed buffer/limb constant c, require 2^w >= c N: equivalently w >= log2 N + O(1), with address headroom for the retained input and three owned buffers. Include rounded payload and fixed guard words in the scalar-cost contract. For N=8^f, each lifted three-bit monomial is evaluated by a base-8 address +odometer; updating the changed digit contributions takes O(N) total operations, +including phases. Evaluating each fixed sum into an OWNED zero output buffer +retains the entire arbitrary input and every other live bank. One may use three owned buffers: retain A* applied to the original input in one buffer and alternate the other two for Horner evaluation, charging initialization, linear passes and clearing. Buffer ownership and clearing are not obtained from a dirty unknown +bank by overwriting it. + +The total number of monomial passes is a fixed constant independent of f. +There are fixed rational coefficients, including odd denominators from q(0). +If an admitted word model charges d(w) operations for the prescribed rounded +fixed-rational scalar arithmetic at w-bit precision, total cost is O(N d(w)), +plus initialization and clearing; O(N) follows only under a justified constant +scalar-cost contract. The polynomial has fixed degree and coefficient height. +For inputs with coordinate magnitude at most B and a desired coordinate error delta, a conservative total precision is O(log(2+B) + log N + log(1/delta)) bits, with fixed additive constants determined by the displayed coefficients and norm bound. The log N term safely covers +conversion between coordinate and Euclidean errors; no precision oracle is +assumed. Actual source input precision, error budget and native supplier tariff +still require a consumer-specific invoice. + +The rank theorem and polynomial recovery are unconditional algebraic statements +about the frozen A. No new complete supplier, paid saving or kappa follows from +them alone. Independent missing coordinates, retained complements and physical +chronology must still be supplied and charged. + +## Controls and precedent + +The verifier checks a changed source byte against its SHA256 pin; confirms a +constant-polynomial mutation has nonzero residual H; and checks that the actual +central -I is distinct from I and squares to I. The exact checks remain active +under Python optimization. They protect source integrity, polynomial identity +and central phase semantics respectively. + +JoyboyBrian's PR #4797 provides the frozen coefficient, partial-channel identity, +norm analysis and rank question. Nick Petalas's PR #4825 supplies the exact +width-four rank 100 certificate and asks for a general even-width formula. +Its lineage credits Yiyang (#4710 phase repair and staggered continuation), +lee-phys (#4688 two-image prefix), and Jacob Sussman (#4628 free alphabet). +This contribution by Dugongue derives the all-width group-algebra certificate, +rank formula and explicit uniform pseudoinverse. It does not claim invention of +spectral projectors, group algebras or Moore-Penrose inversion. No proof-kernel +or independent human audit is asserted. + +## Explicit basic-arithmetic fallback + +The cost parameter d(w) does not assume a hidden division oracle. If only bounded-word addition, subtraction, shifts, bit operations and comparisons are available, multiply by each fixed integer numerator with its fixed finite shift/add expansion. Divide by a fixed positive denominator by ordinary restoring long division: scan the w input bits, keep a remainder below that denominator, and emit one quotient bit after one comparison/subtraction. The denominator and numerator heights are fixed constants; for sufficiently large w the remainder uses a fixed number of words. Round using the final remainder and retain the sign separately. This gives an explicit conservative d(w)=O(w) implementation, hence O(N w) recovery, with fixed-size setup for small w. It is not an O(N) or improved multiplication-complexity claim. Faster admitted scalar arithmetic may replace this fallback only with its own invoice. diff --git a/research/resonant-all-width-projector/README.md b/research/resonant-all-width-projector/README.md new file mode 100644 index 0000000000..ca5290d43d --- /dev/null +++ b/research/resonant-all-width-projector/README.md @@ -0,0 +1,58 @@ +# All-width rank and constructive recovery for the resonant channel + +For the exact 256-term coefficient A_f frozen by JoyboyBrian's PR #4797, and every integer f >= 1, + +\[ +\operatorname{rank} A_f = \frac{3}{256}(8^f+(-8)^f) + +\frac1{64}(4^f+(-4)^f)-\frac18(2^f+(-2)^f). +\] + +In particular the odd-width channel is zero. At even widths its rank is +`3*8^f/128 + 4^f/32 - 2^f/4`, with limiting image density 3/128. +The first even-width ranks are 1, 100, 6256 and 395200. +This answers the general-width rank question left open in Nick Petalas's +[PR #4825](https://github.com/CrocSwap/integer-mult-bounds/pull/4825). +The same certificate gives an explicit fixed-polynomial pseudoinverse and +recovers the accessible input projection from every channel output. + +Run `python -I -B verify.py` from this directory, or pass its absolute path. +Python 3.10 or later and its standard library suffice. Also run +`python -I -O -B verify.py`; checks do not depend on assertions. +The verifier does not write files or invoke external programs. +It takes about 3.3 seconds on the development machine; this is replay timing, +not a multiplication benchmark. [PROOF.md](PROOF.md) proves the all-width +and recovery statements from its exact finite algebra certificate. + +The result is a partial-channel theorem, not a complete supplier or a new +kappa. A projection of rank 3/128 asymptotically does not supply the omitted +independent target coordinates. A consumer still has to price those coordinates, +physical preparation, routing, ownership, restoration and every Gaussian call. +A free-algebra polynomial is not automatically an exact unit-cost Word RAM +program: fixed rational scalar operations are charged as stated in the proof. + +The source TARGET.json is retained byte for byte. [SOURCES.json](SOURCES.json) +pins immutable upstream commits, hashes and predecessor credit. +The receipt [EXPECTED.json](EXPECTED.json) records exact arithmetic rather than +modular evidence or finite-width extrapolation. No Lean or kernel claim is made. + +## Concrete scope and relation to κ + +This completes the frozen channel's general-width rank and explicit image-recovery question. The session's requested new best κ was not obtained. No independently encoded canonical Gaussian job is inferred from a dimension count. The baseline complex comparison remains the source-bound round-3 profile of PR #4610 and its conditional native transfer #4713; the selected main certificate remains κ = 0.00302015. PR #4814's ordinary BIT saving 0.003475458 is separately scoped. The large finite cascade proposals #4813/#4818/#4819/#4826 require paid-word completion; #4842 audits their evidence, and #4856 emits an actual fused shared-port word with completion still open. + +The positive mechanism here is exact finite group-algebra annihilation followed by a fixed polynomial support inverse. It replaces an unknown image recovery oracle with an explicit finite rational monomial program. Its dimension and uniform inverse bound are proved for every positive width. Compiler funding and the missing complement remain separate, priced obligations. + +## Independent checks + +`python3 -I -O -B independent_tensor.py` builds the actual tensor matrices independently at widths 1, 2 and 3, checks exact rank-one minors at width 2, the nonzero Gram eigenvalue and the inverse scale, and rejects discarded global phase. It does not use the regular-representation certificate to construct those matrices. All default replay is offline, standard-library Python; no C++, GPU, solver or Git is required. + +## Open next questions + +- Construct a chronological complete consumer for these explicit recoverable image coordinates, retaining arbitrary original owners and the complementary target. Its complete paid moment must improve before another construction round. +- Find fixed native encoders for canonical independent Gaussian jobs within the image; rank alone is insufficient. Charge every preparation, rounded fixed-rational coefficient, routing and restoration pass. +- Fund the actual consumer's source-uniform compiler, precision and outer native ledger. The projector theorem is not a new multiplication theorem or kernel audit. + +Prepared by Dugongue with OpenAI Codex and three agents. The existing local MathProof Schur-block elimination and explicit covariance-composition proofs were inspected as algebraic precedents, not imported as unchecked axioms or copied into this package. No Lean formalization or fresh kernel audit is claimed. + +Canonical main was pinned through a dedicated ref to 624de9dc66858af0945e5f8a0942488d62280d43. The previous PR #4841 note describing 9e33ecf0 as an advance of canonical main was erroneous: another worker's PR fetch had overwritten shared FETCH_HEAD. Its frozen discovery source was already 624de9dc and is unchanged; this release does not reuse that mutable checkpoint. + +Separate optimized subprocess mutation checks rejected a changed TARGET byte, q(0) changed by 1, and a monomial multiplication that discarded all phases. MUTATION-RESULT.json records the exact rejection diagnostics. These are separate executed controls, in addition to the three internal structural checks. CROSS-REVIEW.json binds the independently reviewed original leaf; publication proof prose additionally clarifies three owned Horner buffers, payload-dependent precision and a conservative explicit O(N w) basic-arithmetic fallback. Core certificate and TARGET bytes are unchanged from that review. diff --git a/research/resonant-all-width-projector/SOURCES.json b/research/resonant-all-width-projector/SOURCES.json new file mode 100644 index 0000000000..638420aeb4 --- /dev/null +++ b/research/resonant-all-width-projector/SOURCES.json @@ -0,0 +1,64 @@ +{ + "schema_version": 1, + "base_commit": "624de9dc66858af0945e5f8a0942488d62280d43", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395", + "sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + } + ], + "external_origins": { + "target": { + "url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/c396428eacde0de53e2fe29330308b4a87d3d99b/research/resonant-channel-rank/TARGET.json", + "sha256": "e7df852b5c641f326ac67cd35cea8da6cfdd059fa12df1cf6fb758bb4206d684", + "canonical_json_sha256": "445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d", + "retained_bytes": true, + "license": "Apache-2.0" + }, + "predecessors": [ + { + "pr": 4797, + "author": "JoyboyBrian", + "head": "121910f1890494d6134cd48c422facbe116db36d", + "contribution": "Frozen resonant partial channel, coefficient, norm and rank question" + }, + { + "pr": 4825, + "author": "Nick Petalas", + "head": "c396428eacde0de53e2fe29330308b4a87d3d99b", + "contribution": "Exact width-four rank 100; source export and general-width question" + }, + { + "pr": 4710, + "author": "Yiyang", + "contribution": "Phase-aligned repair and staggered continuation" + }, + { + "pr": 4688, + "author": "lee-phys", + "contribution": "Two-image prefix" + }, + { + "pr": 4628, + "author": "Jacob Sussman", + "contribution": "Small-unit model and free alphabet" + }, + { + "pr": 4751, + "head": "2b7b84971377e389bb60bc99973e023084225dc9", + "contribution": "Retained fixed-original-owner obstruction and arithmetic scope cited by the channel predecessor; not a new barrier claim here." + } + ], + "new_contribution_by": "Dugongue", + "evidence": "EXACT_INTEGER_GROUP_ALGEBRA_REPLAY_NOT_LEAN" + }, + "claim_scope": "All positive widths; exact group-algebra projector and pseudoinverse; no completed supplier or new kappa." +} diff --git a/research/resonant-all-width-projector/TARGET.json b/research/resonant-all-width-projector/TARGET.json new file mode 100644 index 0000000000..e40739b7d5 --- /dev/null +++ b/research/resonant-all-width-projector/TARGET.json @@ -0,0 +1 @@ +[{"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 1, 1, 1, 1, 3, 1, 3], "phase_polynomial_mod4": [1, 0, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 1, 1, 1, 3, 1, 3, 1], "phase_polynomial_mod4": [1, 0, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 1, 3, 3, 1, 3, 3, 1], "phase_polynomial_mod4": [1, 0, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 1, 3, 3, 3, 1, 1, 3], "phase_polynomial_mod4": [1, 0, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 3, 1, 3, 1, 1, 1, 1], "phase_polynomial_mod4": [1, 2, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 3, 1, 3, 3, 3, 3, 3], "phase_polynomial_mod4": [1, 2, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 3, 3, 1, 1, 1, 3, 3], "phase_polynomial_mod4": [1, 2, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [1, 3, 3, 1, 3, 3, 1, 1], "phase_polynomial_mod4": [1, 2, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 1, 1, 3, 1, 1, 3, 3], "phase_polynomial_mod4": [3, 2, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 1, 1, 3, 3, 3, 1, 1], "phase_polynomial_mod4": [3, 2, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 1, 3, 1, 1, 1, 1, 1], "phase_polynomial_mod4": [3, 2, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 1, 3, 1, 3, 3, 3, 3], "phase_polynomial_mod4": [3, 2, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 3, 1, 1, 1, 3, 3, 1], "phase_polynomial_mod4": [3, 0, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 3, 1, 1, 3, 1, 1, 3], "phase_polynomial_mod4": [3, 0, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 3, 3, 3, 1, 3, 1, 3], "phase_polynomial_mod4": [3, 0, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 0, "coefficient": "1/16", "permutation": [0, 1, 2, 3, 4, 5, 6, 7], "phase_i": [3, 3, 3, 3, 3, 1, 3, 1], "phase_polynomial_mod4": [3, 0, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 1, 0, 2, 1, 3, 0, 0], "phase_polynomial_mod4": [1, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 1, 0, 2, 3, 1, 2, 2], "phase_polynomial_mod4": [1, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 1, 2, 0, 1, 3, 2, 2], "phase_polynomial_mod4": [1, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 1, 2, 0, 3, 1, 0, 0], "phase_polynomial_mod4": [1, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 3, 0, 0, 1, 1, 0, 2], "phase_polynomial_mod4": [1, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 3, 0, 0, 3, 3, 2, 0], "phase_polynomial_mod4": [1, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 3, 2, 2, 1, 1, 2, 0], "phase_polynomial_mod4": [1, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [1, 3, 2, 2, 3, 3, 0, 2], "phase_polynomial_mod4": [1, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 1, 0, 0, 1, 1, 2, 0], "phase_polynomial_mod4": [3, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 1, 0, 0, 3, 3, 0, 2], "phase_polynomial_mod4": [3, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 1, 2, 2, 1, 1, 0, 2], "phase_polynomial_mod4": [3, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 1, 2, 2, 3, 3, 2, 0], "phase_polynomial_mod4": [3, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 3, 0, 2, 1, 3, 2, 2], "phase_polynomial_mod4": [3, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 3, 0, 2, 3, 1, 0, 0], "phase_polynomial_mod4": [3, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 3, 2, 0, 1, 3, 0, 0], "phase_polynomial_mod4": [3, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 0, "coefficient": "-1/16", "permutation": [0, 4, 6, 2, 1, 5, 7, 3], "phase_i": [3, 3, 2, 0, 3, 1, 2, 2], "phase_polynomial_mod4": [3, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 0, 0, 0, 0, 2, 0, 2], "phase_polynomial_mod4": [0, 0, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 0, 0, 0, 2, 0, 2, 0], "phase_polynomial_mod4": [0, 0, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 0, 2, 2, 0, 2, 2, 0], "phase_polynomial_mod4": [0, 0, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 0, 2, 2, 2, 0, 0, 2], "phase_polynomial_mod4": [0, 0, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 2, 0, 2, 0, 0, 0, 0], "phase_polynomial_mod4": [0, 2, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 2, 0, 2, 2, 2, 2, 2], "phase_polynomial_mod4": [0, 2, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 2, 2, 0, 0, 0, 2, 2], "phase_polynomial_mod4": [0, 2, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [0, 2, 2, 0, 2, 2, 0, 0], "phase_polynomial_mod4": [0, 2, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 0, 0, 2, 0, 0, 2, 2], "phase_polynomial_mod4": [2, 2, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 0, 0, 2, 2, 2, 0, 0], "phase_polynomial_mod4": [2, 2, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 0, 2, 0, 0, 0, 0, 0], "phase_polynomial_mod4": [2, 2, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 0, 2, 0, 2, 2, 2, 2], "phase_polynomial_mod4": [2, 2, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 2, 0, 0, 0, 2, 2, 0], "phase_polynomial_mod4": [2, 0, 2, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 2, 0, 0, 2, 0, 0, 2], "phase_polynomial_mod4": [2, 0, 2, 0, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 2, 2, 2, 0, 2, 0, 2], "phase_polynomial_mod4": [2, 0, 0, 0, 2, 2, 0, 0]}, {"affine_columns": [1, 2, 4], "affine_shift": 1, "coefficient": "1/16", "permutation": [1, 0, 3, 2, 5, 4, 7, 6], "phase_i": [2, 2, 2, 2, 2, 0, 2, 0], "phase_polynomial_mod4": [2, 0, 0, 0, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 0, 1, 3, 0, 2, 1, 1], "phase_polynomial_mod4": [0, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 0, 1, 3, 2, 0, 3, 3], "phase_polynomial_mod4": [0, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 0, 3, 1, 0, 2, 3, 3], "phase_polynomial_mod4": [0, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 0, 3, 1, 2, 0, 1, 1], "phase_polynomial_mod4": [0, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 2, 1, 1, 0, 0, 1, 3], "phase_polynomial_mod4": [0, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 2, 1, 1, 2, 2, 3, 1], "phase_polynomial_mod4": [0, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 2, 3, 3, 0, 0, 3, 1], "phase_polynomial_mod4": [0, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [0, 2, 3, 3, 2, 2, 1, 3], "phase_polynomial_mod4": [0, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 0, 1, 1, 0, 0, 3, 1], "phase_polynomial_mod4": [2, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 0, 1, 1, 2, 2, 1, 3], "phase_polynomial_mod4": [2, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 0, 3, 3, 0, 0, 1, 3], "phase_polynomial_mod4": [2, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 0, 3, 3, 2, 2, 3, 1], "phase_polynomial_mod4": [2, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 2, 1, 3, 0, 2, 3, 3], "phase_polynomial_mod4": [2, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 2, 1, 3, 2, 0, 1, 1], "phase_polynomial_mod4": [2, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 2, 3, 1, 0, 2, 1, 1], "phase_polynomial_mod4": [2, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 1], "affine_shift": 1, "coefficient": "-1/16", "permutation": [1, 5, 7, 3, 0, 4, 6, 2], "phase_i": [2, 2, 3, 1, 2, 0, 3, 3], "phase_polynomial_mod4": [2, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 0, 0, 0, 1, 1, 3, 3], "phase_polynomial_mod4": [0, 0, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 0, 0, 0, 3, 3, 1, 1], "phase_polynomial_mod4": [0, 0, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 0, 2, 2, 1, 1, 1, 1], "phase_polynomial_mod4": [0, 0, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 0, 2, 2, 3, 3, 3, 3], "phase_polynomial_mod4": [0, 0, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 2, 0, 2, 1, 3, 3, 1], "phase_polynomial_mod4": [0, 2, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 2, 0, 2, 3, 1, 1, 3], "phase_polynomial_mod4": [0, 2, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 2, 2, 0, 1, 3, 1, 3], "phase_polynomial_mod4": [0, 2, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [0, 2, 2, 0, 3, 1, 3, 1], "phase_polynomial_mod4": [0, 2, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 0, 0, 2, 1, 3, 1, 3], "phase_polynomial_mod4": [2, 2, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 0, 0, 2, 3, 1, 3, 1], "phase_polynomial_mod4": [2, 2, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 0, 2, 0, 1, 3, 3, 1], "phase_polynomial_mod4": [2, 2, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 0, 2, 0, 3, 1, 1, 3], "phase_polynomial_mod4": [2, 2, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 2, 0, 0, 1, 1, 1, 1], "phase_polynomial_mod4": [2, 0, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 2, 0, 0, 3, 3, 3, 3], "phase_polynomial_mod4": [2, 0, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 2, 2, 2, 1, 1, 3, 3], "phase_polynomial_mod4": [2, 0, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 0, 1, 4, 5, 6, 7], "phase_i": [2, 2, 2, 2, 3, 3, 1, 1], "phase_polynomial_mod4": [2, 0, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 0, 0, 2, 1, 3, 1, 1], "phase_polynomial_mod4": [0, 0, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 0, 0, 2, 3, 1, 3, 3], "phase_polynomial_mod4": [0, 0, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 0, 2, 0, 1, 3, 3, 3], "phase_polynomial_mod4": [0, 0, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 0, 2, 0, 3, 1, 1, 1], "phase_polynomial_mod4": [0, 0, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 2, 0, 0, 1, 1, 1, 3], "phase_polynomial_mod4": [0, 2, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 2, 0, 0, 3, 3, 3, 1], "phase_polynomial_mod4": [0, 2, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 2, 2, 2, 1, 1, 3, 1], "phase_polynomial_mod4": [0, 2, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [0, 2, 2, 2, 3, 3, 1, 3], "phase_polynomial_mod4": [0, 2, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 0, 0, 0, 1, 1, 3, 1], "phase_polynomial_mod4": [2, 2, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 0, 0, 0, 3, 3, 1, 3], "phase_polynomial_mod4": [2, 2, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 0, 2, 2, 1, 1, 1, 3], "phase_polynomial_mod4": [2, 2, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 0, 2, 2, 3, 3, 3, 1], "phase_polynomial_mod4": [2, 2, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 2, 0, 2, 1, 3, 3, 3], "phase_polynomial_mod4": [2, 0, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 2, 0, 2, 3, 1, 1, 1], "phase_polynomial_mod4": [2, 0, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 2, 2, 0, 1, 3, 1, 1], "phase_polynomial_mod4": [2, 0, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 2, "coefficient": "-1/16", "permutation": [2, 3, 5, 4, 1, 0, 6, 7], "phase_i": [2, 2, 2, 0, 3, 1, 3, 3], "phase_polynomial_mod4": [2, 0, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 1, 1, 1, 0, 0, 2, 2], "phase_polynomial_mod4": [1, 0, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 1, 1, 1, 2, 2, 0, 0], "phase_polynomial_mod4": [1, 0, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 1, 3, 3, 0, 0, 0, 0], "phase_polynomial_mod4": [1, 0, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 1, 3, 3, 2, 2, 2, 2], "phase_polynomial_mod4": [1, 0, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 3, 1, 3, 0, 2, 2, 0], "phase_polynomial_mod4": [1, 2, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 3, 1, 3, 2, 0, 0, 2], "phase_polynomial_mod4": [1, 2, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 3, 3, 1, 0, 2, 0, 2], "phase_polynomial_mod4": [1, 2, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [1, 3, 3, 1, 2, 0, 2, 0], "phase_polynomial_mod4": [1, 2, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 1, 1, 3, 0, 2, 0, 2], "phase_polynomial_mod4": [3, 2, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 1, 1, 3, 2, 0, 2, 0], "phase_polynomial_mod4": [3, 2, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 1, 3, 1, 0, 2, 2, 0], "phase_polynomial_mod4": [3, 2, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 1, 3, 1, 2, 0, 0, 2], "phase_polynomial_mod4": [3, 2, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 3, 1, 1, 0, 0, 0, 0], "phase_polynomial_mod4": [3, 0, 2, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 3, 1, 1, 2, 2, 2, 2], "phase_polynomial_mod4": [3, 0, 2, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 3, 3, 3, 0, 0, 2, 2], "phase_polynomial_mod4": [3, 0, 0, 0, 1, 0, 2, 0]}, {"affine_columns": [1, 2, 6], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 1, 0, 5, 4, 7, 6], "phase_i": [3, 3, 3, 3, 2, 2, 0, 0], "phase_polynomial_mod4": [3, 0, 0, 0, 3, 0, 2, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 1, 1, 3, 0, 2, 0, 0], "phase_polynomial_mod4": [1, 0, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 1, 1, 3, 2, 0, 2, 2], "phase_polynomial_mod4": [1, 0, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 1, 3, 1, 0, 2, 2, 2], "phase_polynomial_mod4": [1, 0, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 1, 3, 1, 2, 0, 0, 0], "phase_polynomial_mod4": [1, 0, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 3, 1, 1, 0, 0, 0, 2], "phase_polynomial_mod4": [1, 2, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 3, 1, 1, 2, 2, 2, 0], "phase_polynomial_mod4": [1, 2, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 3, 3, 3, 0, 0, 2, 0], "phase_polynomial_mod4": [1, 2, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [1, 3, 3, 3, 2, 2, 0, 2], "phase_polynomial_mod4": [1, 2, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 1, 1, 1, 0, 0, 2, 0], "phase_polynomial_mod4": [3, 2, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 1, 1, 1, 2, 2, 0, 2], "phase_polynomial_mod4": [3, 2, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 1, 3, 3, 0, 0, 0, 2], "phase_polynomial_mod4": [3, 2, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 1, 3, 3, 2, 2, 2, 0], "phase_polynomial_mod4": [3, 2, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 3, 1, 3, 0, 2, 2, 2], "phase_polynomial_mod4": [3, 0, 2, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 3, 1, 3, 2, 0, 0, 0], "phase_polynomial_mod4": [3, 0, 2, 2, 3, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 3, 3, 1, 0, 2, 0, 0], "phase_polynomial_mod4": [3, 0, 0, 2, 1, 2, 0, 0]}, {"affine_columns": [1, 7, 3], "affine_shift": 3, "coefficient": "-1/16", "permutation": [3, 2, 4, 5, 0, 1, 7, 6], "phase_i": [3, 3, 3, 1, 2, 0, 2, 2], "phase_polynomial_mod4": [3, 0, 0, 2, 3, 2, 0, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 0, 1, 1, 0, 2, 3, 1], "phase_polynomial_mod4": [0, 0, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 0, 1, 1, 2, 0, 1, 3], "phase_polynomial_mod4": [0, 0, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 0, 3, 3, 0, 2, 1, 3], "phase_polynomial_mod4": [0, 0, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 0, 3, 3, 2, 0, 3, 1], "phase_polynomial_mod4": [0, 0, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 2, 1, 3, 0, 0, 3, 3], "phase_polynomial_mod4": [0, 2, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 2, 1, 3, 2, 2, 1, 1], "phase_polynomial_mod4": [0, 2, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 2, 3, 1, 0, 0, 1, 1], "phase_polynomial_mod4": [0, 2, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [0, 2, 3, 1, 2, 2, 3, 3], "phase_polynomial_mod4": [0, 2, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 0, 1, 3, 0, 0, 1, 1], "phase_polynomial_mod4": [2, 2, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 0, 1, 3, 2, 2, 3, 3], "phase_polynomial_mod4": [2, 2, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 0, 3, 1, 0, 0, 3, 3], "phase_polynomial_mod4": [2, 2, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 0, 3, 1, 2, 2, 1, 1], "phase_polynomial_mod4": [2, 2, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 2, 1, 1, 0, 2, 1, 3], "phase_polynomial_mod4": [2, 0, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 2, 1, 1, 2, 0, 3, 1], "phase_polynomial_mod4": [2, 0, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 2, 3, 3, 0, 2, 3, 1], "phase_polynomial_mod4": [2, 0, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 4, "coefficient": "-1/16", "permutation": [4, 0, 7, 3, 5, 1, 6, 2], "phase_i": [2, 2, 3, 3, 2, 0, 1, 3], "phase_polynomial_mod4": [2, 0, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 0, 0, 2, 0, 2, 2, 2], "phase_polynomial_mod4": [0, 0, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 0, 0, 2, 2, 0, 0, 0], "phase_polynomial_mod4": [0, 0, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 0, 2, 0, 0, 2, 0, 0], "phase_polynomial_mod4": [0, 0, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 0, 2, 0, 2, 0, 2, 2], "phase_polynomial_mod4": [0, 0, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 2, 0, 0, 0, 0, 2, 0], "phase_polynomial_mod4": [0, 2, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 2, 0, 0, 2, 2, 0, 2], "phase_polynomial_mod4": [0, 2, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 2, 2, 2, 0, 0, 0, 2], "phase_polynomial_mod4": [0, 2, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [0, 2, 2, 2, 2, 2, 2, 0], "phase_polynomial_mod4": [0, 2, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 0, 0, 0, 0, 0, 0, 2], "phase_polynomial_mod4": [2, 2, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 0, 0, 0, 2, 2, 2, 0], "phase_polynomial_mod4": [2, 2, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 0, 2, 2, 0, 0, 2, 0], "phase_polynomial_mod4": [2, 2, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 0, 2, 2, 2, 2, 0, 2], "phase_polynomial_mod4": [2, 2, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 2, 0, 2, 0, 2, 0, 0], "phase_polynomial_mod4": [2, 0, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 2, 0, 2, 2, 0, 2, 2], "phase_polynomial_mod4": [2, 0, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 2, 2, 0, 0, 2, 2, 2], "phase_polynomial_mod4": [2, 0, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 4, "coefficient": "1/16", "permutation": [4, 5, 3, 2, 0, 1, 7, 6], "phase_i": [2, 2, 2, 0, 2, 0, 0, 0], "phase_polynomial_mod4": [2, 0, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 1, 0, 0, 1, 3, 2, 0], "phase_polynomial_mod4": [1, 0, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 1, 0, 0, 3, 1, 0, 2], "phase_polynomial_mod4": [1, 0, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 1, 2, 2, 1, 3, 0, 2], "phase_polynomial_mod4": [1, 0, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 1, 2, 2, 3, 1, 2, 0], "phase_polynomial_mod4": [1, 0, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 3, 0, 2, 1, 1, 2, 2], "phase_polynomial_mod4": [1, 2, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 3, 0, 2, 3, 3, 0, 0], "phase_polynomial_mod4": [1, 2, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 3, 2, 0, 1, 1, 0, 0], "phase_polynomial_mod4": [1, 2, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [1, 3, 2, 0, 3, 3, 2, 2], "phase_polynomial_mod4": [1, 2, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 1, 0, 2, 1, 1, 0, 0], "phase_polynomial_mod4": [3, 2, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 1, 0, 2, 3, 3, 2, 2], "phase_polynomial_mod4": [3, 2, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 1, 2, 0, 1, 1, 2, 2], "phase_polynomial_mod4": [3, 2, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 1, 2, 0, 3, 3, 0, 0], "phase_polynomial_mod4": [3, 2, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 3, 0, 0, 1, 3, 0, 2], "phase_polynomial_mod4": [3, 0, 1, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 3, 0, 0, 3, 1, 2, 0], "phase_polynomial_mod4": [3, 0, 1, 0, 0, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 3, 2, 2, 1, 3, 2, 0], "phase_polynomial_mod4": [3, 0, 3, 0, 2, 2, 2, 0]}, {"affine_columns": [4, 3, 1], "affine_shift": 5, "coefficient": "-1/16", "permutation": [5, 1, 6, 2, 4, 0, 7, 3], "phase_i": [3, 3, 2, 2, 3, 1, 0, 2], "phase_polynomial_mod4": [3, 0, 3, 0, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 1, 1, 3, 1, 3, 3, 3], "phase_polynomial_mod4": [1, 0, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 1, 1, 3, 3, 1, 1, 1], "phase_polynomial_mod4": [1, 0, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 1, 3, 1, 1, 3, 1, 1], "phase_polynomial_mod4": [1, 0, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 1, 3, 1, 3, 1, 3, 3], "phase_polynomial_mod4": [1, 0, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 3, 1, 1, 1, 1, 3, 1], "phase_polynomial_mod4": [1, 2, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 3, 1, 1, 3, 3, 1, 3], "phase_polynomial_mod4": [1, 2, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 3, 3, 3, 1, 1, 1, 3], "phase_polynomial_mod4": [1, 2, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [1, 3, 3, 3, 3, 3, 3, 1], "phase_polynomial_mod4": [1, 2, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 1, 1, 1, 1, 1, 1, 3], "phase_polynomial_mod4": [3, 2, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 1, 1, 1, 3, 3, 3, 1], "phase_polynomial_mod4": [3, 2, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 1, 3, 3, 1, 1, 3, 1], "phase_polynomial_mod4": [3, 2, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 1, 3, 3, 3, 3, 1, 3], "phase_polynomial_mod4": [3, 2, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 3, 1, 3, 1, 3, 1, 1], "phase_polynomial_mod4": [3, 0, 2, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 3, 1, 3, 3, 1, 3, 3], "phase_polynomial_mod4": [3, 0, 2, 2, 0, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 3, 3, 1, 1, 3, 3, 3], "phase_polynomial_mod4": [3, 0, 0, 2, 2, 2, 2, 0]}, {"affine_columns": [1, 7, 4], "affine_shift": 5, "coefficient": "1/16", "permutation": [5, 4, 2, 3, 1, 0, 6, 7], "phase_i": [3, 3, 3, 1, 3, 1, 1, 1], "phase_polynomial_mod4": [3, 0, 0, 2, 0, 2, 2, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 1, 0, 2, 1, 3, 0, 0], "phase_polynomial_mod4": [1, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 1, 0, 2, 3, 1, 2, 2], "phase_polynomial_mod4": [1, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 1, 2, 0, 1, 3, 2, 2], "phase_polynomial_mod4": [1, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 1, 2, 0, 3, 1, 0, 0], "phase_polynomial_mod4": [1, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 3, 0, 0, 1, 1, 0, 2], "phase_polynomial_mod4": [1, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 3, 0, 0, 3, 3, 2, 0], "phase_polynomial_mod4": [1, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 3, 2, 2, 1, 1, 2, 0], "phase_polynomial_mod4": [1, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [1, 3, 2, 2, 3, 3, 0, 2], "phase_polynomial_mod4": [1, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 1, 0, 0, 1, 1, 2, 0], "phase_polynomial_mod4": [3, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 1, 0, 0, 3, 3, 0, 2], "phase_polynomial_mod4": [3, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 1, 2, 2, 1, 1, 0, 2], "phase_polynomial_mod4": [3, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 1, 2, 2, 3, 3, 2, 0], "phase_polynomial_mod4": [3, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 3, 0, 2, 1, 3, 2, 2], "phase_polynomial_mod4": [3, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 3, 0, 2, 3, 1, 0, 0], "phase_polynomial_mod4": [3, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 3, 2, 0, 1, 3, 0, 0], "phase_polynomial_mod4": [3, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 0, 4, 1, 5, 7, 3], "phase_i": [3, 3, 2, 0, 3, 1, 2, 2], "phase_polynomial_mod4": [3, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 1, 0, 0, 1, 1, 2, 2], "phase_polynomial_mod4": [1, 0, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 1, 0, 0, 3, 3, 0, 0], "phase_polynomial_mod4": [1, 0, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 1, 2, 2, 1, 1, 0, 0], "phase_polynomial_mod4": [1, 0, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 1, 2, 2, 3, 3, 2, 2], "phase_polynomial_mod4": [1, 0, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 3, 0, 2, 1, 3, 2, 0], "phase_polynomial_mod4": [1, 2, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 3, 0, 2, 3, 1, 0, 2], "phase_polynomial_mod4": [1, 2, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 3, 2, 0, 1, 3, 0, 2], "phase_polynomial_mod4": [1, 2, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [1, 3, 2, 0, 3, 1, 2, 0], "phase_polynomial_mod4": [1, 2, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 1, 0, 2, 1, 3, 0, 2], "phase_polynomial_mod4": [3, 2, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 1, 0, 2, 3, 1, 2, 0], "phase_polynomial_mod4": [3, 2, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 1, 2, 0, 1, 3, 2, 0], "phase_polynomial_mod4": [3, 2, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 1, 2, 0, 3, 1, 0, 2], "phase_polynomial_mod4": [3, 2, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 3, 0, 0, 1, 1, 0, 0], "phase_polynomial_mod4": [3, 0, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 3, 0, 0, 3, 3, 2, 2], "phase_polynomial_mod4": [3, 0, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 3, 2, 2, 1, 1, 2, 2], "phase_polynomial_mod4": [3, 0, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 6, "coefficient": "1/16", "permutation": [6, 2, 5, 1, 4, 0, 7, 3], "phase_i": [3, 3, 2, 2, 3, 3, 0, 0], "phase_polynomial_mod4": [3, 0, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 0, 1, 3, 0, 2, 1, 1], "phase_polynomial_mod4": [0, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 0, 1, 3, 2, 0, 3, 3], "phase_polynomial_mod4": [0, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 0, 3, 1, 0, 2, 3, 3], "phase_polynomial_mod4": [0, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 0, 3, 1, 2, 0, 1, 1], "phase_polynomial_mod4": [0, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 2, 1, 1, 0, 0, 1, 3], "phase_polynomial_mod4": [0, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 2, 1, 1, 2, 2, 3, 1], "phase_polynomial_mod4": [0, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 2, 3, 3, 0, 0, 3, 1], "phase_polynomial_mod4": [0, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [0, 2, 3, 3, 2, 2, 1, 3], "phase_polynomial_mod4": [0, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 0, 1, 1, 0, 0, 3, 1], "phase_polynomial_mod4": [2, 2, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 0, 1, 1, 2, 2, 1, 3], "phase_polynomial_mod4": [2, 2, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 0, 3, 3, 0, 0, 1, 3], "phase_polynomial_mod4": [2, 2, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 0, 3, 3, 2, 2, 3, 1], "phase_polynomial_mod4": [2, 2, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 2, 1, 3, 0, 2, 3, 3], "phase_polynomial_mod4": [2, 0, 3, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 2, 1, 3, 2, 0, 1, 1], "phase_polynomial_mod4": [2, 0, 3, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 2, 3, 1, 0, 2, 1, 1], "phase_polynomial_mod4": [2, 0, 1, 2, 2, 2, 0, 0]}, {"affine_columns": [4, 6, 7], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 1, 5, 0, 4, 6, 2], "phase_i": [2, 2, 3, 1, 2, 0, 3, 3], "phase_polynomial_mod4": [2, 0, 1, 2, 0, 2, 0, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 0, 1, 1, 0, 0, 3, 3], "phase_polynomial_mod4": [0, 0, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 0, 1, 1, 2, 2, 1, 1], "phase_polynomial_mod4": [0, 0, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 0, 3, 3, 0, 0, 1, 1], "phase_polynomial_mod4": [0, 0, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 0, 3, 3, 2, 2, 3, 3], "phase_polynomial_mod4": [0, 0, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 2, 1, 3, 0, 2, 3, 1], "phase_polynomial_mod4": [0, 2, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 2, 1, 3, 2, 0, 1, 3], "phase_polynomial_mod4": [0, 2, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 2, 3, 1, 0, 2, 1, 3], "phase_polynomial_mod4": [0, 2, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [0, 2, 3, 1, 2, 0, 3, 1], "phase_polynomial_mod4": [0, 2, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 0, 1, 3, 0, 2, 1, 3], "phase_polynomial_mod4": [2, 2, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 0, 1, 3, 2, 0, 3, 1], "phase_polynomial_mod4": [2, 2, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 0, 3, 1, 0, 2, 3, 1], "phase_polynomial_mod4": [2, 2, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 0, 3, 1, 2, 0, 1, 3], "phase_polynomial_mod4": [2, 2, 1, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 2, 1, 1, 0, 0, 1, 1], "phase_polynomial_mod4": [2, 0, 3, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 2, 1, 1, 2, 2, 3, 3], "phase_polynomial_mod4": [2, 0, 3, 0, 0, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 2, 3, 3, 0, 0, 3, 3], "phase_polynomial_mod4": [2, 0, 1, 0, 2, 0, 2, 0]}, {"affine_columns": [4, 3, 2], "affine_shift": 7, "coefficient": "1/16", "permutation": [7, 3, 4, 0, 5, 1, 6, 2], "phase_i": [2, 2, 3, 3, 2, 2, 1, 1], "phase_polynomial_mod4": [2, 0, 1, 0, 0, 0, 2, 0]}] diff --git a/research/resonant-all-width-projector/TASK.json b/research/resonant-all-width-projector/TASK.json new file mode 100644 index 0000000000..271128615d --- /dev/null +++ b/research/resonant-all-width-projector/TASK.json @@ -0,0 +1,72 @@ +{ + "schema_version": 1, + "task_id": "complex-rank-shape-decoder", + "priority_revision": 7, + "base_commit": "624de9dc66858af0945e5f8a0942488d62280d43", + "original_card": { + "id": "complex-rank-shape-decoder", + "question": "Can a decoder deliver the local paid mass in fewer, larger-rank children (block frame climbs instead of rank-1 to rank-3 steps)?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/complex-decoder-field-extension-seed44/README.md", + "research/complex-frame-pair-decoders/README.md", + "research/selected-k8-unrestricted-ends/README.md", + "research/eisenstein-reduction-copy-floor/README.md" + ], + "methods": [ + "Find one exact small decoding identity whose frame path climbs in blocks, and price its complete per-call profile.", + "Bound the best effective child rank achievable for one fixed support alphabet, including copies, frames and restoration." + ], + "acceptance_gate": "A per-call local profile, with all copied information, frames and restoration counted, whose ceiling exceeds the selected word's by at least 5%; masked or overcomplete supports must change an assumption of the eight-term all-pairs bound. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin. Ideal budget: rank-16 delivery is 2.31x (levers.py).", + "bottleneck_link": "Rank-1 children are about half of recursive cost; the selected word's effective child rank is about 3.9. Larger-rank delivery lowers recursive cost per unit of paid mass.", + "allowed_variations": [ + "One masked, overcomplete or block decoder family with exact labels and supports.", + "A scoped lower bound on effective rank for one alphabet.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Repacking idle remainders of an unchanged word (covered by the packing ceiling).", + "Repeating the eight-term all-pairs search inside its proved scope.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Searching below C=40 in the #2017 Eisenstein binary scalar-rectangle or fixed-support block-linear additive pairing model; specify a changed premise instead. This bound does not cover every complex decoder.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "rank shape", + "block climb", + "masked decoder", + "overcomplete", + "effective rank" + ] + }, + "scope_status": "changed", + "actual_scope": "Determine the frozen resonant channel rank at every positive tensor width and construct a uniform explicit image projector and pseudoinverse.", + "scope_change_reason": "Changed by user assignment toward a new best kappa. Complete supplier searches did not yield a gain; this independently reviewable positive channel result resolves the predecessor general-rank and image-recovery gap, without claiming a complete supplier.", + "bottleneck_link": "The exact productive image and an explicit width-uniform recovery program remove two unknown partial-channel obligations. Missing canonical encoders, complement and complete paid costs still prevent a kappa claim.", + "budget_minutes": 60, + "stop_rule": "Bound complete-profile discovery to 45 minutes; reserve the last 15 minutes for exact replay, review, source guards and release.", + "outcome": "partial", + "evidence": "Exact integer group-algebra annihilator on 21504 elements; derived all-width rank and polynomial support inverse; separate literal width 1/2/3 controls.", + "author": "Dugongue", + "ai_assistance": "OpenAI Codex with three Codex agents; no Jev, Lean, GPU proof generation or independent human review.", + "open_questions": [ + { + "question": "Can the explicit recovered image be used in a complete cheaper supplier?", + "why_it_matters": "The partial-channel result alone is not an improvement to multiplication kappa.", + "first_step": "Write canonical target encoders, complementary outputs and a fully charged chronological consumer.", + "blocked_by": "No complete profitable consumer has been constructed." + } + ] +} diff --git a/research/resonant-all-width-projector/VERIFY.json b/research/resonant-all-width-projector/VERIFY.json new file mode 100644 index 0000000000..a2332a6111 --- /dev/null +++ b/research/resonant-all-width-projector/VERIFY.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/preflight.py" + ], + "timeout_seconds": 30, + "checks": "Exact package inventory and hashes" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Exact integer group algebra, all-width rank and fixed projector certificate" + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Optimized exact certificate with assertions disabled" + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/independent_tensor.py" + ], + "timeout_seconds": 120, + "checks": "Independent literal small tensor matrices, rank-one minors, absolute phases and pseudoinverse scaling" + } + ] +} diff --git a/research/resonant-all-width-projector/independent_tensor.py b/research/resonant-all-width-projector/independent_tensor.py new file mode 100644 index 0000000000..bd487c7c16 --- /dev/null +++ b/research/resonant-all-width-projector/independent_tensor.py @@ -0,0 +1,47 @@ +"""Independent literal tensor checks for the all-width resonance theorem.""" +import json,hashlib,sys +from pathlib import Path +from fractions import Fraction + +def need(c,m): + if not c:raise ValueError(m) +def add(a,b):return a[0]+b[0],a[1]+b[1] +def mul(a,b):return a[0]*b[0]-a[1]*b[1],a[0]*b[1]+a[1]*b[0] +U=((1,0),(0,1),(-1,0),(0,-1));Z=(0,0) +def matrix(records,f,projective=False): + d=8**f;out={} + for r in records: + s=1 if r['coefficient']=='1/16' else -1 + for j in range(d): + v=j;k=0;p=0;place=1 + for _ in range(f): + digit=v%8;v//=8;k+=r['permutation'][digit]*place;place*=8 + p+=r['phase_i'][digit]-(r['phase_i'][0] if projective else 0) + w=U[p%4];w=s*w[0],s*w[1];key=k,j;old=out.get(key,Z);new=add(old,w) + if new==Z:out.pop(key,None) + else:out[key]=new + return out + +def check(path,poly): + records=json.loads(path.read_text(encoding='utf8'));need(len(records)==256,'frozen support') + need(not matrix(records,1),'literal odd width one must vanish') + M=matrix(records,2);need(bool(M),'literal width two nonzero') + (row,col),pivot=next(iter(M.items())) + for i in range(64): + a=M.get((i,col),Z) + for j in range(64):need(mul(M.get((i,j),Z),pivot)==mul(a,M.get((row,j),Z)),'exact rank-one minors') + need(not matrix(records,3),'literal odd width three must vanish') + need(matrix(records,2,True)!=M,'dropped global phase must change actual tensor matrix') + norm2=Fraction(sum(a*a+b*b for a,b in M.values()),256) + # rank(A2)=1 gives its unique positive Gram eigenvalue = ||A2||_F^2. + lam=norm2/16;q=poly[1:];qvalue=sum(Fraction(c)*lam**i for i,c in enumerate(q));need(qvalue==0,'annihilator at direct positive eigenvalue') + rvalue=-sum(Fraction(c)*lam**(i-1) for i,c in enumerate(q) if i)/q[0] + need(lam*rvalue==1,'image inverse polynomial') + need((rvalue/16)*norm2==1,'correct pseudoinverse scaling') + need((16*rvalue)*norm2!=1,'inverse scaling mutation must reject') + return {'status':'PASS_INDEPENDENT_RESONANT_TENSOR_CHECKS','direct_width_one_rank':0,'direct_width_two_rank':1,'direct_width_three_rank':0,'width_two_nonzero_entries':len(M),'width_two_gram_positive_eigenvalue':str(norm2),'scaled_gram_eigenvalue':str(lam),'global_phase_mutation_rejected':True,'wrong_pseudoinverse_scale_rejected':True} +if __name__=='__main__': + root=Path(sys.argv[1]) if len(sys.argv)>1 else Path(__file__).resolve().parent + import importlib.util + spec=importlib.util.spec_from_file_location('rank_certificate',root/'verify.py');v=importlib.util.module_from_spec(spec);spec.loader.exec_module(v) + print(json.dumps(check(root/'TARGET.json',v.POLY),sort_keys=True)) diff --git a/research/resonant-all-width-projector/preflight.py b/research/resonant-all-width-projector/preflight.py new file mode 100644 index 0000000000..76ee887854 --- /dev/null +++ b/research/resonant-all-width-projector/preflight.py @@ -0,0 +1,9 @@ +from pathlib import Path +import json,hashlib +P=Path(__file__).resolve().parent +m=json.loads((P/'MANIFEST.json').read_text(encoding='utf8')) +a={f.relative_to(P).as_posix() for f in P.rglob('*') if f.is_file() and '__pycache__' not in f.parts and f.name!='MANIFEST.json'} +if a!=set(m):raise ValueError('Manifest inventory mismatch') +for n,h in m.items(): + if hashlib.sha256((P/n).read_bytes()).hexdigest()!=h:raise ValueError('Source drift: '+n) +print('PASS_RESONANT_PACKAGE_BYTES') diff --git a/research/resonant-all-width-projector/verify.py b/research/resonant-all-width-projector/verify.py new file mode 100644 index 0000000000..f2585ea76c --- /dev/null +++ b/research/resonant-all-width-projector/verify.py @@ -0,0 +1,165 @@ +"""Exact all-width resonant rank certificate; Python 3.10+, standard library only.""" +import hashlib +import json +from collections import defaultdict +from fractions import Fraction +from pathlib import Path + +ROOT = Path(__file__).resolve().parent +PIN = 'e7df852b5c641f326ac67cd35cea8da6cfdd059fa12df1cf6fb758bb4206d684' +POLY = [0,-40131624960,219800272896,-542559928320,801997037568,-795721089024,562949320704,-294425358336,116429094784,-35292520896,8259053280,-1494247760,208111552,-22069792,1747036,-99820,3884,-92,1] +IDENTITY = tuple(range(8)), (0,)*8 + +def require(ok, message): + if not ok: + raise ValueError(message) + +def mul(a,b): + p,q=a; r,s=b + return tuple(p[j] for j in r), tuple((s[j]+q[r[j]])%4 for j in range(8)) + +def inv(a): + p,q=a; r=[0]*8; s=[0]*8 + for j,k in enumerate(p): + r[k]=j; s[k]=-q[j]%4 + return tuple(r),tuple(s) + +def convolution(a,b): + out=defaultdict(int) + for g,x in a.items(): + for h,y in b.items(): + out[mul(g,h)] += x*y + return {g:x for g,x in out.items() if x} + +def load_factorization(): + raw=(ROOT/'TARGET.json').read_bytes() + require(hashlib.sha256(raw).hexdigest()==PIN,'source SHA256 mismatch') + records=json.loads(raw) + require(hashlib.sha256(json.dumps(records,sort_keys=True).encode()).hexdigest()=='445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d','canonical source mismatch') + A={} + for x in records: + require(x['coefficient'] in ('1/16','-1/16'),'coefficient') + g=tuple(x['permutation']),tuple(x['phase_i']) + require(sorted(g[0])==list(range(8)) and all(0<=v<4 for v in g[1]),'monomial') + require(g not in A,'duplicate source term') + A[g]=1 if x['coefficient']=='1/16' else -1 + require(len(A)==256,'source support') + ds=[(IDENTITY[0],(2,)*8),(tuple(j^1 for j in range(8)),(1,)*8)] + ds += [(IDENTITY[0],tuple(2*((j>>k)&1) for j in range(8))) for k in range(3)] + D={IDENTITY} + for d in ds: + D |= {mul(d,g) for g in D} + require({mul(d,g):v for g,v in A.items()}==A,'left stabilizer') + require(len(D)==32,'projector group order') + remaining=set(A); b0=[] + while remaining: + g=min(remaining); sign=A[g]; orbit={mul(d,g) for d in D} + require(orbit<=remaining and all(A[h]==sign for h in orbit),'signed orbit') + remaining-=orbit; b0.append((g,sign)) + require(len(b0)==8,'eight cosets') + r0=b0[0][0]; ri=inv(r0) + b=[(mul(ri,g),s) for g,s in b0] + d=[mul(mul(ri,h),r0) for h in ds] + # Reconstruct H=4 A* A as an INTEGER group-algebra coefficient table. + gram=convolution({inv(g):s for g,s in A.items()},A) + require(len(gram)==704 and all(x%64==0 for x in gram.values()),'Gram divisibility') + H={g:x//64 for g,x in gram.items()} + require(sum(abs(x) for x in H.values())==1024,'Gram norm') + prod={IDENTITY:1} + for h in d: + prod=convolution(prod,{IDENTITY:1,h:1}) + fact=convolution(convolution({inv(g):s for g,s in b},prod),dict(b)) + require(all(x%2==0 for x in fact.values()),'factor divisibility') + require({g:x//2 for g,x in fact.items()}==H,'exact Gram factorization') + return raw, ds, b, d, H + +def build_action(b, d, H): + generators=list(dict.fromkeys([g for g,s in b]+d+[inv(g) for g,s in b])) + group=[IDENTITY]; index={IDENTITY:0} + for g in group: + for h in generators: + k=mul(h,g) + if k not in index: + index[k]=len(group); group.append(k) + require(len(group)<=21504,'group escaped certified bound') + require(len(group)==21504,'Gram group order') + tables={h:[index[mul(h,g)] for g in group] for h in generators} + def translate_add(out,v,h,sign): + table=tables[h] + for j,x in enumerate(v): + out[table[j]] += sign*x + def apply_H(v): + u=[0]*len(group) + for h,sign in b: + translate_add(u,v,h,sign) + for h in reversed(d): + w=u.copy(); translate_add(w,u,h,1); u=w + w=[0]*len(group) + for h,sign in b: + translate_add(w,u,inv(h),sign) + require(all(x%2==0 for x in w),'H application not integral') + return [x//2 for x in w] + e=[0]*len(group); e[0]=1 + hv=apply_H(e) + require({group[j]:v for j,v in enumerate(hv) if v}==H,'factor/table orientation') + return group, apply_H, e, hv + +def polynomial_certificate(group, apply_H, e): + q=POLY[1:]; v=e.copy(); bound=1; max_bound=1 + for k in range(16,-1,-1): + v=apply_H(v) + scale=64**(17-k) + v[0]+=q[k]*scale + bound=1024*bound+abs(q[k])*scale + max_bound=max(max_bound,bound) + require(not any(apply_H(v)),'exact degree-18 group-algebra identity failed') + max_bound=max(max_bound,1024*bound) + require(max_bound<2**255,'signed 256-bit bound') + denominator=q[0]*64**17 + numer=[-x for x in v]; numer[0]+=denominator + return numer, denominator, max_bound + +def trace_certificate(group, numer, denominator): + traces=defaultdict(int) + units=((1,0),(0,1),(-1,0),(0,-1)) + for g,x in zip(group,numer): + if not x: continue + p,ph=g; re=im=0 + for j in range(8): + if p[j]==j: + a,c=units[ph[j]]; re+=a; im+=c + if re or im: + traces[re,im]+=x + actual={str(k[0]):str(Fraction(v,denominator)) for k,v in traces.items() if v and k[1]==0} + require(all(not v or k[1]==0 for k,v in traces.items()),'uncancelled complex trace') + expected={'-8':'3/256','-4':'1/64','-2':'-1/8','2':'-1/8','4':'1/64','8':'3/256'} + require(actual==expected,'rank trace formula') + ranks=[] + for f in range(1,13): + rank=sum(Fraction(c)*int(t)**f for t,c in actual.items()) + require(rank.denominator==1 and 0<=rank<=8**f,'rank range') + ranks.append(int(rank)) + require(ranks[:6]==[0,1,0,100,0,6256],'predecessor and new-width values') + return actual, ranks + +def rejecting_controls(raw, ds, hv): + # Three rejecting controls, independent of Python assertion optimization. + changed=bytearray(raw); changed[0]^=1 + require(hashlib.sha256(changed).hexdigest()!=PIN,'source mutation control') + require(any(hv),'polynomial constant mutation must produce nonzero H residual') + require(ds[0]!=IDENTITY and mul(ds[0],ds[0])==IDENTITY,'central phase collapse control') + +def main(): + raw, ds, b, d, H = load_factorization() + group, apply_H, e, hv = build_action(b, d, H) + numer, denominator, max_bound = polynomial_certificate(group, apply_H, e) + actual, ranks = trace_certificate(group, numer, denominator) + rejecting_controls(raw, ds, hv) + receipt={'status':'PASS_EXACT_ALL_WIDTH_RESONANT_RANK','source_terms':256,'gram_support':704,'group_order':len(group),'polynomial_degree':18,'arithmetic':'unbounded exact Python integers','max_integer_bound_bits':max_bound.bit_length(),'valid_widths':'all integers f >= 1','trace_coefficients':actual,'ranks_f_1_to_12':ranks,'mutation_controls':3,'complete_supplier':False,'new_kappa':False} + print(json.dumps(receipt,sort_keys=True,indent=2)) + expected_path=ROOT/'EXPECTED.json' + if expected_path.exists(): + require(json.loads(expected_path.read_text())==receipt,'receipt mismatch') + +if __name__=='__main__': + main()