From c396428eacde0de53e2fe29330308b4a87d3d99b Mon Sep 17 00:00:00 2001 From: Nick Petalas Date: Thu, 22 Oct 2026 22:15:11 +0100 Subject: [PATCH] feat(research): certify width-four resonant channel rank --- research/resonant-channel-rank/README.md | 161 ++ research/resonant-channel-rank/RESULT.json | 227 ++ .../resonant-channel-rank/SOURCE-RESULT.json | 2471 +++++++++++++++++ research/resonant-channel-rank/SOURCES.json | 26 + research/resonant-channel-rank/TARGET.json | 1 + research/resonant-channel-rank/TASK.json | 102 + research/resonant-channel-rank/VERIFY.json | 32 + research/resonant-channel-rank/verify.py | 197 ++ 8 files changed, 3217 insertions(+) create mode 100644 research/resonant-channel-rank/README.md create mode 100644 research/resonant-channel-rank/RESULT.json create mode 100644 research/resonant-channel-rank/SOURCE-RESULT.json create mode 100644 research/resonant-channel-rank/SOURCES.json create mode 100644 research/resonant-channel-rank/TARGET.json create mode 100644 research/resonant-channel-rank/TASK.json create mode 100644 research/resonant-channel-rank/VERIFY.json create mode 100644 research/resonant-channel-rank/verify.py diff --git a/research/resonant-channel-rank/README.md b/research/resonant-channel-rank/README.md new file mode 100644 index 0000000000..66d984e813 --- /dev/null +++ b/research/resonant-channel-rank/README.md @@ -0,0 +1,161 @@ +# Exact width-four rank of the resonant partial target channel + +The frozen coefficient in JoyboyBrian's [PR #4797](https://github.com/CrocSwap/integer-mult-bounds/pull/4797) +has + +\[ +\operatorname{rank}_{\mathbb C}(A_4)=100, +\qquad A_4:\mathbb C^{4096}\longrightarrow\mathbb C^{4096}. +\] + +This is a **finite certificate** for one width. It answers the first new-width +case of that package's second open question. The predecessor establishes a pure +partial channel `A_f K_f x`, gives its norm at every width, and determines rank +at widths one and two. Those results are cited inputs. This package does not +replay its decoder or audit its construction. Since `K_4` is invertible, the +delivered partial channel also has rank 100. + +There is no general even-width rank formula here. No complete target, paid +saving, new kappa, supplier admission or multiplication theorem is claimed. + +## Frozen object and source binding + +The source is `research/resonant-owner-extraction/RESULT.json` at exact +predecessor head `121910f1890494d6134cd48c422facbe116db36d`. +[SOURCE-RESULT.json](SOURCE-RESULT.json) retains those exact bytes. Its SHA256 is +`a0fe212792f1bffca701a01185b89596ff03bb7fccf5b71accf63a92ca07fd4d`. +The pending predecessor commit need not be present in a replay checkout. + +[TARGET.json](TARGET.json) exports its 256 actual monomial terms, with real +coefficients `+1/16` or `-1/16`. Its canonical JSON digest is +`445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d`, +exactly the predecessor receipt's `target_coefficient_sha256`. Canonical JSON +here means `json.dumps(records, sort_keys=True).encode()` with the default +Python separators. This digest authenticates the exported coefficient without +rechecking the earlier elimination or norm computation. The source URL and +byte hash are also recorded in [SOURCES.json](SOURCES.json). + +For a record with permutation `p` and phase exponents `s`, the base monomial is + +\[ +g e_j=i^{s(j)}e_{p(j)},\qquad 0\le j<8. +\] + +For a column `j=j_0+8j_1+8^2j_2+8^3j_3`, its contribution to `A_4 e_j` is + +\[ +c_g\,i^{s(j_0)+s(j_1)+s(j_2)+s(j_3)} +e_{p(j_0)+8p(j_1)+8^2p(j_2)+8^3p(j_3)}. +\] + +The rational coefficient `c_g` occurs once. In particular, evaluation is +`sum_g c_g g^{tensor 4}`, not the fourth tensor power of the width-one sum. +All central phases are included in the displayed phase sum. The extra affine +and phase-polynomial fields in TARGET.json are retained for source-digest +equality; the rank calculation uses the literal permutation and phase arrays. + +## Exact certificate + +The verifier enumerates all 4,096 input columns and all 256 terms per column. +It accumulates real and imaginary integer numerators before dividing by 16. +For this width the resulting matrix is real integral. It has 6,440 nonzero +entries, 496 nonzero rows and 446 nonzero columns. Every other entry is zero +by that complete enumeration, not by a support estimate. + +Two exact calculations establish the rank. + +1. Rational sparse row reduction processes every nonzero row. It creates 100 + normalized pivot rows and makes 1,808 reductions by existing pivots. Every + original row is in their span, so the rank is at most 100. +2. The selected original row and column labels in [RESULT.json](RESULT.json) + define a 100 by 100 minor. Separate integer Bareiss elimination gives its + determinant as `-16777216 = -2^24`. Thus the rank is at least 100. + +The computation uses exact integers and fractions throughout. A rational +matrix has the same rank over the rationals and the complex numbers, because +its rank is the maximum order of a nonzero minor. The resulting 100-dimensional +image leaves a 3,996-dimensional kernel. No conclusion about other widths is +inferred from this value. + +RESULT.json is generated by the verifier. It records both label lists, the +minor determinant and the SHA256 of the full canonical sparse matrix, together +with the source digests and enumerated sizes. Default replay compares the +generated object to the frozen result and prints a receipt binding every +package file by SHA256. It does not write files. + +Six controls reject an invalid base permutation, an invalid phase, an invalid +coefficient, a duplicate minor row, the wrong determinant orientation, and a +changed coefficient with otherwise valid syntax. The duplicate minor has +determinant zero; swapping two rows negates the determinant. These controls +exercise source identity and the independent lower-bound calculation. + +## Reproduction + +Run from the repository root, using Python 3.12 and the standard library: + +```sh +~/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/resonant-channel-rank/verify.py +~/git/integer-mult-bounds/.venv/bin/python3.12 -W error -O -B research/resonant-channel-rank/verify.py +~/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/research_package.py --package research/resonant-channel-rank +~/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/check_research_commit.py --package research/resonant-channel-rank --check-source-history +``` + +Expected marker is `PASS_RESONANT_CHANNEL_RANK`, with `rank: 100` and +`dimension: 4096`. Both registered checks have a 60-second limit. To inspect +the generated scientific result without changing the frozen file, add +`--emit-result` to the direct verifier command. + +The historical card's first working command was attempted. After its omitted +historical input was materialized, it failed with `KeyError: 'complex_profile'` +against the current selected certificate schema. The current +`scripts/research_selected_baseline.py` orientation passed. Neither control +is evidence for the rank result. The package is explicitly a side question +under `complex-rank-shape-decoder`, not an improved paid profile. + +The verifier has no recursion, subprocesses or dynamic code execution. All +loops range over fixed width four, 4,096 columns, 256 records, finite matrix +supports or a minor of order at most 100. Input files are capped at 512 KiB. +No function exceeds 60 lines. Python's exact arithmetic allocates during this +bounded offline computation, a Power of Ten memory-allocation deviation. +The dimension caps and registered timeouts bound this use; no persistent or +shared state is written. Warning-strict normal and optimized Python checks +are registered. Explicit checks remain active under optimization. + +## Limits and remaining obligations + +The source channel identity is inherited from the exact head cited above. +This certificate determines its coefficient's rank at width four. It does +not independently establish the five-call preparation, free-alphabet +implementation or norm theorem. There is no physical construction campaign +in this package. + +Original `x,y`, the fresh-owner complement and retained intermediates remain +as in the predecessor. Complete target extraction, physical preparation, +storage/routing, terminal frames, cleanup, dirty restoration and recursive +supplier costs remain unknown here. Unknown costs are not zero. Independent +human and proof-kernel review, Lean, Docker and the selected scientific cold +replay are unrun. + +## Open next questions + +The structured questions are in [TASK.json](TASK.json). + +1. Find an analytic image/kernel factorization of the frozen word sum that + determines rank at general even widths. Start with the tensor evaluation + above and use rank 100 as a boundary value. The norm formula alone cannot + supply the missing factorization. +2. Decide whether a complete charged consumer can use this image. First + specify independent inputs, retained complements and every added call. + Missing coordinates, physical routing and restoration still block a + supplier-level conclusion. + +## Credit + +This contribution was produced by Nick Petalas. The frozen partial channel, +its coefficient and the explicit rank question are due to JoyboyBrian, +[PR #4797](https://github.com/CrocSwap/integer-mult-bounds/pull/4797). +Its retained lineage credits Yiyang for the phase-aligned repair and staggered +continuation in #4710, lee-phys for the original two-image prefix in #4688, +and Jacob Sussman for the small-unit model and free alphabet in #4628. +The fixed-original-owner obstruction in #4751 is unchanged. The new result +here is the exact width-four rank certificate. Apache-2.0. diff --git a/research/resonant-channel-rank/RESULT.json b/research/resonant-channel-rank/RESULT.json new file mode 100644 index 0000000000..85b33bcc4b --- /dev/null +++ b/research/resonant-channel-rank/RESULT.json @@ -0,0 +1,227 @@ +{ + "claim_type": "finite certificate", + "dimension": 4096, + "exact_row_reductions": 1808, + "matrix_sha256": "9d5487d45601277fa0fc6851153690a1c6cab858c82332f200a029744b9b2139", + "minor_columns": [ + 9, + 18, + 27, + 54, + 65, + 72, + 83, + 90, + 101, + 108, + 119, + 126, + 130, + 139, + 144, + 153, + 166, + 175, + 180, + 189, + 195, + 202, + 209, + 216, + 231, + 238, + 245, + 252, + 278, + 287, + 332, + 343, + 350, + 371, + 390, + 399, + 404, + 413, + 418, + 427, + 432, + 441, + 360, + 353, + 325, + 462, + 378, + 483, + 476, + 469, + 297, + 288, + 260, + 269, + 306, + 315, + 490, + 531, + 45, + 36, + 0, + 63, + 576, + 612, + 497, + 679, + 455, + 504, + 538, + 686, + 556, + 549, + 520, + 574, + 513, + 567, + 706, + 643, + 780, + 720, + 773, + 801, + 657, + 664, + 700, + 693, + 791, + 742, + 650, + 751, + 756, + 798, + 729, + 808, + 715, + 854, + 917, + 903, + 594, + 603 + ], + "minor_determinant": "-16777216", + "minor_rows": [ + 9, + 18, + 27, + 54, + 65, + 72, + 83, + 90, + 101, + 108, + 119, + 126, + 130, + 139, + 144, + 153, + 166, + 175, + 180, + 189, + 195, + 202, + 209, + 216, + 231, + 238, + 245, + 252, + 278, + 287, + 332, + 343, + 350, + 371, + 390, + 399, + 404, + 413, + 418, + 427, + 432, + 441, + 1026, + 1035, + 1040, + 1049, + 1062, + 1071, + 1076, + 1085, + 1091, + 1098, + 1105, + 1112, + 1127, + 1134, + 1141, + 1148, + 1152, + 1161, + 1170, + 1179, + 1206, + 1215, + 1217, + 1224, + 1235, + 1242, + 1271, + 1278, + 1412, + 1421, + 1430, + 1439, + 1458, + 1467, + 1477, + 1484, + 1495, + 1502, + 1523, + 1530, + 3078, + 3087, + 3092, + 3101, + 3106, + 3115, + 3120, + 3129, + 3204, + 3213, + 3222, + 3231, + 3250, + 3259, + 3269, + 3287, + 3456, + 3474 + ], + "nonzero_columns": 446, + "nonzero_entries": 6440, + "nonzero_rows": 496, + "rank": 100, + "rejection_controls": [ + "invalid_permutation", + "invalid_phase", + "invalid_coefficient", + "duplicated_minor_row", + "wrong_minor_orientation", + "changed_valid_coefficient_digest" + ], + "source_receipt_sha256": "a0fe212792f1bffca701a01185b89596ff03bb7fccf5b71accf63a92ca07fd4d", + "status": "PASS_RESONANT_CHANNEL_RANK", + "target_coefficient_sha256": "445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d", + "width": 4 +} diff --git a/research/resonant-channel-rank/SOURCE-RESULT.json b/research/resonant-channel-rank/SOURCE-RESULT.json new file mode 100644 index 0000000000..6447797b3d --- /dev/null +++ b/research/resonant-channel-rank/SOURCE-RESULT.json @@ -0,0 +1,2471 @@ +{ + "annihilator": [ + { + "affine_columns": [ + 4, + 2, + 1 + ], + "affine_shift": 0, + "coefficient": "1", + "permutation": [ + 0, + 4, + 2, + 6, + 1, + 5, + 3, + 7 + ], + "phase_i": [ + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 6, + 4 + ], + "affine_shift": 1, + "coefficient": "-1", + "permutation": [ + 1, + 0, + 7, + 6, + 5, + 4, + 3, + 2 + ], + "phase_i": [ + 3, + 1, + 0, + 2, + 3, + 1, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 1, + 0, + 0, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 1, + 3, + 4 + ], + "affine_shift": 4, + "coefficient": "-1", + "permutation": [ + 4, + 5, + 7, + 6, + 0, + 1, + 3, + 2 + ], + "phase_i": [ + 3, + 3, + 0, + 2, + 1, + 1, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 1, + 2, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 4, + 7, + 1 + ], + "affine_shift": 5, + "coefficient": "1", + "permutation": [ + 5, + 1, + 2, + 6, + 4, + 0, + 3, + 7 + ], + "phase_i": [ + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0 + ] + } + ], + "decoder_before_output_projector": { + "r": [ + { + "affine_columns": [ + 1, + 4, + 2 + ], + "affine_shift": 0, + "coefficient": "-1", + "permutation": [ + 0, + 1, + 4, + 5, + 2, + 3, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 6, + 1, + 2 + ], + "affine_shift": 0, + "coefficient": "-2", + "permutation": [ + 0, + 6, + 1, + 7, + 2, + 4, + 3, + 5 + ], + "phase_i": [ + 1, + 0, + 3, + 2, + 1, + 2, + 3, + 0 + ], + "phase_polynomial_mod4": [ + 1, + 3, + 2, + 0, + 0, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 4, + 1, + 6 + ], + "affine_shift": 1, + "coefficient": "1", + "permutation": [ + 1, + 5, + 0, + 4, + 7, + 3, + 6, + 2 + ], + "phase_i": [ + 3, + 3, + 3, + 3, + 2, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 7, + 4, + 6 + ], + "affine_shift": 1, + "coefficient": "2", + "permutation": [ + 1, + 6, + 5, + 2, + 7, + 0, + 3, + 4 + ], + "phase_i": [ + 0, + 0, + 2, + 0, + 3, + 3, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 2, + 3, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 4, + 1, + 3 + ], + "affine_shift": 4, + "coefficient": "1", + "permutation": [ + 4, + 0, + 5, + 1, + 7, + 3, + 6, + 2 + ], + "phase_i": [ + 3, + 1, + 1, + 3, + 2, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 2, + 0, + 3, + 2, + 2, + 0 + ] + }, + { + "affine_columns": [ + 2, + 4, + 3 + ], + "affine_shift": 4, + "coefficient": "2", + "permutation": [ + 4, + 6, + 0, + 2, + 7, + 5, + 3, + 1 + ], + "phase_i": [ + 0, + 0, + 0, + 0, + 3, + 1, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 0, + 0, + 3, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 4, + 7 + ], + "affine_shift": 5, + "coefficient": "-1", + "permutation": [ + 5, + 4, + 1, + 0, + 2, + 3, + 6, + 7 + ], + "phase_i": [ + 2, + 0, + 2, + 0, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 0, + 0, + 2, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 3, + 1, + 7 + ], + "affine_shift": 5, + "coefficient": "-2", + "permutation": [ + 5, + 6, + 4, + 7, + 2, + 1, + 3, + 0 + ], + "phase_i": [ + 3, + 0, + 3, + 2, + 1, + 2, + 3, + 2 + ], + "phase_polynomial_mod4": [ + 3, + 1, + 0, + 2, + 2, + 0, + 2, + 0 + ] + } + ], + "t": [], + "u": [ + { + "affine_columns": [ + 1, + 4, + 2 + ], + "affine_shift": 2, + "coefficient": "-1", + "permutation": [ + 2, + 3, + 6, + 7, + 0, + 1, + 4, + 5 + ], + "phase_i": [ + 3, + 1, + 3, + 1, + 1, + 3, + 1, + 3 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 4, + 7 + ], + "affine_shift": 2, + "coefficient": "-1", + "permutation": [ + 2, + 3, + 6, + 7, + 5, + 4, + 1, + 0 + ], + "phase_i": [ + 3, + 1, + 3, + 1, + 3, + 3, + 1, + 1 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 0, + 0, + 0, + 2, + 2, + 0 + ] + }, + { + "affine_columns": [ + 4, + 3, + 2 + ], + "affine_shift": 2, + "coefficient": "-1", + "permutation": [ + 2, + 6, + 1, + 5, + 0, + 4, + 3, + 7 + ], + "phase_i": [ + 3, + 3, + 2, + 2, + 1, + 1, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 3, + 0, + 2, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 4, + 6, + 7 + ], + "affine_shift": 2, + "coefficient": "-1", + "permutation": [ + 2, + 6, + 4, + 0, + 5, + 1, + 3, + 7 + ], + "phase_i": [ + 3, + 3, + 2, + 0, + 3, + 1, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 3, + 2, + 0, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 4, + 1, + 6 + ], + "affine_shift": 7, + "coefficient": "1", + "permutation": [ + 7, + 3, + 6, + 2, + 1, + 5, + 0, + 4 + ], + "phase_i": [ + 1, + 1, + 3, + 3, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 2, + 0, + 3, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 4, + 1, + 3 + ], + "affine_shift": 7, + "coefficient": "1", + "permutation": [ + 7, + 3, + 6, + 2, + 4, + 0, + 5, + 1 + ], + "phase_i": [ + 1, + 1, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 2, + 0, + 3, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 1, + 7, + 3 + ], + "affine_shift": 7, + "coefficient": "1", + "permutation": [ + 7, + 6, + 0, + 1, + 4, + 5, + 3, + 2 + ], + "phase_i": [ + 1, + 3, + 3, + 3, + 0, + 0, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 2, + 2, + 3, + 2, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 6 + ], + "affine_shift": 7, + "coefficient": "1", + "permutation": [ + 7, + 6, + 5, + 4, + 1, + 0, + 3, + 2 + ], + "phase_i": [ + 1, + 3, + 1, + 3, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 0, + 0, + 3, + 0, + 2, + 0 + ] + } + ], + "v": [], + "x": [], + "y": [], + "z": [ + { + "affine_columns": [ + 4, + 2, + 1 + ], + "affine_shift": 0, + "coefficient": "1", + "permutation": [ + 0, + 4, + 2, + 6, + 1, + 5, + 3, + 7 + ], + "phase_i": [ + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 6, + 4 + ], + "affine_shift": 1, + "coefficient": "-1", + "permutation": [ + 1, + 0, + 7, + 6, + 5, + 4, + 3, + 2 + ], + "phase_i": [ + 3, + 1, + 0, + 2, + 3, + 1, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 1, + 0, + 0, + 0, + 2, + 0 + ] + }, + { + "affine_columns": [ + 1, + 3, + 4 + ], + "affine_shift": 4, + "coefficient": "-1", + "permutation": [ + 4, + 5, + 7, + 6, + 0, + 1, + 3, + 2 + ], + "phase_i": [ + 3, + 3, + 0, + 2, + 1, + 1, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 1, + 2, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 4, + 7, + 1 + ], + "affine_shift": 5, + "coefficient": "1", + "permutation": [ + 5, + 1, + 2, + 6, + 4, + 0, + 3, + 7 + ], + "phase_i": [ + 2, + 0, + 2, + 2, + 0, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 0, + 2, + 2, + 0, + 2, + 0 + ] + } + ] + }, + "eliminations": [ + { + "register": "r", + "terms": 8 + }, + { + "register": "v", + "terms": 0 + }, + { + "register": "u", + "terms": 8 + }, + { + "register": "x", + "terms": 0 + } + ], + "final_decoder_term_counts": { + "r": 256, + "t": 0, + "u": 256, + "v": 0, + "x": 0, + "y": 0, + "z": 128 + }, + "formal_target_terms": 256, + "formal_y_terms": 0, + "hilbert_schmidt_trace_powers": [ + { + "base": [ + -8, + 0 + ], + "coefficient": "1" + }, + { + "base": [ + -2, + 0 + ], + "coefficient": "-20" + }, + { + "base": [ + -1, + 0 + ], + "coefficient": "32" + }, + { + "base": [ + 1, + 0 + ], + "coefficient": "32" + }, + { + "base": [ + 2, + 0 + ], + "coefficient": "-20" + }, + { + "base": [ + 8, + 0 + ], + "coefficient": "1" + } + ], + "negative_controls": [ + "omit_output_projector", + "restore_original_coefficient_two", + "omit_source_projector", + "discard_source_complement", + "identify_central_minus_I_with_I", + "infer_width_one_identity_at_width_two" + ], + "output_projector": [ + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 2, + 0, + 2, + 2, + 0, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 2 + ], + "phase_polynomial_mod4": [ + 0, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 2, + 0, + 0, + 0, + 0, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 2, + 0, + 0, + 2, + 2, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/32", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "phase_polynomial_mod4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 1, + 1, + 1, + 3, + 3, + 3, + 3 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 1, + 3, + 3, + 1, + 1, + 3, + 3 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 1, + 3, + 3, + 3, + 3, + 1, + 1 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 3, + 1, + 3, + 3, + 1, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 3, + 3, + 1, + 1, + 3, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 3, + 3, + 1, + 3, + 1, + 1, + 3 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 1, + 1, + 3, + 1, + 3, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 1, + 1, + 3, + 3, + 1, + 1, + 3 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 1, + 3, + 1, + 1, + 3, + 1, + 3 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 3, + 1, + 1, + 1, + 1, + 3, + 3 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 3, + 1, + 1, + 3, + 3, + 1, + 1 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 3, + 3, + 3, + 1, + 1, + 1, + 1 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "1/32", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3 + ], + "phase_polynomial_mod4": [ + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "relative_order": 4, + "scope": "Exact all-positive-width pure partial Kx channel; nonzero at every even width, rank one at width two, and zero at odd widths. No full Kx, Ky, restoration budget, recursive saving or multiplication theorem.", + "source_arithmetic_sha256": "0d277854396e4ceda1e0f26916bd576b6decb474c0692b6671ebf2595283ddb9", + "source_projector": [ + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 0, + "coefficient": "1/4", + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "phase_i": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "phase_polynomial_mod4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 1, + "coefficient": "-1/4", + "permutation": [ + 1, + 0, + 3, + 2, + 5, + 4, + 7, + 6 + ], + "phase_i": [ + 1, + 3, + 3, + 1, + 1, + 3, + 3, + 1 + ], + "phase_polynomial_mod4": [ + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 4, + "coefficient": "-1/4", + "permutation": [ + 4, + 5, + 6, + 7, + 0, + 1, + 2, + 3 + ], + "phase_i": [ + 1, + 1, + 1, + 1, + 3, + 3, + 3, + 3 + ], + "phase_polynomial_mod4": [ + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ] + }, + { + "affine_columns": [ + 1, + 2, + 4 + ], + "affine_shift": 5, + "coefficient": "1/4", + "permutation": [ + 5, + 4, + 7, + 6, + 1, + 0, + 3, + 2 + ], + "phase_i": [ + 2, + 0, + 0, + 2, + 0, + 2, + 2, + 0 + ], + "phase_polynomial_mod4": [ + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ] + } + ], + "status": "PASS_RESONANT_OWNER_EXTRACTION", + "target_coefficient_sha256": "445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d", + "width_checks": [ + { + "first_nonzero": null, + "nonzero_entries": 0, + "output_projector_rank": 0, + "source_projector_rank": 2, + "target_coefficient_rank": 0, + "width": 1 + }, + { + "first_nonzero": [ + 18, + 0, + [ + "-2", + "0" + ] + ], + "nonzero_entries": 8, + "output_projector_rank": 4, + "source_projector_rank": 16, + "target_coefficient_rank": 1, + "width": 2 + } + ] +} diff --git a/research/resonant-channel-rank/SOURCES.json b/research/resonant-channel-rank/SOURCES.json new file mode 100644 index 0000000000..249a1508a0 --- /dev/null +++ b/research/resonant-channel-rank/SOURCES.json @@ -0,0 +1,26 @@ +{ + "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" + } + ], + "retained_external_sources": [ + { + "url": "https://github.com/JoyboyBrian/integer-mult-bounds/blob/121910f1890494d6134cd48c422facbe116db36d/research/resonant-owner-extraction/RESULT.json", + "path": "SOURCE-RESULT.json", + "sha256": "a0fe212792f1bffca701a01185b89596ff03bb7fccf5b71accf63a92ca07fd4d", + "reason": "Pending predecessor is not required in Git history. Exact byte export is committed locally; verify.py checks this SHA256 and the embedded target digest." + } + ] +} diff --git a/research/resonant-channel-rank/TARGET.json b/research/resonant-channel-rank/TARGET.json new file mode 100644 index 0000000000..e40739b7d5 --- /dev/null +++ b/research/resonant-channel-rank/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-channel-rank/TASK.json b/research/resonant-channel-rank/TASK.json new file mode 100644 index 0000000000..71b7d29265 --- /dev/null +++ b/research/resonant-channel-rank/TASK.json @@ -0,0 +1,102 @@ +{ + "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": "Exact rank 100 of the frozen resonant partial target coefficient at tensor width four, over the complex numbers.", + "scope_change_reason": "Take Open next question 2 of JoyboyBrian PR4797 as a bounded information-rank side result. This does not supply or optimize a complete decoder or paid profile.", + "bottleneck_link": "The nonzero norm of a partial channel does not count recovered target coordinates. At width four this result establishes that exactly 100 independent coordinates are available out of 4096. Physical consumer and restoration costs remain unknown.", + "budget_minutes": 60, + "stop_rule": "Stop at the first verified new-width rank. Leave the general even-width law and further construction to Open next questions.", + "outcome": "completed", + "evidence": "All 4096 columns of the authenticated 256-term target coefficient; exact rational row reduction; exact nonzero 100 by 100 integer minor; six rejection controls; source-bound generated RESULT.json.", + "author": "Nick Petalas", + "ai_assistance": "Independent human and formal proof-kernel review are unclaimed.", + "open_questions": [ + { + "question": "What is rank(A_f) at general even widths?", + "why_it_matters": "A rank formula would quantify the information yield of the retained partial channel before any complete-construction proposal.", + "first_step": "Find a factorization of the authenticated TARGET.json word sum compatible with tensor evaluation. The width-four rank 100 is a boundary value, not a formula.", + "blocked_by": "An analytic image/kernel description. The norm formula alone is insufficient." + }, + { + "question": "Can a charged full-target consumer use the 100-dimensional width-four image?", + "why_it_matters": "The finite rank is useful to a supplier only when missing target coordinates, complements and dirty restoration are paid.", + "first_step": "Write one literal consumer contract with independent inputs and retained complements; price every added call before synthesis.", + "blocked_by": "Full extraction, physical routing/storage, cleanup and a complete paid profile remain absent." + } + ], + "claim_url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1166#discussioncomment-19132724", + "claim_type": "finite certificate", + "family_decision": "Narrow to information rank at width four. No construction expansion. Retained original inputs and source complement, physical preparation, missing target coordinates, routing/storage, terminal frames, restoration and recursive supplier costs remain unknown here.", + "environment": { + "python": "3.12.15", + "platform": "macOS-27.0.1-arm64-arm-64bit", + "dependencies": "Python standard library only" + }, + "source_export": { + "pr": 4797, + "author": "JoyboyBrian", + "head": "121910f1890494d6134cd48c422facbe116db36d", + "path": "research/resonant-owner-extraction/RESULT.json", + "retained": "SOURCE-RESULT.json", + "role": "Frozen target-coefficient digest and wordwise tensor convention. Predecessor identity and norm theorem are cited inputs, not replayed." + }, + "unrun_obligations": [ + "general even-width rank formula", + "full Kx and Ky extraction", + "physical paid preparation and recursive supplier admission", + "storage/routing, terminal frames and restoration", + "independent human or proof-kernel review", + "selected cold replay, Lean and Docker" + ] +} diff --git a/research/resonant-channel-rank/VERIFY.json b/research/resonant-channel-rank/VERIFY.json new file mode 100644 index 0000000000..af123f13c8 --- /dev/null +++ b/research/resonant-channel-rank/VERIFY.json @@ -0,0 +1,32 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-W", + "error", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "Authenticate the frozen coefficient; exact width-four upper rank and nonzero minor lower bound; rejection controls and generated receipt equality." + }, + { + "argv": [ + "{python}", + "-W", + "error", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "Authenticate the frozen coefficient; exact width-four upper rank and nonzero minor lower bound; rejection controls and generated receipt equality." + } + ] +} diff --git a/research/resonant-channel-rank/verify.py b/research/resonant-channel-rank/verify.py new file mode 100644 index 0000000000..1168fb8e4b --- /dev/null +++ b/research/resonant-channel-rank/verify.py @@ -0,0 +1,197 @@ +#!/usr/bin/env python3 +"""Exact width-four rank of the frozen resonant partial target coefficient.""" + +import argparse +from fractions import Fraction +import hashlib +import json +from pathlib import Path + + +HERE = Path(__file__).resolve().parent +SOURCE_SHA = "a0fe212792f1bffca701a01185b89596ff03bb7fccf5b71accf63a92ca07fd4d" +TARGET_SHA = "445b3e5f8edb6f345981c02c1feb91f2ce473763be74ca7d949421e1ca64d03d" +WIDTH, DIMENSION, TERMS = 4, 4096, 256 + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def read_bytes(name): + path = HERE / name + require(path.stat().st_size <= 512 * 1024, "input size cap: " + name) + return path.read_bytes() + + +def digest(value): + return hashlib.sha256(json.dumps(value, sort_keys=True).encode()).hexdigest() + + +def validate_records(records): + require(isinstance(records, list) and len(records) == TERMS, "target term count") + for record in records: + require(record["coefficient"] in ("1/16", "-1/16"), "target coefficient") + require(sorted(record["permutation"]) == list(range(8)), "base permutation") + phases = record["phase_i"] + require(len(phases) == 8 and all(type(x) is int and 0 <= x < 4 for x in phases), + "base phases") + + +def load_records(): + source_bytes = read_bytes("SOURCE-RESULT.json") + require(hashlib.sha256(source_bytes).hexdigest() == SOURCE_SHA, "source receipt bytes") + source = json.loads(source_bytes) + require(source["target_coefficient_sha256"] == TARGET_SHA, "source target digest") + records = json.loads(read_bytes("TARGET.json")) + validate_records(records) + require(digest(records) == TARGET_SHA, "exported target digest") + return records + + +def tensor_rows(records): + """Evaluate each actual word at width four, retaining its coefficient once.""" + rows = {} + units = ((1, 0), (0, 1), (-1, 0), (0, -1)) + for column in range(DIMENSION): + entries = {} + for record in records: + rest, destination, phase, place = column, 0, 0, 1 + for _ in range(WIDTH): + digit, rest = rest % 8, rest // 8 + destination += place * record["permutation"][digit] + place *= 8 + phase += record["phase_i"][digit] + real, imag = units[phase % 4] + sign = 1 if record["coefficient"] == "1/16" else -1 + old_real, old_imag = entries.get(destination, (0, 0)) + entries[destination] = old_real + sign * real, old_imag + sign * imag + for row, (real, imag) in entries.items(): + require(imag == 0 and real % 16 == 0, "real integral width-four coefficient") + if real: + rows.setdefault(row, {})[column] = real // 16 + return rows + + +def row_reduce(rows): + """Exact echelon reduction supplies an upper bound and selects a minor.""" + pivots, basis_rows, basis_columns = {}, [], [] + reductions = 0 + for label, original in sorted(rows.items()): + row = {column: Fraction(value) for column, value in original.items()} + for _ in range(DIMENSION + 1): + if not row: + break + column = min(row) + if column not in pivots: + divisor = row[column] + pivots[column] = {key: value / divisor for key, value in row.items()} + basis_rows.append(label) + basis_columns.append(column) + break + multiplier = row[column] + for key, value in pivots[column].items(): + updated = row.get(key, Fraction(0)) - multiplier * value + if updated: + row[key] = updated + else: + row.pop(key, None) + reductions += 1 + else: + raise ValueError("row-reduction iteration bound") + return basis_rows, basis_columns, reductions + + +def determinant(matrix): + """Integer Bareiss elimination, independent of the rational upper bound.""" + size = len(matrix) + require(1 <= size <= 100 and all(len(row) == size for row in matrix), "minor shape") + work = [row[:] for row in matrix] + previous, sign = 1, 1 + for column in range(size - 1): + pivot_row = next((r for r in range(column, size) if work[r][column]), None) + if pivot_row is None: + return 0 + if pivot_row != column: + work[column], work[pivot_row] = work[pivot_row], work[column] + sign = -sign + pivot = work[column][column] + for row in range(column + 1, size): + for key in range(column + 1, size): + numerator = work[row][key] * pivot - work[row][column] * work[column][key] + quotient, remainder = divmod(numerator, previous) + require(remainder == 0, "Bareiss exact division") + work[row][key] = quotient + work[row][column] = 0 + previous = pivot + return sign * work[-1][-1] + + +def controls(records, minor, minor_det): + rejected = [] + for name, field, bad in (("invalid_permutation", "permutation", [0] * 8), + ("invalid_phase", "phase_i", [4] * 8), + ("invalid_coefficient", "coefficient", "1/8")): + mutant = [dict(record) for record in records] + mutant[0][field] = bad + try: + validate_records(mutant) + except ValueError: + rejected.append(name) + else: + raise ValueError("accepted malformed target: " + name) + duplicate = [row[:] for row in minor] + duplicate[1] = duplicate[0][:] + require(determinant(duplicate) == 0, "duplicated-row control") + rejected.append("duplicated_minor_row") + swapped = [row[:] for row in minor] + swapped[0], swapped[1] = swapped[1], swapped[0] + require(determinant(swapped) == -minor_det, "minor orientation control") + rejected.append("wrong_minor_orientation") + changed = [dict(record) for record in records] + changed[0]["coefficient"] = "-1/16" if changed[0]["coefficient"] == "1/16" else "1/16" + require(digest(changed) != TARGET_SHA, "changed valid coefficient digest") + rejected.append("changed_valid_coefficient_digest") + return rejected + + +def verify(): + records = load_records() + rows = tensor_rows(records) + basis_rows, basis_columns, reductions = row_reduce(rows) + rank = len(basis_rows) + require(rank == 100, "exact upper rank") + minor = [[rows[row].get(column, 0) for column in basis_columns] for row in basis_rows] + minor_det = determinant(minor) + require(minor_det != 0, "exact lower rank") + canonical = [[row, sorted(values.items())] for row, values in sorted(rows.items())] + return {"status": "PASS_RESONANT_CHANNEL_RANK", "claim_type": "finite certificate", + "width": WIDTH, "dimension": DIMENSION, "rank": rank, + "source_receipt_sha256": SOURCE_SHA, "target_coefficient_sha256": TARGET_SHA, + "matrix_sha256": digest(canonical), "nonzero_rows": len(rows), + "nonzero_columns": len({c for values in rows.values() for c in values}), + "nonzero_entries": sum(map(len, rows.values())), "exact_row_reductions": reductions, + "minor_rows": basis_rows, "minor_columns": basis_columns, + "minor_determinant": str(minor_det), + "rejection_controls": controls(records, minor, minor_det)} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--emit-result", action="store_true", help="print generated result JSON") + args = parser.parse_args() + result = verify() + if args.emit_result: + print(json.dumps(result, indent=2, sort_keys=True)) + return + require(json.loads(read_bytes("RESULT.json")) == result, "frozen generated result") + names = ("README.md", "RESULT.json", "SOURCE-RESULT.json", "SOURCES.json", + "TARGET.json", "TASK.json", "VERIFY.json", "verify.py") + hashes = {name: hashlib.sha256(read_bytes(name)).hexdigest() for name in names} + print(json.dumps({"status": result["status"], "rank": result["rank"], + "dimension": DIMENSION, "file_sha256": hashes}, sort_keys=True)) + + +if __name__ == "__main__": + main()