From bc515eaf824ebbf3defbea147b44474818ad26a5 Mon Sep 17 00:00:00 2001 From: yonghaozheng64-commits Date: Tue, 13 Oct 2026 09:40:00 -0700 Subject: [PATCH] Research: certify actual Turyn profile asymmetric block rank 9d --- research/turyn-profile-cnf/BUILD.json | 19 + research/turyn-profile-cnf/CLAIM.json | 109 + research/turyn-profile-cnf/CONTROLS.json | 1467 + research/turyn-profile-cnf/CORE.cnf | 1838 ++ research/turyn-profile-cnf/EXPECTED.json | 50 + research/turyn-profile-cnf/NOTICE.md | 38 + research/turyn-profile-cnf/PROOF.json | 4592 ++++ research/turyn-profile-cnf/PROOF.md | 138 + research/turyn-profile-cnf/README.md | 104 + research/turyn-profile-cnf/SOURCES.json | 15 + research/turyn-profile-cnf/VALIDATION.json | 32 + research/turyn-profile-cnf/WITNESS.json | 1171 + research/turyn-profile-cnf/build.py | 236 + research/turyn-profile-cnf/test_verify.py | 108 + research/turyn-profile-cnf/verify.py | 296 + research/turyn-profile-parity-lift/BUILD.json | 36 + .../CERTIFICATE.json | 2332 ++ research/turyn-profile-parity-lift/CLAIM.json | 138 + .../turyn-profile-parity-lift/COMPARISON.md | 65 + .../turyn-profile-parity-lift/EXPECTED.json | 198 + .../FULL-PROFILE-EXPECTED.json | 47 + .../FULL-PROFILE-UPPER.json | 1328 + .../GLOBAL-SCOPE-CONTROL.json | 140 + research/turyn-profile-parity-lift/NOTICE.md | 38 + research/turyn-profile-parity-lift/PROOF.md | 190 + research/turyn-profile-parity-lift/README.md | 116 + .../SAME-CLASS-CONTROL.json | 37 + .../SOURCE-AUDIT.json | 79 + .../turyn-profile-parity-lift/SOURCES.json | 14 + .../turyn-profile-parity-lift/VALIDATION.json | 65 + .../algebraic/EXPECTED.json | 27 + .../algebraic/ORDINARY-PC-PROOF.json | 22603 ++++++++++++++++ .../algebraic/PROOF.md | 136 + .../algebraic/QUADRATIC-RANK.json | 237 + .../algebraic/SOURCES.json | 7 + .../algebraic/build.py | 172 + .../algebraic/test_verify.py | 85 + .../algebraic/verify.py | 162 + research/turyn-profile-parity-lift/build.py | 203 + .../test_full_profiles.py | 82 + .../turyn-profile-parity-lift/test_package.py | 123 + .../turyn-profile-parity-lift/test_verify.py | 168 + research/turyn-profile-parity-lift/verify.py | 250 + .../verify_full_profiles.py | 156 + 44 files changed, 39447 insertions(+) create mode 100644 research/turyn-profile-cnf/BUILD.json create mode 100644 research/turyn-profile-cnf/CLAIM.json create mode 100644 research/turyn-profile-cnf/CONTROLS.json create mode 100644 research/turyn-profile-cnf/CORE.cnf create mode 100644 research/turyn-profile-cnf/EXPECTED.json create mode 100644 research/turyn-profile-cnf/NOTICE.md create mode 100644 research/turyn-profile-cnf/PROOF.json create mode 100644 research/turyn-profile-cnf/PROOF.md create mode 100644 research/turyn-profile-cnf/README.md create mode 100644 research/turyn-profile-cnf/SOURCES.json create mode 100644 research/turyn-profile-cnf/VALIDATION.json create mode 100644 research/turyn-profile-cnf/WITNESS.json create mode 100644 research/turyn-profile-cnf/build.py create mode 100644 research/turyn-profile-cnf/test_verify.py create mode 100644 research/turyn-profile-cnf/verify.py create mode 100644 research/turyn-profile-parity-lift/BUILD.json create mode 100644 research/turyn-profile-parity-lift/CERTIFICATE.json create mode 100644 research/turyn-profile-parity-lift/CLAIM.json create mode 100644 research/turyn-profile-parity-lift/COMPARISON.md create mode 100644 research/turyn-profile-parity-lift/EXPECTED.json create mode 100644 research/turyn-profile-parity-lift/FULL-PROFILE-EXPECTED.json create mode 100644 research/turyn-profile-parity-lift/FULL-PROFILE-UPPER.json create mode 100644 research/turyn-profile-parity-lift/GLOBAL-SCOPE-CONTROL.json create mode 100644 research/turyn-profile-parity-lift/NOTICE.md create mode 100644 research/turyn-profile-parity-lift/PROOF.md create mode 100644 research/turyn-profile-parity-lift/README.md create mode 100644 research/turyn-profile-parity-lift/SAME-CLASS-CONTROL.json create mode 100644 research/turyn-profile-parity-lift/SOURCE-AUDIT.json create mode 100644 research/turyn-profile-parity-lift/SOURCES.json create mode 100644 research/turyn-profile-parity-lift/VALIDATION.json create mode 100644 research/turyn-profile-parity-lift/algebraic/EXPECTED.json create mode 100644 research/turyn-profile-parity-lift/algebraic/ORDINARY-PC-PROOF.json create mode 100644 research/turyn-profile-parity-lift/algebraic/PROOF.md create mode 100644 research/turyn-profile-parity-lift/algebraic/QUADRATIC-RANK.json create mode 100644 research/turyn-profile-parity-lift/algebraic/SOURCES.json create mode 100644 research/turyn-profile-parity-lift/algebraic/build.py create mode 100644 research/turyn-profile-parity-lift/algebraic/test_verify.py create mode 100644 research/turyn-profile-parity-lift/algebraic/verify.py create mode 100644 research/turyn-profile-parity-lift/build.py create mode 100644 research/turyn-profile-parity-lift/test_full_profiles.py create mode 100644 research/turyn-profile-parity-lift/test_package.py create mode 100644 research/turyn-profile-parity-lift/test_verify.py create mode 100644 research/turyn-profile-parity-lift/verify.py create mode 100644 research/turyn-profile-parity-lift/verify_full_profiles.py diff --git a/research/turyn-profile-cnf/BUILD.json b/research/turyn-profile-cnf/BUILD.json new file mode 100644 index 0000000000..4cd2f96307 --- /dev/null +++ b/research/turyn-profile-cnf/BUILD.json @@ -0,0 +1,19 @@ +{ + "cnf_clauses": 1837, + "cnf_variables": 118, + "core_variable_edges": 57, + "full_variable_edges": 71, + "nine_bit_solver_statistics": { + "maximum_depth": 9, + "nodes": 10, + "unit_steps": 227 + }, + "seed": 78, + "solver_statistics": { + "conflicts": 43, + "maximum_depth": 9, + "nodes": 85, + "unit_steps": 1042 + }, + "status": "UNSAT" +} diff --git a/research/turyn-profile-cnf/CLAIM.json b/research/turyn-profile-cnf/CLAIM.json new file mode 100644 index 0000000000..a07d231b60 --- /dev/null +++ b/research/turyn-profile-cnf/CLAIM.json @@ -0,0 +1,109 @@ +{ + "track": "Independent verification or formalization", + "assignment_seed": 78, + "seed_source": "secrets.randbelow(100), OS-backed, drawn 2026-10-13T12:52:44Z", + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "start_utc": "2026-10-13T12:52:00Z", + "expected_finish_utc": "2026-10-13T13:52:00Z", + "selected_kappa": "0.001661634653669567", + "selected_pr": 799, + "candidates": [ + { + "object": "PR598 actual 24-port single-profile standard-dot I8 obstruction", + "decision": "selected", + "method": "Independent integer-coordinate enumeration and CNF/DPLL proof certificate, verified by a small proof checker; optional deterministic edge-deletion core", + "difference": "No imports of predecessor NumPy geometry, original arc-consistency CSP search, or verifier code; explicit machine-checkable contradiction rather than trusting a search return value" + }, + { + "object": "PR799 exact moment endpoint-to-kappa identity", + "decision": "not selected", + "reason": "Recent PR894 and PR885 cover exact reduction and formal moment obligations; high overlap" + }, + { + "object": "Prime-power cyclic inverse Bezout identities", + "decision": "not selected", + "reason": "Existing primary and SymPy-independent engines already replay the named identities; weak incremental value" + } + ], + "claim": "Verify PR598 single-profile I8 nonexistence with an independently encoded proof artifact. No new kappa or global nonlinear fitting claim.", + "domain": "24 explicit actual Turyn ports, seven fixed orthonormal anchors, all odd eight-bit labels on the remaining seventeen ports; complete graph constraints, not sampled", + "seed_usage": "Seed 78 selects the historical profile witness and deterministic ordering for any certificate reduction.", + "stopping_rule": "Complete one independent finite contradiction certificate with exact geometry and negative controls; stop at this obligation. No global label search or supplier optimization.", + "coordination": "No open sprint issue returned; open issues were #913 and #650. No public claim posted; local handoff mode.", + "overlap_review": { + "latest_prs_observed": "818 through 922 (100-item recent page), 2026-10-13T12:53Z", + "targeted_all_state_search": "Turyn: PR598 and PR898 only at 2026-10-13T12:55Z", + "predecessor_review": "PR598 incorporated at exact head 615ca6f06fdea0c50dbef733370c47349e25c555; independent finite evidence only, not reopened negative search", + "related_pr898": "Historical Leech-minor arithmetic acceleration, not this fitting certificate", + "final_refresh_utc": "2026-10-13T13:08:00Z", + "final_recent_prs": [ + { + "number": 926, + "title": "Finite bit construction: two-sided R439 compensation saves 1,228 more ADDs beyond PR915", + "head": "1e9c43ee8dbeeb9aca0e8fdecbf9769db4f4a29e", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/926" + }, + { + "number": 925, + "title": "Finite bit construction: R439 frame 267 reaches a 12-ADD positive-transfer minimum (no new kappa)", + "head": "eb85d40a1ba80c2f776481fbeed1bae8cf04cfde", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/925" + }, + { + "number": 924, + "title": "Research: certify coupled factory scales and exact gauge floor", + "head": "e6f3cb8ca813dfc54c77738c9acd74a536b607fd", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/924" + }, + { + "number": 923, + "title": "Finite bit construction: R439 frame520 uses 29 ADDs, four fewer complete ADDs than PR844 (no new kappa)", + "head": "7287ea1524f37899d3d209dc4a9f8ba5c06766f5", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/923" + }, + { + "number": 898, + "title": "Tooling: accelerate historical Leech minors with exact byte lanes", + "head": "521c86e7fd4d0fbd1ed4e0524aa26a1e45861477", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/898" + }, + { + "number": 894, + "title": "Research audit: exact endpoint-to-kappa reduction of the selected frontier799 assembly (no new kappa)", + "head": "144e7e21c4f6ab4afda1338fe25eaab5a53b4431", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/894" + }, + { + "number": 885, + "title": "[Lean] Prove the selected PR799 native Real moment bound", + "head": "0181d0f2e00278535f435968f000d7e2ec4b93aa", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/885" + } + ], + "final_all_state_searches": { + "Turyn": { + "results": [ + 598, + 898 + ], + "conclusion": "No duplicate independent profile-CNF package" + }, + "CNF": { + "results": [ + 634 + ], + "conclusion": "PR634 uses DRUP proofs for different Lorentzian minrank graphs over characteristic not two; no overlap with the PR598 I8 witness" + } + } + }, + "attribution": "PR598 and source packages prepared for DominikScholz with OpenAI assistance. This new independent package is produced with substantial OpenAI assistance; Apache-2.0.", + "completed_result": { + "status": "completed independent finite verification", + "original_variable_edges": 71, + "inclusion_minimal_core_variable_edges": 57, + "core_scope": "All anchor constraints fixed; no global minimum edge count or vertex count claim", + "explicit_core_edge_deletion_controls": 57, + "finite_standard_dot_dimension": 9, + "new_kappa": false + } +} diff --git a/research/turyn-profile-cnf/CONTROLS.json b/research/turyn-profile-cnf/CONTROLS.json new file mode 100644 index 0000000000..2675ea3149 --- /dev/null +++ b/research/turyn-profile-cnf/CONTROLS.json @@ -0,0 +1,1467 @@ +{ + "core_single_edge_deletions": [ + { + "labels": [ + 128, + 128, + 4, + 64, + 1, + 1, + 64, + 2, + 16, + 4, + 16, + 128, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 1, + 0 + ] + }, + { + "labels": [ + 8, + 128, + 8, + 64, + 4, + 4, + 64, + 2, + 16, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 128 + ], + "removed_edge": [ + 2, + 0 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 128, + 4, + 128, + 64, + 2, + 4, + 1, + 128, + 1, + 1, + 32, + 16, + 2, + 64 + ], + "removed_edge": [ + 3, + 0 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 16, + 2, + 64, + 2, + 1, + 1, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 4, + 1 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 16, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 5, + 1 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 4, + 4, + 64, + 2, + 16, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 128 + ], + "removed_edge": [ + 5, + 2 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 1, + 4, + 128, + 2, + 64, + 2, + 4, + 1, + 1, + 32, + 16, + 128, + 128 + ], + "removed_edge": [ + 6, + 0 + ] + }, + { + "labels": [ + 8, + 128, + 128, + 64, + 4, + 4, + 128, + 2, + 64, + 1, + 16, + 1, + 1, + 32, + 16, + 2, + 128 + ], + "removed_edge": [ + 6, + 2 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 128, + 128, + 128, + 128, + 2, + 64, + 1, + 4, + 1, + 1, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 6, + 4 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 128, + 64, + 128, + 1, + 1, + 128, + 2, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 7, + 0 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 64, + 128, + 16, + 4, + 16, + 2, + 128, + 32, + 128, + 2, + 4 + ], + "removed_edge": [ + 7, + 1 + ] + }, + { + "labels": [ + 8, + 128, + 2, + 64, + 4, + 4, + 64, + 2, + 16, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 128 + ], + "removed_edge": [ + 7, + 2 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 128, + 4, + 128, + 64, + 128, + 1, + 1, + 128, + 2, + 64, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 7, + 3 + ] + }, + { + "labels": [ + 8, + 16, + 2, + 64, + 1, + 4, + 128, + 128, + 64, + 2, + 4, + 1, + 1, + 32, + 16, + 128, + 128 + ], + "removed_edge": [ + 7, + 6 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 1, + 64, + 2, + 16, + 2, + 1, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 8, + 1 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 4, + 16, + 64, + 2, + 4, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 128 + ], + "removed_edge": [ + 8, + 2 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 1, + 64, + 2, + 1, + 2, + 1, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 8, + 5 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 1, + 64, + 2, + 64, + 2, + 1, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 8, + 6 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 16, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 9, + 1 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 1, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 9, + 4 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 9, + 5 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 16, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 10, + 1 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 1, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 10, + 4 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 128, + 1, + 128, + 128, + 2, + 64, + 4, + 128, + 1, + 1, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 10, + 6 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 10, + 9 + ] + }, + { + "labels": [ + 8, + 128, + 128, + 128, + 1, + 1, + 64, + 2, + 4, + 4, + 16, + 128, + 64, + 32, + 16, + 2, + 64 + ], + "removed_edge": [ + 11, + 2 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 128, + 64, + 2, + 1, + 1, + 128, + 128, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 11, + 5 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 128, + 2, + 64, + 4, + 16, + 128, + 128, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 11, + 6 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 128, + 64, + 2, + 1, + 1, + 128, + 2, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 11, + 7 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 128, + 64, + 2, + 1, + 1, + 128, + 1, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 11, + 8 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 64, + 4, + 1, + 64, + 128, + 128, + 2, + 1, + 2, + 8, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 12, + 0 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 64, + 4, + 1, + 64, + 128, + 128, + 2, + 1, + 2, + 64, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 12, + 3 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 64, + 4, + 1, + 64, + 128, + 128, + 2, + 1, + 2, + 1, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 12, + 5 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 64, + 4, + 1, + 64, + 128, + 128, + 2, + 1, + 2, + 128, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 12, + 8 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 1, + 64, + 2, + 128, + 2, + 1, + 32, + 8, + 128, + 8, + 128, + 4 + ], + "removed_edge": [ + 13, + 0 + ] + }, + { + "labels": [ + 8, + 128, + 128, + 64, + 4, + 4, + 64, + 2, + 16, + 1, + 16, + 1, + 1, + 128, + 32, + 2, + 32 + ], + "removed_edge": [ + 13, + 1 + ] + }, + { + "labels": [ + 8, + 16, + 128, + 128, + 1, + 4, + 64, + 2, + 1, + 2, + 4, + 32, + 64, + 128, + 16, + 128, + 64 + ], + "removed_edge": [ + 13, + 3 + ] + }, + { + "labels": [ + 8, + 16, + 4, + 64, + 1, + 1, + 128, + 2, + 64, + 2, + 4, + 32, + 128, + 128, + 16, + 128, + 4 + ], + "removed_edge": [ + 13, + 6 + ] + }, + { + "labels": [ + 8, + 16, + 2, + 64, + 4, + 128, + 64, + 128, + 4, + 1, + 128, + 1, + 1, + 128, + 16, + 2, + 32 + ], + "removed_edge": [ + 13, + 7 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 4, + 128, + 64, + 2, + 1, + 1, + 128, + 32, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 13, + 11 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 64, + 2, + 16, + 4, + 16, + 128, + 128, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 14, + 0 + ] + }, + { + "labels": [ + 8, + 128, + 128, + 64, + 4, + 4, + 64, + 2, + 16, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 128 + ], + "removed_edge": [ + 14, + 2 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 4, + 16, + 128, + 2, + 64, + 1, + 16, + 1, + 1, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 14, + 5 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 4, + 16, + 128, + 2, + 64, + 1, + 16, + 1, + 1, + 32, + 128, + 2, + 4 + ], + "removed_edge": [ + 14, + 6 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 64, + 2, + 16, + 4, + 16, + 128, + 128, + 32, + 16, + 2, + 4 + ], + "removed_edge": [ + 14, + 8 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 64, + 2, + 16, + 4, + 16, + 128, + 128, + 32, + 128, + 2, + 4 + ], + "removed_edge": [ + 14, + 11 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 1, + 64, + 2, + 16, + 4, + 16, + 128, + 128, + 32, + 32, + 2, + 4 + ], + "removed_edge": [ + 14, + 13 + ] + }, + { + "labels": [ + 8, + 128, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 16, + 128, + 128, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 15, + 1 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 128, + 2, + 64, + 2, + 1, + 1, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 15, + 4 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 128, + 128, + 8, + 32, + 8, + 2, + 4 + ], + "removed_edge": [ + 15, + 5 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 128, + 4, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 15, + 9 + ] + }, + { + "labels": [ + 128, + 16, + 4, + 64, + 1, + 2, + 64, + 2, + 1, + 4, + 128, + 128, + 8, + 32, + 8, + 128, + 4 + ], + "removed_edge": [ + 15, + 10 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 1, + 4, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 16, + 128, + 64 + ], + "removed_edge": [ + 16, + 3 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 1, + 4, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 16, + 5 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 4, + 1, + 64, + 2, + 4, + 2, + 1, + 128, + 8, + 32, + 16, + 128, + 4 + ], + "removed_edge": [ + 16, + 8 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 1, + 4, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 16, + 128, + 128 + ], + "removed_edge": [ + 16, + 11 + ] + }, + { + "labels": [ + 128, + 16, + 8, + 64, + 1, + 4, + 64, + 2, + 1, + 2, + 4, + 128, + 8, + 32, + 16, + 128, + 32 + ], + "removed_edge": [ + 16, + 13 + ] + } + ], + "nine_bit_labels": [ + 128, + 256, + 4, + 64, + 1, + 1, + 64, + 2, + 128, + 4, + 16, + 256, + 8, + 32, + 16, + 2, + 4 + ], + "relaxed_eight_bit_labels": [ + 8, + 16, + 2, + 64, + 1, + 1, + 64, + 2, + 1, + 1, + 1, + 1, + 1, + 32, + 8, + 2, + 4 + ] +} diff --git a/research/turyn-profile-cnf/CORE.cnf b/research/turyn-profile-cnf/CORE.cnf new file mode 100644 index 0000000000..c250096eb7 --- /dev/null +++ b/research/turyn-profile-cnf/CORE.cnf @@ -0,0 +1,1838 @@ +p cnf 118 1837 +1 2 0 +-1 -2 0 +3 4 0 +-3 -4 0 +5 6 7 8 9 10 11 12 0 +-5 -6 0 +-5 -7 0 +-5 -8 0 +-5 -9 0 +-5 -10 0 +-5 -11 0 +-5 -12 0 +-6 -7 0 +-6 -8 0 +-6 -9 0 +-6 -10 0 +-6 -11 0 +-6 -12 0 +-7 -8 0 +-7 -9 0 +-7 -10 0 +-7 -11 0 +-7 -12 0 +-8 -9 0 +-8 -10 0 +-8 -11 0 +-8 -12 0 +-9 -10 0 +-9 -11 0 +-9 -12 0 +-10 -11 0 +-10 -12 0 +-11 -12 0 +13 14 0 +-13 -14 0 +15 16 17 18 19 20 21 22 0 +-15 -16 0 +-15 -17 0 +-15 -18 0 +-15 -19 0 +-15 -20 0 +-15 -21 0 +-15 -22 0 +-16 -17 0 +-16 -18 0 +-16 -19 0 +-16 -20 0 +-16 -21 0 +-16 -22 0 +-17 -18 0 +-17 -19 0 +-17 -20 0 +-17 -21 0 +-17 -22 0 +-18 -19 0 +-18 -20 0 +-18 -21 0 +-18 -22 0 +-19 -20 0 +-19 -21 0 +-19 -22 0 +-20 -21 0 +-20 -22 0 +-21 -22 0 +23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 0 +-23 -24 0 +-23 -25 0 +-23 -26 0 +-23 -27 0 +-23 -28 0 +-23 -29 0 +-23 -30 0 +-23 -31 0 +-23 -32 0 +-23 -33 0 +-23 -34 0 +-23 -35 0 +-23 -36 0 +-23 -37 0 +-23 -38 0 +-24 -25 0 +-24 -26 0 +-24 -27 0 +-24 -28 0 +-24 -29 0 +-24 -30 0 +-24 -31 0 +-24 -32 0 +-24 -33 0 +-24 -34 0 +-24 -35 0 +-24 -36 0 +-24 -37 0 +-24 -38 0 +-25 -26 0 +-25 -27 0 +-25 -28 0 +-25 -29 0 +-25 -30 0 +-25 -31 0 +-25 -32 0 +-25 -33 0 +-25 -34 0 +-25 -35 0 +-25 -36 0 +-25 -37 0 +-25 -38 0 +-26 -27 0 +-26 -28 0 +-26 -29 0 +-26 -30 0 +-26 -31 0 +-26 -32 0 +-26 -33 0 +-26 -34 0 +-26 -35 0 +-26 -36 0 +-26 -37 0 +-26 -38 0 +-27 -28 0 +-27 -29 0 +-27 -30 0 +-27 -31 0 +-27 -32 0 +-27 -33 0 +-27 -34 0 +-27 -35 0 +-27 -36 0 +-27 -37 0 +-27 -38 0 +-28 -29 0 +-28 -30 0 +-28 -31 0 +-28 -32 0 +-28 -33 0 +-28 -34 0 +-28 -35 0 +-28 -36 0 +-28 -37 0 +-28 -38 0 +-29 -30 0 +-29 -31 0 +-29 -32 0 +-29 -33 0 +-29 -34 0 +-29 -35 0 +-29 -36 0 +-29 -37 0 +-29 -38 0 +-30 -31 0 +-30 -32 0 +-30 -33 0 +-30 -34 0 +-30 -35 0 +-30 -36 0 +-30 -37 0 +-30 -38 0 +-31 -32 0 +-31 -33 0 +-31 -34 0 +-31 -35 0 +-31 -36 0 +-31 -37 0 +-31 -38 0 +-32 -33 0 +-32 -34 0 +-32 -35 0 +-32 -36 0 +-32 -37 0 +-32 -38 0 +-33 -34 0 +-33 -35 0 +-33 -36 0 +-33 -37 0 +-33 -38 0 +-34 -35 0 +-34 -36 0 +-34 -37 0 +-34 -38 0 +-35 -36 0 +-35 -37 0 +-35 -38 0 +-36 -37 0 +-36 -38 0 +-37 -38 0 +39 40 0 +-39 -40 0 +41 42 0 +-41 -42 0 +43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 0 +-43 -44 0 +-43 -45 0 +-43 -46 0 +-43 -47 0 +-43 -48 0 +-43 -49 0 +-43 -50 0 +-43 -51 0 +-43 -52 0 +-43 -53 0 +-43 -54 0 +-43 -55 0 +-43 -56 0 +-43 -57 0 +-43 -58 0 +-44 -45 0 +-44 -46 0 +-44 -47 0 +-44 -48 0 +-44 -49 0 +-44 -50 0 +-44 -51 0 +-44 -52 0 +-44 -53 0 +-44 -54 0 +-44 -55 0 +-44 -56 0 +-44 -57 0 +-44 -58 0 +-45 -46 0 +-45 -47 0 +-45 -48 0 +-45 -49 0 +-45 -50 0 +-45 -51 0 +-45 -52 0 +-45 -53 0 +-45 -54 0 +-45 -55 0 +-45 -56 0 +-45 -57 0 +-45 -58 0 +-46 -47 0 +-46 -48 0 +-46 -49 0 +-46 -50 0 +-46 -51 0 +-46 -52 0 +-46 -53 0 +-46 -54 0 +-46 -55 0 +-46 -56 0 +-46 -57 0 +-46 -58 0 +-47 -48 0 +-47 -49 0 +-47 -50 0 +-47 -51 0 +-47 -52 0 +-47 -53 0 +-47 -54 0 +-47 -55 0 +-47 -56 0 +-47 -57 0 +-47 -58 0 +-48 -49 0 +-48 -50 0 +-48 -51 0 +-48 -52 0 +-48 -53 0 +-48 -54 0 +-48 -55 0 +-48 -56 0 +-48 -57 0 +-48 -58 0 +-49 -50 0 +-49 -51 0 +-49 -52 0 +-49 -53 0 +-49 -54 0 +-49 -55 0 +-49 -56 0 +-49 -57 0 +-49 -58 0 +-50 -51 0 +-50 -52 0 +-50 -53 0 +-50 -54 0 +-50 -55 0 +-50 -56 0 +-50 -57 0 +-50 -58 0 +-51 -52 0 +-51 -53 0 +-51 -54 0 +-51 -55 0 +-51 -56 0 +-51 -57 0 +-51 -58 0 +-52 -53 0 +-52 -54 0 +-52 -55 0 +-52 -56 0 +-52 -57 0 +-52 -58 0 +-53 -54 0 +-53 -55 0 +-53 -56 0 +-53 -57 0 +-53 -58 0 +-54 -55 0 +-54 -56 0 +-54 -57 0 +-54 -58 0 +-55 -56 0 +-55 -57 0 +-55 -58 0 +-56 -57 0 +-56 -58 0 +-57 -58 0 +59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 0 +-59 -60 0 +-59 -61 0 +-59 -62 0 +-59 -63 0 +-59 -64 0 +-59 -65 0 +-59 -66 0 +-59 -67 0 +-59 -68 0 +-59 -69 0 +-59 -70 0 +-59 -71 0 +-59 -72 0 +-59 -73 0 +-59 -74 0 +-60 -61 0 +-60 -62 0 +-60 -63 0 +-60 -64 0 +-60 -65 0 +-60 -66 0 +-60 -67 0 +-60 -68 0 +-60 -69 0 +-60 -70 0 +-60 -71 0 +-60 -72 0 +-60 -73 0 +-60 -74 0 +-61 -62 0 +-61 -63 0 +-61 -64 0 +-61 -65 0 +-61 -66 0 +-61 -67 0 +-61 -68 0 +-61 -69 0 +-61 -70 0 +-61 -71 0 +-61 -72 0 +-61 -73 0 +-61 -74 0 +-62 -63 0 +-62 -64 0 +-62 -65 0 +-62 -66 0 +-62 -67 0 +-62 -68 0 +-62 -69 0 +-62 -70 0 +-62 -71 0 +-62 -72 0 +-62 -73 0 +-62 -74 0 +-63 -64 0 +-63 -65 0 +-63 -66 0 +-63 -67 0 +-63 -68 0 +-63 -69 0 +-63 -70 0 +-63 -71 0 +-63 -72 0 +-63 -73 0 +-63 -74 0 +-64 -65 0 +-64 -66 0 +-64 -67 0 +-64 -68 0 +-64 -69 0 +-64 -70 0 +-64 -71 0 +-64 -72 0 +-64 -73 0 +-64 -74 0 +-65 -66 0 +-65 -67 0 +-65 -68 0 +-65 -69 0 +-65 -70 0 +-65 -71 0 +-65 -72 0 +-65 -73 0 +-65 -74 0 +-66 -67 0 +-66 -68 0 +-66 -69 0 +-66 -70 0 +-66 -71 0 +-66 -72 0 +-66 -73 0 +-66 -74 0 +-67 -68 0 +-67 -69 0 +-67 -70 0 +-67 -71 0 +-67 -72 0 +-67 -73 0 +-67 -74 0 +-68 -69 0 +-68 -70 0 +-68 -71 0 +-68 -72 0 +-68 -73 0 +-68 -74 0 +-69 -70 0 +-69 -71 0 +-69 -72 0 +-69 -73 0 +-69 -74 0 +-70 -71 0 +-70 -72 0 +-70 -73 0 +-70 -74 0 +-71 -72 0 +-71 -73 0 +-71 -74 0 +-72 -73 0 +-72 -74 0 +-73 -74 0 +75 76 77 78 79 80 81 82 0 +-75 -76 0 +-75 -77 0 +-75 -78 0 +-75 -79 0 +-75 -80 0 +-75 -81 0 +-75 -82 0 +-76 -77 0 +-76 -78 0 +-76 -79 0 +-76 -80 0 +-76 -81 0 +-76 -82 0 +-77 -78 0 +-77 -79 0 +-77 -80 0 +-77 -81 0 +-77 -82 0 +-78 -79 0 +-78 -80 0 +-78 -81 0 +-78 -82 0 +-79 -80 0 +-79 -81 0 +-79 -82 0 +-80 -81 0 +-80 -82 0 +-81 -82 0 +83 84 85 86 87 88 89 90 0 +-83 -84 0 +-83 -85 0 +-83 -86 0 +-83 -87 0 +-83 -88 0 +-83 -89 0 +-83 -90 0 +-84 -85 0 +-84 -86 0 +-84 -87 0 +-84 -88 0 +-84 -89 0 +-84 -90 0 +-85 -86 0 +-85 -87 0 +-85 -88 0 +-85 -89 0 +-85 -90 0 +-86 -87 0 +-86 -88 0 +-86 -89 0 +-86 -90 0 +-87 -88 0 +-87 -89 0 +-87 -90 0 +-88 -89 0 +-88 -90 0 +-89 -90 0 +91 92 93 94 95 96 97 98 0 +-91 -92 0 +-91 -93 0 +-91 -94 0 +-91 -95 0 +-91 -96 0 +-91 -97 0 +-91 -98 0 +-92 -93 0 +-92 -94 0 +-92 -95 0 +-92 -96 0 +-92 -97 0 +-92 -98 0 +-93 -94 0 +-93 -95 0 +-93 -96 0 +-93 -97 0 +-93 -98 0 +-94 -95 0 +-94 -96 0 +-94 -97 0 +-94 -98 0 +-95 -96 0 +-95 -97 0 +-95 -98 0 +-96 -97 0 +-96 -98 0 +-97 -98 0 +99 100 0 +-99 -100 0 +101 102 103 104 105 106 107 108 0 +-101 -102 0 +-101 -103 0 +-101 -104 0 +-101 -105 0 +-101 -106 0 +-101 -107 0 +-101 -108 0 +-102 -103 0 +-102 -104 0 +-102 -105 0 +-102 -106 0 +-102 -107 0 +-102 -108 0 +-103 -104 0 +-103 -105 0 +-103 -106 0 +-103 -107 0 +-103 -108 0 +-104 -105 0 +-104 -106 0 +-104 -107 0 +-104 -108 0 +-105 -106 0 +-105 -107 0 +-105 -108 0 +-106 -107 0 +-106 -108 0 +-107 -108 0 +109 110 0 +-109 -110 0 +111 112 113 114 115 116 117 118 0 +-111 -112 0 +-111 -113 0 +-111 -114 0 +-111 -115 0 +-111 -116 0 +-111 -117 0 +-111 -118 0 +-112 -113 0 +-112 -114 0 +-112 -115 0 +-112 -116 0 +-112 -117 0 +-112 -118 0 +-113 -114 0 +-113 -115 0 +-113 -116 0 +-113 -117 0 +-113 -118 0 +-114 -115 0 +-114 -116 0 +-114 -117 0 +-114 -118 0 +-115 -116 0 +-115 -117 0 +-115 -118 0 +-116 -117 0 +-116 -118 0 +-117 -118 0 +-4 -2 0 +-7 -1 0 +-8 -1 0 +-9 -2 0 +-10 -2 0 +-11 -1 0 +-11 -2 0 +-12 -1 0 +-12 -2 0 +-14 -2 0 +-17 -3 0 +-18 -3 0 +-19 -4 0 +-20 -4 0 +-21 -3 0 +-21 -4 0 +-22 -3 0 +-22 -4 0 +-27 -3 0 +-28 -3 0 +-29 -3 0 +-30 -3 0 +-31 -4 0 +-32 -4 0 +-33 -4 0 +-34 -4 0 +-35 -3 0 +-35 -4 0 +-36 -3 0 +-36 -4 0 +-37 -3 0 +-37 -4 0 +-38 -3 0 +-38 -4 0 +-24 -5 0 +-24 -8 0 +-24 -10 0 +-24 -11 0 +-25 -6 0 +-25 -8 0 +-25 -10 0 +-25 -12 0 +-26 -5 0 +-26 -6 0 +-26 -11 0 +-26 -12 0 +-28 -5 0 +-28 -8 0 +-28 -10 0 +-28 -11 0 +-29 -6 0 +-29 -8 0 +-29 -10 0 +-29 -12 0 +-30 -5 0 +-30 -6 0 +-30 -11 0 +-30 -12 0 +-31 -9 0 +-31 -10 0 +-31 -11 0 +-31 -12 0 +-32 -5 0 +-32 -8 0 +-32 -9 0 +-32 -12 0 +-33 -6 0 +-33 -8 0 +-33 -9 0 +-33 -11 0 +-34 -5 0 +-34 -6 0 +-34 -9 0 +-34 -10 0 +-35 -9 0 +-35 -10 0 +-35 -11 0 +-35 -12 0 +-36 -5 0 +-36 -8 0 +-36 -9 0 +-36 -12 0 +-37 -6 0 +-37 -8 0 +-37 -9 0 +-37 -11 0 +-38 -5 0 +-38 -6 0 +-38 -9 0 +-38 -10 0 +-40 -2 0 +-40 -9 0 +-40 -10 0 +-40 -11 0 +-40 -12 0 +-40 -19 0 +-40 -20 0 +-40 -21 0 +-40 -22 0 +-42 -2 0 +-42 -4 0 +-41 -5 0 +-41 -8 0 +-41 -10 0 +-41 -11 0 +-42 -9 0 +-42 -10 0 +-42 -11 0 +-42 -12 0 +-42 -14 0 +-42 -40 0 +-45 -3 0 +-46 -3 0 +-49 -3 0 +-50 -3 0 +-51 -4 0 +-52 -4 0 +-53 -3 0 +-53 -4 0 +-54 -3 0 +-54 -4 0 +-55 -4 0 +-56 -4 0 +-57 -3 0 +-57 -4 0 +-58 -3 0 +-58 -4 0 +-44 -6 0 +-44 -8 0 +-44 -10 0 +-44 -12 0 +-46 -6 0 +-46 -8 0 +-46 -10 0 +-46 -12 0 +-48 -6 0 +-48 -8 0 +-48 -10 0 +-48 -12 0 +-50 -6 0 +-50 -8 0 +-50 -10 0 +-50 -12 0 +-51 -9 0 +-51 -10 0 +-51 -11 0 +-51 -12 0 +-52 -6 0 +-52 -8 0 +-52 -9 0 +-52 -11 0 +-53 -9 0 +-53 -10 0 +-53 -11 0 +-53 -12 0 +-54 -6 0 +-54 -8 0 +-54 -9 0 +-54 -11 0 +-55 -9 0 +-55 -10 0 +-55 -11 0 +-55 -12 0 +-56 -6 0 +-56 -8 0 +-56 -9 0 +-56 -11 0 +-57 -9 0 +-57 -10 0 +-57 -11 0 +-57 -12 0 +-58 -6 0 +-58 -8 0 +-58 -9 0 +-58 -11 0 +-43 -23 0 +-43 -26 0 +-43 -28 0 +-43 -29 0 +-43 -32 0 +-43 -33 0 +-43 -35 0 +-43 -38 0 +-44 -25 0 +-44 -26 0 +-44 -29 0 +-44 -30 0 +-44 -33 0 +-44 -34 0 +-44 -37 0 +-44 -38 0 +-45 -27 0 +-45 -28 0 +-45 -29 0 +-45 -30 0 +-45 -35 0 +-45 -36 0 +-45 -37 0 +-45 -38 0 +-46 -23 0 +-46 -25 0 +-46 -27 0 +-46 -29 0 +-46 -32 0 +-46 -34 0 +-46 -36 0 +-46 -38 0 +-48 -23 0 +-48 -25 0 +-48 -28 0 +-48 -30 0 +-48 -32 0 +-48 -34 0 +-48 -35 0 +-48 -37 0 +-49 -23 0 +-49 -26 0 +-49 -27 0 +-49 -30 0 +-49 -32 0 +-49 -33 0 +-49 -36 0 +-49 -37 0 +-50 -25 0 +-50 -26 0 +-50 -27 0 +-50 -28 0 +-50 -33 0 +-50 -34 0 +-50 -35 0 +-50 -36 0 +-51 -31 0 +-51 -32 0 +-51 -33 0 +-51 -34 0 +-51 -35 0 +-51 -36 0 +-51 -37 0 +-51 -38 0 +-52 -23 0 +-52 -25 0 +-52 -28 0 +-52 -30 0 +-52 -31 0 +-52 -33 0 +-52 -36 0 +-52 -38 0 +-53 -23 0 +-53 -26 0 +-53 -27 0 +-53 -30 0 +-53 -31 0 +-53 -34 0 +-53 -35 0 +-53 -38 0 +-54 -25 0 +-54 -26 0 +-54 -27 0 +-54 -28 0 +-54 -31 0 +-54 -32 0 +-54 -37 0 +-54 -38 0 +-55 -23 0 +-55 -26 0 +-55 -28 0 +-55 -29 0 +-55 -31 0 +-55 -34 0 +-55 -36 0 +-55 -37 0 +-56 -25 0 +-56 -26 0 +-56 -29 0 +-56 -30 0 +-56 -31 0 +-56 -32 0 +-56 -35 0 +-56 -36 0 +-57 -27 0 +-57 -28 0 +-57 -29 0 +-57 -30 0 +-57 -31 0 +-57 -32 0 +-57 -33 0 +-57 -34 0 +-58 -23 0 +-58 -25 0 +-58 -27 0 +-58 -29 0 +-58 -31 0 +-58 -33 0 +-58 -35 0 +-58 -37 0 +-47 -39 0 +-48 -39 0 +-49 -39 0 +-50 -39 0 +-51 -40 0 +-52 -40 0 +-53 -40 0 +-54 -40 0 +-55 -39 0 +-55 -40 0 +-56 -39 0 +-56 -40 0 +-57 -39 0 +-57 -40 0 +-58 -39 0 +-58 -40 0 +-63 -3 0 +-64 -3 0 +-65 -3 0 +-66 -3 0 +-67 -4 0 +-68 -4 0 +-69 -4 0 +-70 -4 0 +-71 -3 0 +-71 -4 0 +-72 -3 0 +-72 -4 0 +-73 -3 0 +-73 -4 0 +-74 -3 0 +-74 -4 0 +-59 -15 0 +-59 -18 0 +-59 -20 0 +-59 -21 0 +-61 -16 0 +-61 -18 0 +-61 -20 0 +-61 -22 0 +-62 -15 0 +-62 -16 0 +-62 -21 0 +-62 -22 0 +-63 -17 0 +-63 -18 0 +-63 -21 0 +-63 -22 0 +-64 -15 0 +-64 -17 0 +-64 -20 0 +-64 -22 0 +-65 -15 0 +-65 -16 0 +-65 -17 0 +-65 -18 0 +-66 -16 0 +-66 -17 0 +-66 -20 0 +-66 -21 0 +-67 -19 0 +-67 -20 0 +-67 -21 0 +-67 -22 0 +-68 -15 0 +-68 -18 0 +-68 -19 0 +-68 -22 0 +-69 -15 0 +-69 -16 0 +-69 -19 0 +-69 -20 0 +-70 -16 0 +-70 -18 0 +-70 -19 0 +-70 -21 0 +-71 -15 0 +-71 -17 0 +-71 -19 0 +-71 -21 0 +-72 -17 0 +-72 -18 0 +-72 -19 0 +-72 -20 0 +-73 -16 0 +-73 -17 0 +-73 -19 0 +-73 -22 0 +-74 -15 0 +-74 -16 0 +-74 -17 0 +-74 -18 0 +-74 -19 0 +-74 -20 0 +-74 -21 0 +-74 -22 0 +-59 -23 0 +-59 -26 0 +-59 -28 0 +-59 -29 0 +-59 -32 0 +-59 -33 0 +-59 -35 0 +-59 -38 0 +-60 -24 0 +-60 -26 0 +-60 -28 0 +-60 -30 0 +-60 -32 0 +-60 -34 0 +-60 -36 0 +-60 -38 0 +-61 -25 0 +-61 -26 0 +-61 -29 0 +-61 -30 0 +-61 -33 0 +-61 -34 0 +-61 -37 0 +-61 -38 0 +-62 -23 0 +-62 -24 0 +-62 -25 0 +-62 -26 0 +-62 -35 0 +-62 -36 0 +-62 -37 0 +-62 -38 0 +-63 -27 0 +-63 -28 0 +-63 -29 0 +-63 -30 0 +-63 -35 0 +-63 -36 0 +-63 -37 0 +-63 -38 0 +-64 -23 0 +-64 -24 0 +-64 -27 0 +-64 -28 0 +-64 -33 0 +-64 -34 0 +-64 -37 0 +-64 -38 0 +-65 -23 0 +-65 -25 0 +-65 -27 0 +-65 -29 0 +-65 -32 0 +-65 -34 0 +-65 -36 0 +-65 -38 0 +-66 -24 0 +-66 -25 0 +-66 -27 0 +-66 -30 0 +-66 -32 0 +-66 -33 0 +-66 -35 0 +-66 -38 0 +-67 -31 0 +-67 -32 0 +-67 -33 0 +-67 -34 0 +-67 -35 0 +-67 -36 0 +-67 -37 0 +-67 -38 0 +-68 -23 0 +-68 -24 0 +-68 -29 0 +-68 -30 0 +-68 -31 0 +-68 -32 0 +-68 -37 0 +-68 -38 0 +-69 -23 0 +-69 -25 0 +-69 -28 0 +-69 -30 0 +-69 -31 0 +-69 -33 0 +-69 -36 0 +-69 -38 0 +-70 -24 0 +-70 -25 0 +-70 -28 0 +-70 -29 0 +-70 -31 0 +-70 -34 0 +-70 -35 0 +-70 -38 0 +-71 -23 0 +-71 -26 0 +-71 -27 0 +-71 -30 0 +-71 -31 0 +-71 -34 0 +-71 -35 0 +-71 -38 0 +-72 -24 0 +-72 -26 0 +-72 -27 0 +-72 -29 0 +-72 -31 0 +-72 -33 0 +-72 -36 0 +-72 -38 0 +-73 -25 0 +-73 -26 0 +-73 -27 0 +-73 -28 0 +-73 -31 0 +-73 -32 0 +-73 -37 0 +-73 -38 0 +-74 -23 0 +-74 -24 0 +-74 -25 0 +-74 -26 0 +-74 -27 0 +-74 -28 0 +-74 -29 0 +-74 -30 0 +-74 -31 0 +-74 -32 0 +-74 -33 0 +-74 -34 0 +-74 -35 0 +-74 -36 0 +-74 -37 0 +-74 -38 0 +-77 -3 0 +-78 -3 0 +-79 -4 0 +-80 -4 0 +-81 -3 0 +-81 -4 0 +-82 -3 0 +-82 -4 0 +-75 -15 0 +-75 -18 0 +-75 -20 0 +-75 -21 0 +-76 -16 0 +-76 -18 0 +-76 -20 0 +-76 -22 0 +-77 -17 0 +-77 -18 0 +-77 -21 0 +-77 -22 0 +-78 -15 0 +-78 -16 0 +-78 -17 0 +-78 -18 0 +-79 -19 0 +-79 -20 0 +-79 -21 0 +-79 -22 0 +-80 -15 0 +-80 -16 0 +-80 -19 0 +-80 -20 0 +-81 -15 0 +-81 -17 0 +-81 -19 0 +-81 -21 0 +-82 -16 0 +-82 -17 0 +-82 -19 0 +-82 -22 0 +-79 -40 0 +-80 -40 0 +-81 -40 0 +-82 -40 0 +-75 -59 0 +-75 -62 0 +-75 -64 0 +-75 -65 0 +-75 -68 0 +-75 -69 0 +-75 -71 0 +-75 -74 0 +-76 -61 0 +-76 -62 0 +-76 -65 0 +-76 -66 0 +-76 -69 0 +-76 -70 0 +-76 -73 0 +-76 -74 0 +-77 -63 0 +-77 -64 0 +-77 -65 0 +-77 -66 0 +-77 -71 0 +-77 -72 0 +-77 -73 0 +-77 -74 0 +-78 -59 0 +-78 -61 0 +-78 -63 0 +-78 -65 0 +-78 -68 0 +-78 -70 0 +-78 -72 0 +-78 -74 0 +-79 -67 0 +-79 -68 0 +-79 -69 0 +-79 -70 0 +-79 -71 0 +-79 -72 0 +-79 -73 0 +-79 -74 0 +-80 -59 0 +-80 -61 0 +-80 -64 0 +-80 -66 0 +-80 -67 0 +-80 -69 0 +-80 -72 0 +-80 -74 0 +-81 -59 0 +-81 -62 0 +-81 -63 0 +-81 -66 0 +-81 -67 0 +-81 -70 0 +-81 -71 0 +-81 -74 0 +-82 -61 0 +-82 -62 0 +-82 -63 0 +-82 -64 0 +-82 -67 0 +-82 -68 0 +-82 -73 0 +-82 -74 0 +-84 -5 0 +-84 -8 0 +-84 -10 0 +-84 -11 0 +-86 -5 0 +-86 -8 0 +-86 -10 0 +-86 -11 0 +-87 -9 0 +-87 -10 0 +-87 -11 0 +-87 -12 0 +-88 -5 0 +-88 -8 0 +-88 -9 0 +-88 -12 0 +-89 -9 0 +-89 -10 0 +-89 -11 0 +-89 -12 0 +-90 -5 0 +-90 -8 0 +-90 -9 0 +-90 -12 0 +-83 -23 0 +-83 -26 0 +-83 -28 0 +-83 -29 0 +-83 -32 0 +-83 -33 0 +-83 -35 0 +-83 -38 0 +-84 -24 0 +-84 -26 0 +-84 -28 0 +-84 -30 0 +-84 -32 0 +-84 -34 0 +-84 -36 0 +-84 -38 0 +-86 -23 0 +-86 -24 0 +-86 -29 0 +-86 -30 0 +-86 -33 0 +-86 -34 0 +-86 -35 0 +-86 -36 0 +-87 -31 0 +-87 -32 0 +-87 -33 0 +-87 -34 0 +-87 -35 0 +-87 -36 0 +-87 -37 0 +-87 -38 0 +-88 -23 0 +-88 -24 0 +-88 -29 0 +-88 -30 0 +-88 -31 0 +-88 -32 0 +-88 -37 0 +-88 -38 0 +-89 -23 0 +-89 -26 0 +-89 -28 0 +-89 -29 0 +-89 -31 0 +-89 -34 0 +-89 -36 0 +-89 -37 0 +-90 -24 0 +-90 -26 0 +-90 -28 0 +-90 -30 0 +-90 -31 0 +-90 -33 0 +-90 -35 0 +-90 -37 0 +-87 -40 0 +-88 -40 0 +-89 -40 0 +-90 -40 0 +-84 -41 0 +-86 -41 0 +-87 -42 0 +-88 -41 0 +-88 -42 0 +-89 -42 0 +-90 -41 0 +-90 -42 0 +-83 -43 0 +-83 -46 0 +-83 -48 0 +-83 -49 0 +-83 -52 0 +-83 -53 0 +-83 -55 0 +-83 -58 0 +-86 -43 0 +-86 -46 0 +-86 -48 0 +-86 -49 0 +-86 -52 0 +-86 -53 0 +-86 -55 0 +-86 -58 0 +-87 -51 0 +-87 -52 0 +-87 -53 0 +-87 -54 0 +-87 -55 0 +-87 -56 0 +-87 -57 0 +-87 -58 0 +-88 -43 0 +-88 -46 0 +-88 -48 0 +-88 -49 0 +-88 -51 0 +-88 -54 0 +-88 -56 0 +-88 -57 0 +-89 -43 0 +-89 -46 0 +-89 -48 0 +-89 -49 0 +-89 -51 0 +-89 -54 0 +-89 -56 0 +-89 -57 0 +-90 -51 0 +-90 -52 0 +-90 -53 0 +-90 -54 0 +-90 -55 0 +-90 -56 0 +-90 -57 0 +-90 -58 0 +-92 -1 0 +-94 -1 0 +-95 -2 0 +-96 -1 0 +-96 -2 0 +-97 -2 0 +-98 -1 0 +-98 -2 0 +-93 -13 0 +-94 -13 0 +-95 -14 0 +-96 -14 0 +-97 -13 0 +-97 -14 0 +-98 -13 0 +-98 -14 0 +-91 -23 0 +-91 -26 0 +-91 -28 0 +-91 -29 0 +-91 -32 0 +-91 -33 0 +-91 -35 0 +-91 -38 0 +-94 -23 0 +-94 -26 0 +-94 -28 0 +-94 -29 0 +-94 -32 0 +-94 -33 0 +-94 -35 0 +-94 -38 0 +-95 -31 0 +-95 -32 0 +-95 -33 0 +-95 -34 0 +-95 -35 0 +-95 -36 0 +-95 -37 0 +-95 -38 0 +-96 -23 0 +-96 -26 0 +-96 -28 0 +-96 -29 0 +-96 -31 0 +-96 -34 0 +-96 -36 0 +-96 -37 0 +-97 -23 0 +-97 -26 0 +-97 -28 0 +-97 -29 0 +-97 -31 0 +-97 -34 0 +-97 -36 0 +-97 -37 0 +-98 -31 0 +-98 -32 0 +-98 -33 0 +-98 -34 0 +-98 -35 0 +-98 -36 0 +-98 -37 0 +-98 -38 0 +-91 -43 0 +-91 -46 0 +-91 -48 0 +-91 -49 0 +-91 -52 0 +-91 -53 0 +-91 -55 0 +-91 -58 0 +-93 -47 0 +-93 -48 0 +-93 -49 0 +-93 -50 0 +-93 -55 0 +-93 -56 0 +-93 -57 0 +-93 -58 0 +-94 -43 0 +-94 -46 0 +-94 -47 0 +-94 -50 0 +-94 -52 0 +-94 -53 0 +-94 -56 0 +-94 -57 0 +-95 -51 0 +-95 -52 0 +-95 -53 0 +-95 -54 0 +-95 -55 0 +-95 -56 0 +-95 -57 0 +-95 -58 0 +-96 -43 0 +-96 -46 0 +-96 -48 0 +-96 -49 0 +-96 -51 0 +-96 -54 0 +-96 -56 0 +-96 -57 0 +-97 -43 0 +-97 -46 0 +-97 -47 0 +-97 -50 0 +-97 -51 0 +-97 -54 0 +-97 -55 0 +-97 -58 0 +-98 -47 0 +-98 -48 0 +-98 -49 0 +-98 -50 0 +-98 -51 0 +-98 -52 0 +-98 -53 0 +-98 -54 0 +-100 -2 0 +-100 -4 0 +-100 -14 0 +-100 -40 0 +-100 -42 0 +-99 -85 0 +-99 -86 0 +-99 -89 0 +-99 -90 0 +-100 -87 0 +-100 -88 0 +-100 -89 0 +-100 -90 0 +-101 -1 0 +-104 -1 0 +-105 -2 0 +-106 -1 0 +-106 -2 0 +-107 -1 0 +-107 -2 0 +-108 -2 0 +-101 -7 0 +-101 -8 0 +-101 -11 0 +-101 -12 0 +-104 -7 0 +-104 -8 0 +-104 -11 0 +-104 -12 0 +-105 -9 0 +-105 -10 0 +-105 -11 0 +-105 -12 0 +-106 -7 0 +-106 -8 0 +-106 -9 0 +-106 -10 0 +-107 -7 0 +-107 -8 0 +-107 -9 0 +-107 -10 0 +-108 -9 0 +-108 -10 0 +-108 -11 0 +-108 -12 0 +-102 -27 0 +-102 -28 0 +-102 -29 0 +-102 -30 0 +-102 -35 0 +-102 -36 0 +-102 -37 0 +-102 -38 0 +-104 -27 0 +-104 -28 0 +-104 -29 0 +-104 -30 0 +-104 -35 0 +-104 -36 0 +-104 -37 0 +-104 -38 0 +-105 -31 0 +-105 -32 0 +-105 -33 0 +-105 -34 0 +-105 -35 0 +-105 -36 0 +-105 -37 0 +-105 -38 0 +-106 -27 0 +-106 -28 0 +-106 -29 0 +-106 -30 0 +-106 -31 0 +-106 -32 0 +-106 -33 0 +-106 -34 0 +-107 -31 0 +-107 -32 0 +-107 -33 0 +-107 -34 0 +-107 -35 0 +-107 -36 0 +-107 -37 0 +-107 -38 0 +-108 -27 0 +-108 -28 0 +-108 -29 0 +-108 -30 0 +-108 -31 0 +-108 -32 0 +-108 -33 0 +-108 -34 0 +-105 -40 0 +-106 -40 0 +-107 -40 0 +-108 -40 0 +-102 -45 0 +-102 -46 0 +-102 -49 0 +-102 -50 0 +-102 -53 0 +-102 -54 0 +-102 -57 0 +-102 -58 0 +-104 -45 0 +-104 -46 0 +-104 -49 0 +-104 -50 0 +-104 -53 0 +-104 -54 0 +-104 -57 0 +-104 -58 0 +-105 -51 0 +-105 -52 0 +-105 -53 0 +-105 -54 0 +-105 -55 0 +-105 -56 0 +-105 -57 0 +-105 -58 0 +-106 -45 0 +-106 -46 0 +-106 -49 0 +-106 -50 0 +-106 -51 0 +-106 -52 0 +-106 -55 0 +-106 -56 0 +-107 -51 0 +-107 -52 0 +-107 -53 0 +-107 -54 0 +-107 -55 0 +-107 -56 0 +-107 -57 0 +-107 -58 0 +-108 -45 0 +-108 -46 0 +-108 -49 0 +-108 -50 0 +-108 -51 0 +-108 -52 0 +-108 -55 0 +-108 -56 0 +-103 -85 0 +-103 -86 0 +-103 -89 0 +-103 -90 0 +-104 -85 0 +-104 -86 0 +-104 -89 0 +-104 -90 0 +-105 -87 0 +-105 -88 0 +-105 -89 0 +-105 -90 0 +-106 -87 0 +-106 -88 0 +-106 -89 0 +-106 -90 0 +-107 -85 0 +-107 -86 0 +-107 -87 0 +-107 -88 0 +-108 -85 0 +-108 -86 0 +-108 -87 0 +-108 -88 0 +-103 -99 0 +-104 -99 0 +-105 -100 0 +-106 -100 0 +-107 -99 0 +-107 -100 0 +-108 -99 0 +-108 -100 0 +-110 -4 0 +-110 -19 0 +-110 -20 0 +-110 -21 0 +-110 -22 0 +-109 -24 0 +-109 -26 0 +-109 -28 0 +-109 -30 0 +-109 -32 0 +-109 -34 0 +-109 -36 0 +-109 -38 0 +-110 -31 0 +-110 -32 0 +-110 -33 0 +-110 -34 0 +-110 -35 0 +-110 -36 0 +-110 -37 0 +-110 -38 0 +-109 -60 0 +-109 -62 0 +-109 -64 0 +-109 -66 0 +-109 -68 0 +-109 -70 0 +-109 -72 0 +-109 -74 0 +-110 -67 0 +-110 -68 0 +-110 -69 0 +-110 -70 0 +-110 -71 0 +-110 -72 0 +-110 -73 0 +-110 -74 0 +-110 -79 0 +-110 -80 0 +-110 -81 0 +-110 -82 0 +-113 -13 0 +-114 -13 0 +-115 -14 0 +-116 -14 0 +-117 -13 0 +-117 -14 0 +-118 -13 0 +-118 -14 0 +-111 -25 0 +-111 -26 0 +-111 -29 0 +-111 -30 0 +-111 -33 0 +-111 -34 0 +-111 -37 0 +-111 -38 0 +-114 -25 0 +-114 -26 0 +-114 -29 0 +-114 -30 0 +-114 -33 0 +-114 -34 0 +-114 -37 0 +-114 -38 0 +-115 -31 0 +-115 -32 0 +-115 -33 0 +-115 -34 0 +-115 -35 0 +-115 -36 0 +-115 -37 0 +-115 -38 0 +-116 -25 0 +-116 -26 0 +-116 -29 0 +-116 -30 0 +-116 -31 0 +-116 -32 0 +-116 -35 0 +-116 -36 0 +-117 -25 0 +-117 -26 0 +-117 -29 0 +-117 -30 0 +-117 -31 0 +-117 -32 0 +-117 -35 0 +-117 -36 0 +-118 -31 0 +-118 -32 0 +-118 -33 0 +-118 -34 0 +-118 -35 0 +-118 -36 0 +-118 -37 0 +-118 -38 0 +-111 -44 0 +-111 -46 0 +-111 -48 0 +-111 -50 0 +-111 -52 0 +-111 -54 0 +-111 -56 0 +-111 -58 0 +-113 -47 0 +-113 -48 0 +-113 -49 0 +-113 -50 0 +-113 -55 0 +-113 -56 0 +-113 -57 0 +-113 -58 0 +-114 -44 0 +-114 -46 0 +-114 -47 0 +-114 -49 0 +-114 -52 0 +-114 -54 0 +-114 -55 0 +-114 -57 0 +-115 -51 0 +-115 -52 0 +-115 -53 0 +-115 -54 0 +-115 -55 0 +-115 -56 0 +-115 -57 0 +-115 -58 0 +-116 -44 0 +-116 -46 0 +-116 -48 0 +-116 -50 0 +-116 -51 0 +-116 -53 0 +-116 -55 0 +-116 -57 0 +-117 -44 0 +-117 -46 0 +-117 -47 0 +-117 -49 0 +-117 -51 0 +-117 -53 0 +-117 -56 0 +-117 -58 0 +-118 -47 0 +-118 -48 0 +-118 -49 0 +-118 -50 0 +-118 -51 0 +-118 -52 0 +-118 -53 0 +-118 -54 0 +-112 -85 0 +-112 -86 0 +-112 -89 0 +-112 -90 0 +-114 -85 0 +-114 -86 0 +-114 -89 0 +-114 -90 0 +-115 -87 0 +-115 -88 0 +-115 -89 0 +-115 -90 0 +-116 -85 0 +-116 -86 0 +-116 -87 0 +-116 -88 0 +-117 -87 0 +-117 -88 0 +-117 -89 0 +-117 -90 0 +-118 -85 0 +-118 -86 0 +-118 -87 0 +-118 -88 0 +-112 -99 0 +-114 -99 0 +-115 -100 0 +-116 -99 0 +-116 -100 0 +-117 -100 0 +-118 -99 0 +-118 -100 0 diff --git a/research/turyn-profile-cnf/EXPECTED.json b/research/turyn-profile-cnf/EXPECTED.json new file mode 100644 index 0000000000..49bfe0de2c --- /dev/null +++ b/research/turyn-profile-cnf/EXPECTED.json @@ -0,0 +1,50 @@ +{ + "anchors": 7, + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "cnf_clauses": 1837, + "cnf_variables": 118, + "controls": { + "full_nine_bit_fitting": true, + "rejected": [ + "wrong_unit_sign", + "invalid_conflict_reference", + "missing_branch", + "repeated_positive_branch", + "proof_on_relaxed_graph", + "altered_coordinate", + "even_label" + ], + "relaxed_eight_bit_fitting": true, + "satisfiable_single_edge_deletions": 57 + }, + "core_variable_edges": 57, + "domain_sizes": [ + 2, + 2, + 8, + 2, + 8, + 16, + 2, + 2, + 16, + 16, + 8, + 8, + 8, + 2, + 8, + 2, + 8 + ], + "original_variable_edges": 71, + "ports": 24, + "profile": 0, + "proof": { + "leaves": 43, + "nodes": 85, + "unit_steps": 1042 + }, + "scope": "Exact finite standard-dot fitting dimension is nine for this 24-port witness; cyclic copies occur in all three profiles. No global dimension-27 or new-kappa claim.", + "status": "PASS_TURYN_PROFILE_CNF" +} diff --git a/research/turyn-profile-cnf/NOTICE.md b/research/turyn-profile-cnf/NOTICE.md new file mode 100644 index 0000000000..8306acd914 --- /dev/null +++ b/research/turyn-profile-cnf/NOTICE.md @@ -0,0 +1,38 @@ +# Attribution, license and assistance + +New independent verification package prepared by an OpenAI assistant at +the user's request, with substantial AI assistance throughout the +mathematics, implementation, certificate generation, testing and writing. +No independent human peer review is claimed. New files are under the +repository's Apache-2.0 license. + +The prior theorem, original 24-port witness, Turyn coordinates, fitting +model, and scope come from **DominikScholz's PR598**, exact incorporated +head `615ca6f06fdea0c50dbef733370c47349e25c555`, and the packages +`research/leech-lattice`, `research/turyn-code-space`, and +`research/turyn-port-labels`. Their notices disclose OpenAI GPT-6 Astra +assistance. Their source files and notices remain unchanged. This package +claims no priority for the original profile dimension-nine result. + +The source geometry credits R. J. Turyn, J. H. Conway, N. J. A. Sloane, +E. Bannai, Gabriele Nebe, Vincent Corlay, Joseph J. Boutros, Philippe Ciblat, +Loic Brunel, and SageMath contributors. The mathematical definitions used +here retain that lineage. Source hashes and the exact base are recorded +in `SOURCES.json`; no predecessor executable code is imported or run. + +The selected conditional frontier at the pinned base is Jeremy Kothe's +PR799 with Chafik Boukhalfa's PR741 frames, DreamingOfClouds' PR589 bit +supplier and eumemic's PR555 construction. It is context only, unchanged +and not reverified by this contribution. The repository is maintained by +Douglas Colkitt / CrocSwap and preserves the broader source lineage. + +Recent PR898, by CubeJerry, accelerates different historical Leech-minor +checks. Its title and scope were reviewed for overlap; no code is imported +and no performance claim is borrowed from it. + +ShikeChen01's PR634 supplies DRUP proof logs for different Lorentzian +minrank graphs in characteristic other than two. Its body was inspected +during the final CNF overlap check. This package is not the first use of +SAT proof logs in the repository; it adds a separate standard-library +decision-tree certificate for the PR598 characteristic-two profile graph. +No PR634 code or proof artifact is imported. diff --git a/research/turyn-profile-cnf/PROOF.json b/research/turyn-profile-cnf/PROOF.json new file mode 100644 index 0000000000..37359c246a --- /dev/null +++ b/research/turyn-profile-cnf/PROOF.json @@ -0,0 +1,4592 @@ +{ + "branch": 2, + "negative": { + "branch": 4, + "negative": { + "branch": 14, + "negative": { + "branch": 40, + "negative": { + "branch": 42, + "negative": { + "branch": 9, + "negative": { + "branch": 51, + "negative": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + 43, + 189 + ], + [ + -23, + 755 + ], + [ + -32, + 759 + ], + [ + -83, + 1307 + ], + [ + -89, + 1339 + ], + [ + -91, + 1419 + ], + [ + 95, + 489 + ], + [ + -31, + 1387 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -43, + 197 + ], + [ + -31, + 811 + ], + [ + -32, + 812 + ], + [ + -87, + 1323 + ], + [ + -89, + 1343 + ], + [ + -95, + 1443 + ], + [ + 91, + 489 + ], + [ + -23, + 1371 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -105, + 1588 + ], + [ + -108, + 1616 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ], + [ + -115, + 1773 + ], + [ + -116, + 1785 + ] + ] + }, + "units": [ + [ + 6, + 4 + ], + [ + -25, + 618 + ], + [ + -26, + 623 + ], + [ + -33, + 646 + ], + [ + -34, + 651 + ], + [ + -44, + 707 + ], + [ + -52, + 727 + ] + ] + }, + "positive": { + "branch": 43, + "negative": { + "branch": 23, + "negative": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "positive": { + "conflict": 1831, + "units": [ + [ + -24, + 65 + ], + [ + -59, + 971 + ], + [ + -62, + 995 + ], + [ + -68, + 1043 + ], + [ + -69, + 1051 + ], + [ + -83, + 1239 + ], + [ + 85, + 460 + ], + [ + -91, + 1371 + ], + [ + 95, + 489 + ], + [ + -99, + 1480 + ], + [ + 100, + 518 + ], + [ + -103, + 1620 + ], + [ + 102, + 520 + ], + [ + -112, + 1805 + ], + [ + 115, + 551 + ] + ] + }, + "units": [ + [ + 44, + 189 + ], + [ + -25, + 763 + ], + [ + -26, + 764 + ], + [ + -111, + 1749 + ], + [ + -116, + 1781 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -44, + 190 + ], + [ + -23, + 755 + ], + [ + -26, + 756 + ], + [ + -83, + 1307 + ], + [ + 85, + 460 + ], + [ + -91, + 1419 + ], + [ + 95, + 489 + ], + [ + -99, + 1480 + ], + [ + 100, + 518 + ], + [ + -103, + 1620 + ], + [ + 102, + 520 + ], + [ + -112, + 1805 + ], + [ + -116, + 1817 + ], + [ + -115, + 1831 + ], + [ + 111, + 551 + ], + [ + -25, + 1701 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "units": [ + [ + -6, + 14 + ], + [ + -31, + 638 + ], + [ + -32, + 644 + ], + [ + -33, + 648 + ], + [ + -34, + 652 + ], + [ + -51, + 723 + ], + [ + -52, + 729 + ], + [ + -87, + 1223 + ], + [ + -89, + 1231 + ], + [ + -105, + 1504 + ], + [ + -108, + 1516 + ] + ] + }, + "units": [ + [ + 41, + 187 + ], + [ + -5, + 681 + ], + [ + -10, + 683 + ], + [ + -84, + 1299 + ], + [ + -86, + 1300 + ], + [ + -88, + 1302 + ], + [ + -90, + 1305 + ] + ] + }, + "positive": { + "branch": 6, + "negative": { + "branch": 31, + "negative": { + "conflict": 1773, + "units": [ + [ + 25, + 64 + ], + [ + -44, + 763 + ], + [ + 51, + 189 + ], + [ + -61, + 987 + ], + [ + -62, + 997 + ], + [ + -69, + 1052 + ], + [ + -70, + 1060 + ], + [ + -95, + 1443 + ], + [ + 91, + 489 + ], + [ + -105, + 1588 + ], + [ + 102, + 520 + ], + [ + -111, + 1701 + ], + [ + 115, + 551 + ] + ] + }, + "positive": { + "conflict": 1749, + "units": [ + [ + -25, + 99 + ], + [ + -51, + 811 + ], + [ + 44, + 189 + ], + [ + -67, + 1035 + ], + [ + -68, + 1047 + ], + [ + -69, + 1055 + ], + [ + -70, + 1063 + ], + [ + -95, + 1387 + ], + [ + 91, + 489 + ], + [ + -105, + 1536 + ], + [ + 102, + 520 + ], + [ + -110, + 1665 + ], + [ + 109, + 549 + ], + [ + -60, + 1673 + ], + [ + -62, + 1674 + ], + [ + -115, + 1717 + ], + [ + 111, + 551 + ] + ] + }, + "units": [ + [ + 5, + 4 + ], + [ + -24, + 614 + ], + [ + -26, + 622 + ], + [ + -32, + 642 + ], + [ + -34, + 650 + ], + [ + -84, + 1215 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -33, + 1244 + ], + [ + -43, + 1307 + ], + [ + -52, + 1311 + ] + ] + }, + "positive": { + "branch": 51, + "negative": { + "conflict": 1419, + "units": [ + [ + 43, + 189 + ], + [ + -23, + 755 + ], + [ + -32, + 759 + ], + [ + -83, + 1307 + ], + [ + 84, + 460 + ], + [ + -24, + 1247 + ], + [ + 31, + 64 + ], + [ + -67, + 1035 + ], + [ + -68, + 1047 + ], + [ + -69, + 1055 + ], + [ + -70, + 1063 + ], + [ + -95, + 1387 + ], + [ + 91, + 489 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -43, + 197 + ], + [ + -31, + 811 + ], + [ + -32, + 812 + ], + [ + -95, + 1443 + ], + [ + 91, + 489 + ], + [ + -23, + 1371 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -84, + 1247 + ], + [ + 83, + 460 + ], + [ + -105, + 1588 + ], + [ + 102, + 520 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ], + [ + -115, + 1773 + ], + [ + 111, + 551 + ] + ] + }, + "units": [ + [ + -5, + 5 + ], + [ + -25, + 618 + ], + [ + -26, + 623 + ], + [ + -33, + 646 + ], + [ + -34, + 651 + ], + [ + -44, + 707 + ], + [ + -52, + 727 + ] + ] + }, + "units": [ + [ + -41, + 188 + ], + [ + -9, + 685 + ], + [ + -10, + 686 + ], + [ + -87, + 1301 + ], + [ + -88, + 1303 + ], + [ + -89, + 1304 + ], + [ + -90, + 1306 + ], + [ + -100, + 1479 + ], + [ + 99, + 518 + ], + [ + -85, + 1480 + ], + [ + -86, + 1481 + ], + [ + -103, + 1644 + ], + [ + -108, + 1650 + ], + [ + -112, + 1829 + ], + [ + -116, + 1832 + ] + ] + }, + "units": [ + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + -48, + 876 + ], + [ + -55, + 883 + ], + [ + -56, + 885 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "branch": 31, + "negative": { + "conflict": 1681, + "units": [ + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + 67, + 310 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ] + ] + }, + "positive": { + "conflict": 1673, + "units": [ + [ + -24, + 86 + ], + [ + -67, + 1035 + ], + [ + 60, + 310 + ], + [ + -95, + 1387 + ], + [ + 91, + 489 + ], + [ + -110, + 1665 + ], + [ + 109, + 549 + ] + ] + }, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + -62, + 916 + ], + [ + -69, + 944 + ], + [ + -70, + 947 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ], + [ + -59, + 1151 + ], + [ + -68, + 1155 + ] + ] + }, + "positive": { + "branch": 31, + "negative": { + "conflict": 1681, + "units": [ + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + 67, + 310 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ] + ] + }, + "positive": { + "conflict": 1673, + "units": [ + [ + -24, + 86 + ], + [ + -67, + 1035 + ], + [ + 60, + 310 + ], + [ + -95, + 1387 + ], + [ + 91, + 489 + ], + [ + -110, + 1665 + ], + [ + 109, + 549 + ] + ] + }, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + -62, + 915 + ], + [ + -68, + 939 + ], + [ + -69, + 943 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ], + [ + -61, + 1159 + ], + [ + -70, + 1164 + ] + ] + }, + "units": [ + [ + -39, + 186 + ], + [ + -9, + 671 + ], + [ + -10, + 672 + ], + [ + -19, + 675 + ], + [ + -20, + 676 + ], + [ + -42, + 690 + ], + [ + 41, + 187 + ], + [ + -5, + 681 + ], + [ + 6, + 4 + ], + [ + -25, + 618 + ], + [ + -26, + 623 + ], + [ + -33, + 646 + ], + [ + -34, + 651 + ], + [ + -44, + 707 + ], + [ + -48, + 715 + ], + [ + -52, + 727 + ], + [ + -56, + 743 + ], + [ + -51, + 879 + ], + [ + -55, + 884 + ], + [ + -79, + 1147 + ], + [ + -80, + 1148 + ], + [ + -87, + 1295 + ], + [ + -88, + 1296 + ], + [ + -89, + 1297 + ], + [ + -90, + 1298 + ], + [ + -84, + 1299 + ], + [ + -86, + 1300 + ], + [ + -100, + 1478 + ], + [ + 99, + 518 + ], + [ + -85, + 1480 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -32, + 1243 + ], + [ + -43, + 1307 + ], + [ + 47, + 189 + ], + [ + -105, + 1568 + ], + [ + -108, + 1571 + ], + [ + -103, + 1644 + ], + [ + 102, + 520 + ], + [ + -112, + 1829 + ], + [ + -116, + 1832 + ] + ] + }, + "units": [ + [ + 13, + 33 + ], + [ + -93, + 1363 + ], + [ + -97, + 1367 + ], + [ + -113, + 1693 + ], + [ + -114, + 1694 + ], + [ + -117, + 1697 + ], + [ + -118, + 1699 + ] + ] + }, + "positive": { + "branch": 9, + "negative": { + "branch": 40, + "negative": { + "branch": 43, + "negative": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + 51, + 189 + ], + [ + -31, + 811 + ], + [ + -32, + 812 + ], + [ + -87, + 1323 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -105, + 1588 + ], + [ + 102, + 520 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -51, + 197 + ], + [ + -23, + 755 + ], + [ + -32, + 759 + ], + [ + -83, + 1307 + ], + [ + 87, + 460 + ], + [ + -31, + 1263 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -91, + 1419 + ], + [ + 93, + 489 + ], + [ + -105, + 1628 + ], + [ + 102, + 520 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "units": [ + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + -55, + 883 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "branch": 24, + "negative": { + "conflict": 1673, + "units": [ + [ + 31, + 64 + ], + [ + -67, + 1035 + ], + [ + 60, + 310 + ], + [ + -110, + 1665 + ], + [ + 109, + 549 + ] + ] + }, + "positive": { + "conflict": 1681, + "units": [ + [ + -31, + 86 + ], + [ + -60, + 979 + ], + [ + 67, + 310 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ] + ] + }, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + -62, + 916 + ], + [ + -69, + 944 + ], + [ + -70, + 947 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ], + [ + -59, + 1151 + ], + [ + -68, + 1155 + ] + ] + }, + "positive": { + "branch": 24, + "negative": { + "conflict": 1673, + "units": [ + [ + 31, + 64 + ], + [ + -67, + 1035 + ], + [ + 60, + 310 + ], + [ + -110, + 1665 + ], + [ + 109, + 549 + ] + ] + }, + "positive": { + "conflict": 1681, + "units": [ + [ + -31, + 86 + ], + [ + -60, + 979 + ], + [ + 67, + 310 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ] + ] + }, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + -62, + 915 + ], + [ + -68, + 939 + ], + [ + -69, + 943 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ], + [ + -61, + 1159 + ], + [ + -70, + 1164 + ] + ] + }, + "units": [ + [ + -39, + 186 + ], + [ + -19, + 675 + ], + [ + -20, + 676 + ], + [ + -51, + 879 + ], + [ + -55, + 884 + ], + [ + -79, + 1147 + ], + [ + -80, + 1148 + ], + [ + -87, + 1295 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -32, + 1243 + ], + [ + -43, + 1307 + ], + [ + 47, + 189 + ], + [ + -93, + 1427 + ], + [ + 91, + 489 + ], + [ + -105, + 1568 + ], + [ + 102, + 520 + ], + [ + -113, + 1757 + ], + [ + 111, + 551 + ] + ] + }, + "units": [ + [ + 6, + 4 + ], + [ + -25, + 618 + ], + [ + -26, + 623 + ], + [ + -33, + 646 + ], + [ + -34, + 651 + ], + [ + -44, + 707 + ], + [ + -48, + 715 + ], + [ + -52, + 727 + ], + [ + -56, + 743 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -6, + 14 + ], + [ + -31, + 638 + ], + [ + -32, + 644 + ], + [ + -33, + 648 + ], + [ + -34, + 652 + ], + [ + -40, + 671 + ], + [ + 39, + 185 + ], + [ + -51, + 723 + ], + [ + -52, + 729 + ], + [ + -55, + 739 + ], + [ + -56, + 745 + ], + [ + -47, + 875 + ], + [ + -48, + 876 + ], + [ + -87, + 1223 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -26, + 1240 + ], + [ + -43, + 1307 + ], + [ + 44, + 189 + ], + [ + -25, + 763 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -105, + 1504 + ], + [ + 102, + 520 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ], + [ + -111, + 1749 + ], + [ + 113, + 551 + ] + ] + }, + "units": [ + [ + -13, + 34 + ], + [ + -42, + 689 + ], + [ + 41, + 187 + ], + [ + -5, + 681 + ], + [ + -10, + 683 + ], + [ + -84, + 1299 + ], + [ + -86, + 1300 + ], + [ + -88, + 1302 + ], + [ + -90, + 1305 + ], + [ + -95, + 1365 + ], + [ + -97, + 1368 + ], + [ + -100, + 1477 + ], + [ + 99, + 518 + ], + [ + -85, + 1480 + ], + [ + -89, + 1482 + ], + [ + -103, + 1644 + ], + [ + -108, + 1650 + ], + [ + -115, + 1695 + ], + [ + -116, + 1696 + ], + [ + -117, + 1698 + ], + [ + -118, + 1700 + ], + [ + -112, + 1829 + ], + [ + -114, + 1830 + ] + ] + }, + "units": [ + [ + 3, + 2 + ], + [ + -17, + 590 + ], + [ + -18, + 591 + ], + [ + -21, + 594 + ], + [ + -22, + 596 + ], + [ + -27, + 598 + ], + [ + -28, + 599 + ], + [ + -29, + 600 + ], + [ + -30, + 601 + ], + [ + -35, + 606 + ], + [ + -36, + 608 + ], + [ + -37, + 610 + ], + [ + -38, + 612 + ], + [ + -45, + 691 + ], + [ + -46, + 692 + ], + [ + -49, + 693 + ], + [ + -50, + 694 + ], + [ + -53, + 697 + ], + [ + -54, + 699 + ], + [ + -57, + 703 + ], + [ + -58, + 705 + ], + [ + -63, + 891 + ], + [ + -64, + 892 + ], + [ + -65, + 893 + ], + [ + -66, + 894 + ], + [ + -71, + 899 + ], + [ + -72, + 901 + ], + [ + -73, + 903 + ], + [ + -74, + 905 + ], + [ + -77, + 1107 + ], + [ + -78, + 1108 + ], + [ + -81, + 1111 + ], + [ + -82, + 1113 + ] + ] + }, + "positive": { + "branch": 6, + "negative": { + "conflict": 1572, + "units": [ + [ + 9, + 4 + ], + [ + -40, + 671 + ], + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + -48, + 876 + ], + [ + -49, + 877 + ], + [ + -50, + 878 + ], + [ + -87, + 1223 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -29, + 1242 + ], + [ + -43, + 1307 + ], + [ + -46, + 1308 + ], + [ + -105, + 1504 + ], + [ + 102, + 520 + ], + [ + -27, + 1520 + ], + [ + 25, + 64 + ], + [ + -44, + 763 + ], + [ + 45, + 189 + ], + [ + -61, + 987 + ], + [ + -65, + 1020 + ] + ] + }, + "positive": { + "branch": 13, + "negative": { + "branch": 23, + "negative": { + "conflict": 1628, + "units": [ + [ + 27, + 64 + ], + [ + -45, + 771 + ], + [ + -49, + 797 + ], + [ + -63, + 1003 + ], + [ + -65, + 1021 + ], + [ + -102, + 1520 + ], + [ + 105, + 520 + ], + [ + -40, + 1568 + ], + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + 43, + 189 + ], + [ + -83, + 1307 + ], + [ + 87, + 460 + ], + [ + -91, + 1419 + ], + [ + 93, + 489 + ] + ] + }, + "positive": { + "conflict": 1628, + "units": [ + [ + -27, + 68 + ], + [ + -43, + 755 + ], + [ + -49, + 795 + ], + [ + -59, + 971 + ], + [ + -65, + 1019 + ], + [ + -83, + 1239 + ], + [ + 87, + 460 + ], + [ + -40, + 1295 + ], + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + 45, + 189 + ], + [ + -91, + 1371 + ], + [ + 93, + 489 + ], + [ + -102, + 1572 + ], + [ + 105, + 520 + ] + ] + }, + "units": [ + [ + 14, + 33 + ], + [ + -95, + 1365 + ], + [ + -97, + 1368 + ], + [ + -115, + 1695 + ], + [ + -117, + 1698 + ] + ] + }, + "positive": { + "branch": 23, + "negative": { + "conflict": 1628, + "units": [ + [ + 27, + 64 + ], + [ + -45, + 771 + ], + [ + -49, + 797 + ], + [ + -63, + 1003 + ], + [ + -65, + 1021 + ], + [ + -102, + 1520 + ], + [ + 105, + 520 + ], + [ + -40, + 1568 + ], + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + 43, + 189 + ], + [ + -83, + 1307 + ], + [ + 87, + 460 + ], + [ + -91, + 1419 + ], + [ + 95, + 489 + ] + ] + }, + "positive": { + "conflict": 1628, + "units": [ + [ + -27, + 68 + ], + [ + -43, + 755 + ], + [ + -49, + 795 + ], + [ + -59, + 971 + ], + [ + -65, + 1019 + ], + [ + -83, + 1239 + ], + [ + 87, + 460 + ], + [ + -40, + 1295 + ], + [ + 39, + 185 + ], + [ + -47, + 875 + ], + [ + 45, + 189 + ], + [ + -91, + 1371 + ], + [ + 95, + 489 + ], + [ + -102, + 1572 + ], + [ + 105, + 520 + ] + ] + }, + "units": [ + [ + -14, + 34 + ], + [ + -93, + 1363 + ], + [ + -97, + 1367 + ], + [ + -113, + 1693 + ], + [ + -117, + 1697 + ] + ] + }, + "units": [ + [ + -9, + 14 + ], + [ + -25, + 618 + ], + [ + -29, + 630 + ], + [ + -44, + 707 + ], + [ + -46, + 711 + ], + [ + -48, + 715 + ], + [ + -50, + 719 + ] + ] + }, + "units": [ + [ + -3, + 3 + ], + [ + -19, + 592 + ], + [ + -20, + 593 + ], + [ + -21, + 595 + ], + [ + -22, + 597 + ], + [ + -31, + 602 + ], + [ + -32, + 603 + ], + [ + -33, + 604 + ], + [ + -34, + 605 + ], + [ + -35, + 607 + ], + [ + -36, + 609 + ], + [ + -37, + 611 + ], + [ + -38, + 613 + ], + [ + -42, + 680 + ], + [ + 41, + 187 + ], + [ + -5, + 681 + ], + [ + -10, + 683 + ], + [ + -51, + 695 + ], + [ + -52, + 696 + ], + [ + -53, + 698 + ], + [ + -54, + 700 + ], + [ + -55, + 701 + ], + [ + -56, + 702 + ], + [ + -57, + 704 + ], + [ + -58, + 706 + ], + [ + -67, + 895 + ], + [ + -68, + 896 + ], + [ + -69, + 897 + ], + [ + -70, + 898 + ], + [ + -71, + 900 + ], + [ + -72, + 902 + ], + [ + -73, + 904 + ], + [ + -74, + 906 + ], + [ + -79, + 1109 + ], + [ + -80, + 1110 + ], + [ + -81, + 1112 + ], + [ + -82, + 1114 + ], + [ + -84, + 1299 + ], + [ + -86, + 1300 + ], + [ + -88, + 1302 + ], + [ + -90, + 1305 + ], + [ + -100, + 1476 + ], + [ + 99, + 518 + ], + [ + -85, + 1480 + ], + [ + -89, + 1482 + ], + [ + -103, + 1644 + ], + [ + -108, + 1650 + ], + [ + -110, + 1652 + ], + [ + 109, + 549 + ], + [ + -24, + 1657 + ], + [ + -26, + 1658 + ], + [ + -28, + 1659 + ], + [ + -30, + 1660 + ], + [ + -60, + 1673 + ], + [ + -62, + 1674 + ], + [ + -64, + 1675 + ], + [ + -66, + 1676 + ], + [ + -112, + 1829 + ], + [ + -114, + 1830 + ], + [ + -116, + 1832 + ], + [ + -118, + 1835 + ] + ] + }, + "units": [ + [ + 1, + 0 + ], + [ + -7, + 581 + ], + [ + -8, + 582 + ], + [ + -11, + 585 + ], + [ + -12, + 587 + ], + [ + -92, + 1355 + ], + [ + -94, + 1356 + ], + [ + -96, + 1358 + ], + [ + -98, + 1361 + ], + [ + -101, + 1488 + ], + [ + -104, + 1489 + ], + [ + -106, + 1491 + ], + [ + -107, + 1493 + ] + ] + }, + "positive": { + "branch": 6, + "negative": { + "branch": 87, + "negative": { + "branch": 44, + "negative": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + 51, + 189 + ], + [ + -31, + 811 + ], + [ + -34, + 814 + ], + [ + -115, + 1773 + ], + [ + 111, + 551 + ], + [ + -25, + 1701 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -51, + 211 + ], + [ + -25, + 763 + ], + [ + -34, + 768 + ], + [ + -111, + 1749 + ], + [ + 115, + 551 + ], + [ + -31, + 1717 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "units": [ + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + -26, + 1240 + ], + [ + -32, + 1243 + ], + [ + -33, + 1244 + ], + [ + -43, + 1307 + ], + [ + -52, + 1311 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -83, + 464 + ], + [ + -31, + 1263 + ], + [ + -32, + 1264 + ], + [ + -33, + 1265 + ], + [ + -34, + 1266 + ], + [ + -51, + 1323 + ], + [ + -52, + 1324 + ], + [ + -115, + 1813 + ], + [ + 111, + 551 + ], + [ + -25, + 1701 + ], + [ + -26, + 1702 + ], + [ + -44, + 1749 + ], + [ + 43, + 189 + ], + [ + -23, + 755 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -91, + 1419 + ], + [ + 92, + 489 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ] + ] + }, + "units": [ + [ + 7, + 4 + ], + [ + -101, + 1496 + ], + [ + 102, + 520 + ] + ] + }, + "positive": { + "branch": 43, + "negative": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + 51, + 189 + ], + [ + -31, + 811 + ], + [ + -32, + 812 + ], + [ + -87, + 1323 + ], + [ + 83, + 460 + ], + [ + -23, + 1239 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ], + [ + -115, + 1773 + ], + [ + 111, + 551 + ] + ] + }, + "positive": { + "branch": 15, + "negative": { + "conflict": 1151, + "units": [ + [ + 16, + 35 + ], + [ + -61, + 911 + ], + [ + 59, + 310 + ], + [ + -76, + 1119 + ], + [ + 75, + 431 + ] + ] + }, + "positive": { + "conflict": 1159, + "units": [ + [ + -16, + 36 + ], + [ + -59, + 907 + ], + [ + 61, + 310 + ], + [ + -75, + 1115 + ], + [ + 76, + 431 + ] + ] + }, + "units": [ + [ + -51, + 197 + ], + [ + -23, + 755 + ], + [ + -32, + 759 + ], + [ + -83, + 1307 + ], + [ + 87, + 460 + ], + [ + -31, + 1263 + ], + [ + 24, + 64 + ], + [ + -60, + 979 + ], + [ + -62, + 996 + ], + [ + -68, + 1044 + ], + [ + -70, + 1059 + ], + [ + -91, + 1419 + ], + [ + 92, + 489 + ], + [ + -109, + 1657 + ], + [ + 110, + 549 + ], + [ + -19, + 1653 + ], + [ + -20, + 1654 + ], + [ + -67, + 1681 + ], + [ + -69, + 1683 + ], + [ + -79, + 1689 + ], + [ + -80, + 1690 + ], + [ + -115, + 1813 + ], + [ + 111, + 551 + ] + ] + }, + "units": [ + [ + -7, + 12 + ], + [ + -25, + 618 + ], + [ + -26, + 623 + ], + [ + -33, + 646 + ], + [ + -34, + 651 + ], + [ + -44, + 707 + ], + [ + -52, + 727 + ] + ] + }, + "units": [ + [ + -1, + 1 + ], + [ + -4, + 580 + ], + [ + 3, + 2 + ], + [ + -9, + 583 + ], + [ + -10, + 584 + ], + [ + -11, + 586 + ], + [ + -12, + 588 + ], + [ + -14, + 589 + ], + [ + 13, + 33 + ], + [ + -17, + 590 + ], + [ + -18, + 591 + ], + [ + -21, + 594 + ], + [ + -22, + 596 + ], + [ + -27, + 598 + ], + [ + -28, + 599 + ], + [ + -29, + 600 + ], + [ + -30, + 601 + ], + [ + -35, + 606 + ], + [ + -36, + 608 + ], + [ + -37, + 610 + ], + [ + -38, + 612 + ], + [ + -40, + 670 + ], + [ + 39, + 185 + ], + [ + -42, + 679 + ], + [ + 41, + 187 + ], + [ + -5, + 681 + ], + [ + -8, + 682 + ], + [ + -45, + 691 + ], + [ + -46, + 692 + ], + [ + -49, + 693 + ], + [ + -50, + 694 + ], + [ + -53, + 697 + ], + [ + -54, + 699 + ], + [ + -57, + 703 + ], + [ + -58, + 705 + ], + [ + -47, + 875 + ], + [ + -48, + 876 + ], + [ + -55, + 883 + ], + [ + -56, + 885 + ], + [ + -63, + 891 + ], + [ + -64, + 892 + ], + [ + -65, + 893 + ], + [ + -66, + 894 + ], + [ + -71, + 899 + ], + [ + -72, + 901 + ], + [ + -73, + 903 + ], + [ + -74, + 905 + ], + [ + -77, + 1107 + ], + [ + -78, + 1108 + ], + [ + -81, + 1111 + ], + [ + -82, + 1113 + ], + [ + -84, + 1299 + ], + [ + -86, + 1300 + ], + [ + -88, + 1302 + ], + [ + -90, + 1305 + ], + [ + -95, + 1357 + ], + [ + -96, + 1359 + ], + [ + -97, + 1360 + ], + [ + -98, + 1362 + ], + [ + -93, + 1363 + ], + [ + -94, + 1364 + ], + [ + -100, + 1475 + ], + [ + 99, + 518 + ], + [ + -85, + 1480 + ], + [ + -89, + 1482 + ], + [ + -105, + 1490 + ], + [ + -106, + 1492 + ], + [ + -107, + 1494 + ], + [ + -108, + 1495 + ], + [ + -103, + 1644 + ], + [ + -104, + 1645 + ], + [ + -113, + 1693 + ], + [ + -114, + 1694 + ], + [ + -117, + 1697 + ], + [ + -118, + 1699 + ], + [ + -112, + 1829 + ], + [ + -116, + 1832 + ] + ] + }, + "units": [] +} diff --git a/research/turyn-profile-cnf/PROOF.md b/research/turyn-profile-cnf/PROOF.md new file mode 100644 index 0000000000..da054df2cd --- /dev/null +++ b/research/turyn-profile-cnf/PROOF.md @@ -0,0 +1,138 @@ +# Exact statement and independent finite proof + +## 1. Coordinates and graph + +Let C be the binary length-24 Turyn code + + C = {(a+x, b+x, a+b+x): a,b in H, x in H'}, + +where H is the evaluation code of affine functions on F₂³ and H' is H +permuted by `(0,1,2,4,3,6,7,5)`. The verifier constructs C as the span of +twelve explicit binary generators, checks its size 4096, and checks its +weight distribution `{0:1, 8:759, 12:2576, 16:759, 24:1}`. + +The 24 coordinate rows in `WITNESS.json` belong directly to the predecessor's +two full-port shell families: + +1. Eight entries ±2 on a weight-eight codeword, all other entries zero, + with an even number of minus signs +2. A sign vector from a codeword, with one coordinate multiplied by −3 + +The verifier checks these family conditions directly. It also checks the +coordinate-sum, parity, and mod-four residue-code conditions, and squared +norm 32. Every row has block squared norms `(16,8,8)` and is normalized so +the first nonzero coordinate of each block is positive. The generator's +different implementation reconstructs the complete sorted canonical port +array and matches the predecessor's immutable array digest before selecting +the original 24 indices. + +If x is an integer row, its real lattice vector is x/√8. The tensor scalar +kernel between two ports is therefore + + K(x,y) = (x₀·y₀)(x₁·y₁)(x₂·y₂) / 8³. + +Only its nonzero pattern is used. No square roots or floating-point +calculations occur: two distinct vertices are adjacent exactly when all +three integer block dots are nonzero. The complete 24-vertex graph has +171 edges: 21 within the seven anchors, 79 anchor-to-variable edges, and +71 between the remaining seventeen vertices. + +## 2. Standard-dot fitting and anchor normalization + +A width-h fitting assigns each vertex a vector p(v) in F₂ʰ satisfying + + p(v)·p(v) = 1, + p(v)·p(w) = 0 whenever v and w are adjacent. + +The seven anchors form a clique, so in a width-eight fitting their labels +are an orthonormal set. Their span U has dimension seven and is +nondegenerate. Since F₂⁸ with its standard dot product is nondegenerate, +U's orthogonal complement is one-dimensional and nondegenerate. Its +nonzero vector thus has self-dot one. The seven anchors together with this +vector form an orthonormal basis. A dot-product-preserving change of basis +can consequently put the anchors at e₁,…,e₇ without loss of generality. + +Each other label must have odd Hamming weight, and coordinate j must be +zero if its port is adjacent to anchor j. This leaves the complete domain +sizes + + 2, 2, 8, 2, 8, 16, 2, 2, 16, 16, 8, 8, 8, 2, 8, 2, 8. + +No possible eight-bit label is omitted. A lower-dimensional fitting could +be padded with zero coordinates to width eight, so disproving width eight +also excludes every smaller width. + +## 3. Exact Boolean encoding + +For each vertex v and each remaining label ℓ introduce X(v,ℓ). Include: + +- A disjunction of all X(v,ℓ) for each vertex +- A clause `¬X(v,ℓ) ∨ ¬X(v,m)` for every distinct pair of its labels +- For each retained graph edge vw, the clause + `¬X(v,ℓ) ∨ ¬X(w,m)` whenever ℓ·m = 1 + +The first two conditions select exactly one label. The last is exactly +orthogonality on retained variable edges. Thus CNF satisfiability is +equivalent to a fitting of the graph with all anchor constraints fixed. +The producer and verifier implement the encoding separately and their +full clause arrays are compared in tests. + +The original graph gives 118 variables and 1,999 clauses. One deterministic +deletion pass, with edge order shuffled using seed 78, leaves 57 of the +71 variable edges. Its CNF has the same 118 variables and 1,837 clauses. +Deleting constraints cannot turn a satisfiable graph into an unsatisfiable +one, so a contradiction for this reduced graph also excludes a fitting +of the original graph. + +## 4. Local verification of the contradiction + +`PROOF.json` is a binary decision tree. A node contains zero or more unit +deductions, each citing an original clause index. Each deduction is +accepted only when all the reason clause's other literals are assigned +false and its sole unassigned literal is exactly the deduced one. + +A terminal node cites a clause and is accepted only when every literal +of that clause is assigned false. An internal node names an unassigned +Boolean variable and contains **both** children, for its true and false +values. Their inherited assignments are checked separately. + +Induction on this finite tree proves that no extension of a node's incoming +assignment satisfies the CNF: unit deductions preserve every satisfying +extension, a falsified clause has none, and the two branches exhaust the +values of their unassigned variable. At the root the incoming assignment +is empty, proving unsatisfiability. This induction, not the SAT producer's +return status, justifies the result. + +The checked tree has 85 nodes, 43 contradicted-clause leaves, and 1,042 +unit deductions. All checks use explicit conditions and remain active +under Python optimization. The verifier imports no SAT solver, producer, +original arc-consistency search, or predecessor geometry module. + +## 5. Tight finite boundary and core scope + +`CONTROLS.json` gives a width-eight label assignment for each of the 57 +single-edge deletions from the **reduced** variable-edge graph, retaining +all anchor edges. The verifier checks every label's diagonal, every +anchor constraint, every remaining core edge, and a violation on the +deleted edge itself. Hence no proper subset of these 57 variable edges +is unsatisfiable under the fixed anchor constraints: removing any edge +already yields a fit, and further deletions preserve it. + +This is inclusion minimality, not a claim that no different smaller core +exists. In particular, it says nothing about deleting anchor edges or +vertices. These positive assignments need not satisfy edges discarded +earlier from the original 71-edge variable graph. + +A separate explicit width-nine assignment satisfies all 171 original +graph edges, so the exact standard-dot fitting dimension of this finite +graph is nine. The same coordinates cyclically permuted among blocks are +checked to remain in the Turyn code. Norms, diagonal conditions and +products of block pairings are unchanged, so each other profile contains +an isomorphic witness. + +These three lower bounds do **not** add for arbitrary global labels: +different profile spans need not be mutually orthogonal. No unrestricted +global fitting lower bound of 27 is claimed. The predecessor already +established the nine-dimensional profile obstruction; the contributions +here are an independent proof architecture, explicit replayable local +deductions, and the edge-critical reduced certificate with positive controls. diff --git a/research/turyn-profile-cnf/README.md b/research/turyn-profile-cnf/README.md new file mode 100644 index 0000000000..b7f201fe55 --- /dev/null +++ b/research/turyn-profile-cnf/README.md @@ -0,0 +1,104 @@ +# Independent CNF certificate for the Turyn profile obstruction + +**Independent verification; no new κ.** This package corroborates the +single-profile eight-bit fitting obstruction in DominikScholz's [PR598](https://github.com/CrocSwap/integer-mult-bounds/pull/598), +using new integer geometry, a Boolean CNF encoding, and a locally checkable +contradiction certificate. It imports no predecessor Python code or NumPy. + +The 24 actual ports have seven mutually adjacent anchors. With all anchor +constraints retained, the original 71 variable-to-variable edges reduce to +an **inclusion-minimal 57-edge core**. For every one of the 57 retained edges, +an explicit eight-bit fitting satisfies the core after that edge is deleted. +This does **not** show minimum edge count, minimum vertex count, or minimality +when anchor constraints may also be deleted. + +An explicit nine-bit fitting satisfies the **original full 171-edge graph**. +Together with the eight-bit contradiction, this establishes that this exact +24-port graph has standard-dot binary fitting dimension nine. Cyclic block +permutations place a copy in each of the three profiles. It does not prove +that their dimensions add to 27 for arbitrary global nonlinear labels. + +## Reproduce + +Python 3.10 or later, standard library only, from the repository root: + +```sh +python3 -I -O -B research/turyn-profile-cnf/verify.py +``` + +Expected marker: `PASS_TURYN_PROFILE_CNF`. The deterministic receipt is +compared with `EXPECTED.json`. Verification checks: + +- 24 explicit norm-32 integer vectors in the two relevant Turyn shell + families, using an independently constructed 12-row binary code +- All 276 unordered vector pairs, with graph edges defined by three + nonzero exact integer block products +- Seven anchor-clique labels, 79 anchor-to-variable constraints, and all + 71 original variable-to-variable edges +- The reduced 118-variable, 1,837-clause CNF and its entire 85-node proof: + 1,042 justified unit deductions and 43 contradicted-clause leaves +- All 57 single-edge-deletion eight-bit fittings, one fully relaxed + eight-bit fitting, and a nine-bit fitting for the original graph +- Seven corruption controls, including a missing proof branch, a wrong + unit sign, changed coordinates, and applying the proof to a relaxed graph + +The default checker does not rerun a SAT search. On the development machine +the complete check took about 0.25 seconds; this is a descriptive observation, +not a benchmark or speedup claim. + +The new package's test suite also runs under optimized Python: + +```sh +python3 -I -B research/turyn-profile-cnf/test_verify.py -v +python3 -I -O -B research/turyn-profile-cnf/test_verify.py -v +``` + +Eight test groups include all 512 two-variable CNFs, 512 seed-78 +three-variable CNFs checked against exhaustive truth tables, two separately +implemented encodings, and rejection of the old proof after each core edge +deletion. + +## Regenerate the evidence + +```sh +python3 -I -B research/turyn-profile-cnf/build.py --reduce +``` + +The new producer constructs all 23,040 canonical integer ports independently +and compares the whole coordinate array's SHA-256 with the frozen predecessor +receipt. It then selects the exact original port indices, uses ordinary +Boolean DPLL to produce the proof, performs one seed-78 edge-deletion pass, +and emits all positive controls. It writes only this package's generated +JSON files. Generation took about 26 seconds in the recorded run. + +The default verifier proves membership of the 24 explicit coordinates +directly; it does not reconstruct the entire array merely to recheck their +enumeration indices. The full-array hash comparison and index-to-coordinate +binding belong to the separately reproducible generation step. The finite +theorem depends on the explicit coordinates and edges, not their index names. + +## Sources and scope + +- Exact base: `91a2094f2e022930069e8cfdc810a3ea1b81cd09` +- PR598 incorporated head: `615ca6f06fdea0c50dbef733370c47349e25c555` +- Selected frontier at that base: PR799, + conditional κ = `0.001661634653669567`; unchanged +- `SOURCES.json` pins the consumed predecessor fixtures and the reference + code read for semantics. None of that code is imported or executed +- `CLAIM.json` records assignment seed 78, the three candidates, overlap + checks and stopping rule. `PROOF.md` gives the complete reduction +- `WITNESS.json`, `CORE.cnf`, `PROOF.json`, and `CONTROLS.json` are the reviewable evidence; + `BUILD.json` records the new producer's deterministic statistics + +This contribution supplies exact, finite, computer-checked evidence. It is +not a Lean formalization or a proof of the full multiplication theorem. It +does not construct a supplier, improve the selected exponent, rule out an +arbitrary global 25-dimensional Turyn fit, or discharge the inherited +compiler, hosting, precision, tape, or analytic obligations. + +All changes are confined to this directory. `upstream/`, selected records, +predecessor programs and global verification targets are unchanged. The +new focused checks were run; `make verify`, selected-supplier cold replay, +and Lean were **not** run. No external repository code was executed in +preparing this isolated contribution. See `NOTICE.md` for credits and the +substantial AI-assistance disclosure. diff --git a/research/turyn-profile-cnf/SOURCES.json b/research/turyn-profile-cnf/SOURCES.json new file mode 100644 index 0000000000..9f65d27c2c --- /dev/null +++ b/research/turyn-profile-cnf/SOURCES.json @@ -0,0 +1,15 @@ +{ + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "predecessor_pr598_head": "615ca6f06fdea0c50dbef733370c47349e25c555", + "files": { + "research/turyn-port-labels/evidence/PROFILE-H8.json": "39b1fea14484b4dc515d856dcff326c3a1d009c7feb0baf22b865ece7e6f1551", + "research/turyn-port-labels/evidence/GEOMETRY-VERIFICATION.json": "1f3d20a6469da2a76c62751edec0d3ae655be901f14bd4dc7cbf9fd6e973716b", + "research/turyn-port-labels/PROOF.txt": "926af92411e16decd9663efdcf3f97b27926cc6dc57ea799e6d217f01d2d8b0e", + "research/turyn-port-labels/NOTICE": "ce1b6d43aa1d670cbcb09c88ec8270170863a1f74898f69b04599917ce57dd5c", + "research/turyn-port-labels/code/profile.py": "418122e3d6f41eda07fe5060911c090c0f2c057220dd1eb9a24a115bcc58ee01", + "research/leech-lattice/code/turyn_checks.py": "ca3529b1c3e1f31cdc16a68304fa9f42a5752af52cd1f470b3e2bdbe6085c5d7", + "research/leech-lattice/code/leech_geometry.py": "2d1ad5ec15d10464d2853bf9a245aafd66ce4f0e9d08509c06b260f0b022c1bd", + "research/leech-lattice/evidence/TURYN-GEOMETRY.json": "d9ad298a2dadba1143007ac873d1c23cc80977205217a3b6013a7c7d7caa3c7e", + "certificates/selected-result.json": "9873519224e2db72d6a8c926f51e3e75129671e467948c6f6b03744f8bcfc699" + } +} diff --git a/research/turyn-profile-cnf/VALIDATION.json b/research/turyn-profile-cnf/VALIDATION.json new file mode 100644 index 0000000000..53ab0ef00d --- /dev/null +++ b/research/turyn-profile-cnf/VALIDATION.json @@ -0,0 +1,32 @@ +{ + "status": "focused checks passed", + "python": "3.12.14", + "platform": "Linux-6.18.44-x86_64-with-glibc2.41", + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "checks": [ + { + "command": "python3 -I -O -B research/turyn-profile-cnf/verify.py", + "result": "PASS_TURYN_PROFILE_CNF; exact EXPECTED.json equality" + }, + { + "command": "python3 -I -B research/turyn-profile-cnf/test_verify.py -v", + "result": "8 test groups passed; 512 exhaustive two-variable and 512 seeded three-variable CNFs" + }, + { + "command": "python3 -I -O -B research/turyn-profile-cnf/test_verify.py -v", + "result": "same 8 test groups passed with assertions disabled" + }, + { + "command": "python3 -I -O -B research/turyn-profile-cnf/build.py --reduce", + "result": "Full 23,040-port array matched predecessor SHA-256; proof, witness, controls and build receipt reproduced byte-for-byte; CORE.cnf emitted and independently checked" + } + ], + "not_run": [ + "make verify", + "selected frontier cold replay", + "Lean", + "GitHub CI" + ], + "execution_scope": "Only new package Python code executed, using the standard library. No imported predecessor Python code, third-party installation, SAT solver or external source software execution.", + "independent_review": "A second assistant read the new producer, verifier and written proof, reran the checker and eight optimized test groups, and found no mathematical gap in the explicitly scoped reduction. This is AI review, not independent human peer review." +} diff --git a/research/turyn-profile-cnf/WITNESS.json b/research/turyn-profile-cnf/WITNESS.json new file mode 100644 index 0000000000..1e41ae992b --- /dev/null +++ b/research/turyn-profile-cnf/WITNESS.json @@ -0,0 +1,1171 @@ +{ + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432", + "coordinates": [ + [ + 1, + 1, + 1, + -1, + -1, + 3, + -1, + 1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 3, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 1, + -1, + 1, + -3, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 2, + 0, + 0, + -2, + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0 + ], + [ + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 0, + 2, + -2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0 + ], + [ + 1, + -1, + 3, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + -1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 0, + 2, + -2, + 0, + 0, + -2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2 + ], + [ + 0, + 2, + 0, + 2, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 1, + -1, + -3, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 1, + -1, + -1, + -1, + 1, + 3, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 1, + -1, + 1, + -3, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 1, + -1, + 1, + -1, + 1, + 3, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 3, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 1, + 1, + -1, + 1, + -1, + -3, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 1, + 1, + 1, + -3, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + 1, + 1, + -3, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + -1 + ], + [ + 1, + 1, + 1, + -1, + -3, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 1, + 1, + 1, + -1, + 1, + 1, + -3, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 1, + 1, + 1, + -1, + 1, + 1, + 1, + 3, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 2, + -2, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 3, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 3, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1 + ] + ], + "core_variable_edges": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ], + [ + 3, + 0 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 6 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 9, + 1 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 10, + 1 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 11, + 2 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 3 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 2 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 11 + ], + [ + 14, + 13 + ], + [ + 15, + 1 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 8 + ], + [ + 16, + 11 + ], + [ + 16, + 13 + ] + ], + "original_variable_edges": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 6, + 0 + ], + [ + 6, + 1 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 6 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 9, + 1 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 10, + 1 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 11, + 2 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 2 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 3 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 2 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 9 + ], + [ + 14, + 11 + ], + [ + 14, + 12 + ], + [ + 14, + 13 + ], + [ + 15, + 0 + ], + [ + 15, + 1 + ], + [ + 15, + 3 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 6 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 15, + 12 + ], + [ + 15, + 13 + ], + [ + 15, + 14 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 8 + ], + [ + 16, + 11 + ], + [ + 16, + 12 + ], + [ + 16, + 13 + ], + [ + 16, + 14 + ], + [ + 16, + 15 + ] + ], + "port_ids": [ + 16566, + 22682, + 10288, + 20048, + 21945, + 3032, + 12948, + 4704, + 6753, + 7497, + 8860, + 10248, + 11538, + 12949, + 14570, + 15892, + 15893, + 15966, + 16887, + 17159, + 19264, + 21753, + 22683, + 22833 + ] +} diff --git a/research/turyn-profile-cnf/build.py b/research/turyn-profile-cnf/build.py new file mode 100644 index 0000000000..81d887c492 --- /dev/null +++ b/research/turyn-profile-cnf/build.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python3 +"""Independent finite Turyn geometry and CNF certificate producer. + +No predecessor module is imported. Standard library only; Apache-2.0. +""" +from collections import Counter +from itertools import combinations, product +from pathlib import Path +import argparse +import hashlib +import json +import random +import time + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def canonical(vector): + result = [] + for b in range(3): + block = vector[8*b:8*b+8] + first = next((v for v in block if v), 0) + if not first: + return None + result.extend(block if first > 0 else [-v for v in block]) + return tuple(result) + + +def construct_ports(): + # Evaluate all affine Boolean functions on F_2^3. Turyn's second + # Reed--Muller copy uses the pinned coordinate permutation. + points = list(product((0, 1), repeat=3)) + affine = set() + for coefficients in product((0, 1), repeat=4): + row = tuple((coefficients[0] + sum(a*b for a, b in + zip(coefficients[1:], x))) % 2 for x in points) + affine.add(row) + permutation = (0, 1, 2, 4, 3, 6, 7, 5) + second = {tuple(row[i] for i in permutation) for row in affine} + code = {tuple(x ^ y for x, y in zip(a, c)) + + tuple(x ^ y for x, y in zip(b, c)) + + tuple(x ^ y ^ z for x, y, z in zip(a, b, c)) + for a in affine for b in affine for c in second} + require(len(code) == 4096, 'Turyn code has dimension 12') + require(Counter(map(sum, code)) == {0: 1, 8: 759, 12: 2576, 16: 759, 24: 1}, + 'Turyn weight enumerator') + ports = set() + # The two-coordinate shell family cannot meet all three blocks. + # Generate only the other two families, directly modulo block signs. + for word in code: + if sum(word) == 8: + support = [i for i, bit in enumerate(word) if bit] + if all(any(8*b <= i < 8*b+8 for i in support) for b in range(3)): + for bits in product((0, 1), repeat=7): + signs = bits + (sum(bits) % 2,) + vector = [0]*24 + for index, sign in zip(support, signs): + vector[index] = -2 if sign else 2 + ports.add(canonical(vector)) + for exceptional in range(24): + vector = [1-2*bit for bit in word] + vector[exceptional] *= -3 + ports.add(canonical(vector)) + require(None not in ports and len(ports) == 23040, '23,040 canonical ports') + ordered = sorted(ports) + digest = hashlib.sha256(bytes(v % 256 for row in ordered for v in row)).hexdigest() + reference = json.loads((ROOT/'research/leech-lattice/evidence/TURYN-GEOMETRY.json').read_text()) + require(digest == reference['integer_representatives_sha256'], + 'Independent full coordinate array matches immutable predecessor digest') + return ordered, digest + + +def adjacency(coordinates): + return [(a, b) for a in range(len(coordinates)) for b in range(a) + if all(sum(x*y for x, y in zip(coordinates[a][8*k:8*k+8], + coordinates[b][8*k:8*k+8])) != 0 + for k in range(3))] + + +def make_problem(coordinates, variable_edges=None, width=8): + edges = set(adjacency(coordinates)) + require(all((i, j) in edges for i in range(7) for j in range(i)), + 'Seven orthogonal anchors') + domains = [[label for label in range(1 << width) if label.bit_count() % 2 + and all(not(label >> j & 1) for j in range(7) if (i+7, j) in edges)] + for i in range(len(coordinates)-7)] + actual = [(a-7, b-7) for a, b in sorted(edges) if b >= 7] + if variable_edges is None: + variable_edges = actual + require(set(map(tuple, variable_edges)) <= set(actual), 'Only actual variable edges') + labels, identifiers = [], [] + for vertex, domain in enumerate(domains): + row = [] + for label in domain: + row.append(len(labels)+1) + labels.append([vertex, label]) + identifiers.append(row) + clauses = [] + for row in identifiers: + clauses.append(row) + clauses.extend([-a, -b] for a, b in combinations(row, 2)) + for a, b in variable_edges: + clauses.extend([-i, -j] for i in identifiers[a] for j in identifiers[b] + if (labels[i-1][1] & labels[j-1][1]).bit_count() % 2) + return {'width': width, 'domains': domains, 'labels': labels, + 'variable_edges': variable_edges, 'clauses': clauses} + + +def solve(clauses): + """Plain Boolean DPLL; retain explicit unit reasons and full split tree.""" + statistics = Counter() + + def visit(assignment, depth): + statistics['nodes'] += 1 + statistics['maximum_depth'] = max(statistics['maximum_depth'], depth) + units = [] + while True: + residual = [] + unit = None + for index, clause in enumerate(clauses): + if any(assignment.get(abs(lit)) == (lit > 0) for lit in clause): + continue + unassigned = [lit for lit in clause if abs(lit) not in assignment] + if not unassigned: + statistics['conflicts'] += 1 + return None, {'units': units, 'conflict': index} + if len(unassigned) == 1: + unit = (unassigned[0], index) + break + residual.append(unassigned) + if unit is None: + break + literal, reason = unit + assignment[abs(literal)] = literal > 0 + units.append([literal, reason]) + statistics['unit_steps'] += 1 + if not residual: + return assignment, None + # Branch in a shortest remaining clause. Prefer positive choice + # literals, so a multi-valued domain is not the branching object. + shortest = min(residual, key=lambda clause: (len(clause), clause[0] < 0)) + occurrences = Counter(abs(lit) for clause in residual for lit in clause) + branch = max(map(abs, shortest), key=lambda lit: (occurrences[lit], -lit)) + solution, positive = visit({**assignment, branch: True}, depth+1) + if solution is not None: + return solution, None + solution, negative = visit({**assignment, branch: False}, depth+1) + if solution is not None: + return solution, None + return None, {'units': units, 'branch': branch, 'positive': positive, 'negative': negative} + + solution, proof = visit({}, 0) + return solution, proof, dict(statistics) + + +def selected_labels(problem, assignment): + return [next(label for index, (which, label) in enumerate(problem['labels'], 1) + if which == vertex and assignment.get(index) is True) + for vertex in range(len(problem['domains']))] + + +def write(name, value): + (HERE/name).write_text(json.dumps(value, indent=2, sort_keys=True)+'\n') + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--reduce', action='store_true', help='one deterministic edge deletion pass') + args = parser.parse_args() + start = time.monotonic() + ports, digest = construct_ports() + source = json.loads((ROOT/'research/turyn-port-labels/evidence/PROFILE-H8.json').read_text()) + ids = source['anchors'] + source['vertices'] + coordinates = [ports[i] for i in ids] + problem = make_problem(coordinates) + print('Geometry OK; CNF', len(problem['labels']), 'variables,', len(problem['clauses']), + 'clauses;', len(problem['variable_edges']), 'variable edges', flush=True) + solution, proof, stats = solve(problem['clauses']) + require(solution is None, 'Predecessor full graph is UNSAT') + print('Full graph UNSAT', stats, flush=True) + full_edges = problem['variable_edges'] + core_edges = full_edges.copy() + if args.reduce: + order = core_edges.copy() + random.Random(78).shuffle(order) + for step, edge in enumerate(order, 1): + candidate = [e for e in core_edges if e != edge] + trial = make_problem(coordinates, candidate) + solution, _, _ = solve(trial['clauses']) + if solution is None: + core_edges = candidate + print('Reduction', step, '/', len(order), 'retained', len(core_edges), flush=True) + problem = make_problem(coordinates, core_edges) + solution, proof, stats = solve(problem['clauses']) + require(solution is None, 'Core remains UNSAT') + deletion_controls = [] + if args.reduce: + for edge in core_edges: + trial = make_problem(coordinates, [e for e in core_edges if e != edge]) + solution, _, _ = solve(trial['clauses']) + require(solution is not None, 'Every retained core edge is essential') + deletion_controls.append({'removed_edge': edge, + 'labels': selected_labels(trial, solution)}) + relaxed = make_problem(coordinates, []) + relaxed_solution, _, _ = solve(relaxed['clauses']) + require(relaxed_solution is not None, 'Relaxed positive control') + # A ninth coordinate supplies a positive boundary control for this exact + # finite graph, independently of the inherited global label generator. + nine = make_problem(coordinates, width=9) + nine_solution, _, nine_stats = solve(nine['clauses']) + require(nine_solution is not None, 'Nine-bit graph has a fitting') + write('WITNESS.json', {'port_ids': ids, 'coordinates': coordinates, + 'all_ports_sha256': digest, 'original_variable_edges': full_edges, + 'core_variable_edges': core_edges}) + write('PROOF.json', proof) + write('CONTROLS.json', {'core_single_edge_deletions': deletion_controls, + 'relaxed_eight_bit_labels': selected_labels(relaxed, relaxed_solution), + 'nine_bit_labels': selected_labels(nine, nine_solution)}) + write('BUILD.json', {'status': 'UNSAT', 'seed': 78, + 'cnf_variables': len(problem['labels']), 'cnf_clauses': len(problem['clauses']), + 'full_variable_edges': len(full_edges), 'core_variable_edges': len(core_edges), + 'solver_statistics': stats, 'nine_bit_solver_statistics': nine_stats}) + dimacs = 'p cnf '+str(len(problem['labels']))+' '+str(len(problem['clauses']))+'\n' + dimacs += ''.join(' '.join(map(str, clause))+' 0\n' for clause in problem['clauses']) + (HERE/'CORE.cnf').write_text(dimacs) + print('Artifacts written in', round(time.monotonic()-start, 3), 'seconds', flush=True) + + +if __name__ == '__main__': + main() diff --git a/research/turyn-profile-cnf/test_verify.py b/research/turyn-profile-cnf/test_verify.py new file mode 100644 index 0000000000..a2e5036217 --- /dev/null +++ b/research/turyn-profile-cnf/test_verify.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +"""Regression and negative controls for the new independent package only.""" +from itertools import product +from pathlib import Path +import copy +import importlib.util +import random +import unittest + +HERE = Path(__file__).resolve().parent + + +def load(name): + spec = importlib.util.spec_from_file_location('turyn_cnf_'+name, HERE/(name+'.py')) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +producer = load('build') +checker = load('verify') + + +def truth_table(clauses, variables): + for values in product((False, True), repeat=variables): + if all(any(values[abs(lit)-1] == (lit > 0) for lit in clause) for clause in clauses): + return True + return False + + +class IndependentChecks(unittest.TestCase): + def test_every_two_variable_cnf(self): + # All 512 sets of non-tautological clauses on two variables, + # including the empty clause and empty formula. + possible = [[i+1 if sign > 0 else -i-1 for i, sign in enumerate(signs) if sign] + for signs in product((-1, 0, 1), repeat=2)] + for mask in range(1 << len(possible)): + clauses = [row for i, row in enumerate(possible) if mask >> i & 1] + solution, proof, _ = producer.solve(clauses) + self.assertEqual(solution is not None, truth_table(clauses, 2)) + if solution is None: + checker.check_tree(clauses, 2, proof) + + def test_seeded_three_variable_cnf(self): + rng = random.Random(78) + possible = [[i+1 if sign > 0 else -i-1 for i, sign in enumerate(signs) if sign] + for signs in product((-1, 0, 1), repeat=3)] + for _ in range(512): + clauses = rng.sample(possible, rng.randrange(28)) + solution, proof, _ = producer.solve(clauses) + self.assertEqual(solution is not None, truth_table(clauses, 3)) + if solution is None: + checker.check_tree(clauses, 3, proof) + + def test_source_pins(self): + checker.check_sources() + + def test_two_independent_encodings(self): + witness = checker.read('WITNESS.json') + graph, _ = checker.geometry(witness) + for edges in ([], witness['core_variable_edges'], witness['original_variable_edges']): + first = producer.make_problem(witness['coordinates'], edges) + second, variables, sizes = checker.encode(graph, edges) + self.assertEqual(first['clauses'], second) + self.assertEqual(len(first['labels']), variables) + self.assertEqual(list(map(len, first['domains'])), sizes) + + def test_default_receipt(self): + self.assertEqual(checker.run(), checker.read('EXPECTED.json')) + + def test_every_deleted_core_edge_breaks_its_old_proof(self): + witness = checker.read('WITNESS.json') + graph, _ = checker.geometry(witness) + proof = checker.read('PROOF.json') + for removed in witness['core_variable_edges']: + edges = [e for e in witness['core_variable_edges'] if e != removed] + clauses, variables, _ = checker.encode(graph, edges) + with self.assertRaises((ValueError, IndexError)): + checker.check_tree(clauses, variables, proof) + + def test_coordinate_and_edge_mutations(self): + witness = checker.read('WITNESS.json') + duplicate = copy.deepcopy(witness) + duplicate['coordinates'][1] = duplicate['coordinates'][0] + with self.assertRaises(ValueError): + checker.geometry(duplicate) + missing = copy.deepcopy(witness) + missing['original_variable_edges'].pop() + with self.assertRaises(ValueError): + checker.geometry(missing) + duplicate_edge = copy.deepcopy(witness) + duplicate_edge['core_variable_edges'].append(duplicate_edge['core_variable_edges'][0]) + with self.assertRaises(ValueError): + checker.geometry(duplicate_edge) + + def test_label_mutations(self): + witness = checker.read('WITNESS.json') + graph, _ = checker.geometry(witness) + labels = checker.read('CONTROLS.json')['nine_bit_labels'] + for bad in (-1, 512, 0): + altered = labels.copy() + altered[0] = bad + with self.assertRaises(ValueError): + checker.fitting(graph, witness['original_variable_edges'], altered, 9) + + +if __name__ == '__main__': + unittest.main() diff --git a/research/turyn-profile-cnf/verify.py b/research/turyn-profile-cnf/verify.py new file mode 100644 index 0000000000..9c529059ea --- /dev/null +++ b/research/turyn-profile-cnf/verify.py @@ -0,0 +1,296 @@ +#!/usr/bin/env python3 +"""Check explicit coordinates, independently encode CNF, and replay a proof. + +This file imports neither the producer nor any predecessor Python module. +The contradiction is checked by local rules, not by rerunning a SAT search. +Apache-2.0; substantial OpenAI assistance. +""" +from collections import Counter +from pathlib import Path +import argparse +import copy +import hashlib +import json + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def read(name): + return json.loads((HERE/name).read_text()) + + +def digest(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def check_sources(): + source = read('SOURCES.json') + for path, expected in source['files'].items(): + require(digest(ROOT/path) == expected, 'Source pin mismatch: '+path) + return source + + +def codewords(): + # Span a fixed 12-row binary generator, instead of enumerating pairs + # of affine evaluation tables as the independent producer does. + rm_basis = (255, 170, 204, 240) + perm = (0, 1, 2, 4, 3, 6, 7, 5) + basis = [a | (a << 16) for a in rm_basis] + basis += [(b << 8) | (b << 16) for b in rm_basis] + for x in rm_basis: + p = sum(((x >> perm[i]) & 1) << i for i in range(8)) + basis.append(p | (p << 8) | (p << 16)) + words = {0} + for row in basis: + words |= {word ^ row for word in words} + require(len(words) == 4096, 'Independent generator rank 12') + require(Counter(w.bit_count() for w in words) == + {0: 1, 8: 759, 12: 2576, 16: 759, 24: 1}, 'Code weight enumerator') + return words + + +def geometry(witness): + coordinates = witness['coordinates'] + require(len(coordinates) == 24, 'Exactly 24 coordinate vectors') + require(all(len(row) == 24 and all(type(x) is int for x in row) + for row in coordinates), 'Integer dimension 24') + require(len({tuple(row) for row in coordinates}) == 24, 'Distinct coordinate vectors') + words = codewords() + profile = None + for row in coordinates: + require(sum(x*x for x in row) == 32, 'Norm squared 32') + require(all((x-row[0]) % 2 == 0 for x in row), 'Uniform coordinate parity') + require((sum(row)-4*row[0]) % 8 == 0, 'Leech coordinate-sum condition') + magnitudes = Counter(map(abs, row)) + if magnitudes == {0: 16, 2: 8}: + support = sum(1 << i for i, x in enumerate(row) if x) + require(support in words and sum(x < 0 for x in row) % 2 == 0, + 'Exact octad shell family: code support and even minus signs') + elif magnitudes == {1: 23, 3: 1}: + signs = [-x//3 if abs(x) == 3 else x for x in row] + sign_word = sum(1 << i for i, x in enumerate(signs) if x == -1) + require(sign_word in words, 'Exact exceptional-coordinate shell family') + else: + raise ValueError('Witness vector is outside the two full-port shell families') + for residue in range(4): + mask = sum(1 << i for i, x in enumerate(row) if x % 4 == residue) + require(mask in words, 'Leech residue word belongs to Turyn code') + norms = [sum(row[8*k+i]**2 for i in range(8)) for k in range(3)] + require(sorted(norms) == [8, 8, 16], 'Actual three-block port profile') + current = norms.index(16) + if profile is None: + profile = current + require(current == profile, 'All witness ports belong to one profile') + require(all(next(x for x in row[8*k:8*k+8] if x) > 0 for k in range(3)), + 'Canonical block signs') + graph = [[False]*24 for _ in range(24)] + for i in range(24): + for j in range(i): + nonzero = True + for block in range(3): + dot = 0 + for coordinate in range(8*block, 8*block+8): + dot += coordinates[i][coordinate]*coordinates[j][coordinate] + nonzero = nonzero and dot != 0 + graph[i][j] = graph[j][i] = nonzero + require(all(graph[i][j] for i in range(7) for j in range(i)), 'Anchor seven-clique') + actual = [[i, j] for i in range(17) for j in range(i) if graph[i+7][j+7]] + require(witness['original_variable_edges'] == actual, 'Every actual variable edge is recorded') + require(len(actual) == 71, 'Predecessor finite variable graph size') + source = json.loads((ROOT/'research/turyn-port-labels/evidence/PROFILE-H8.json').read_text()) + require(witness['port_ids'] == source['anchors']+source['vertices'], 'Predecessor witness IDs') + reference = json.loads((ROOT/'research/leech-lattice/evidence/TURYN-GEOMETRY.json').read_text()) + require(witness['all_ports_sha256'] == reference['integer_representatives_sha256'], + 'Full-array generation receipt agrees with pinned reference') + core = witness['core_variable_edges'] + require(len({tuple(edge) for edge in core}) == len(core), 'No duplicate core edges') + require(all(edge in actual for edge in core), 'Core contains only actual edges') + # A cyclic permutation preserves all block products and the Turyn code. + # Check membership directly in the other two profiles, without asserting + # that a graph isomorphism supplies a global rank-27 obstruction. + for shift in (1, 2): + for row in coordinates: + rotated = row[8*shift:] + row[:8*shift] + for residue in range(4): + mask = sum(1 << i for i, x in enumerate(rotated) if x % 4 == residue) + require(mask in words, 'Rotated actual port belongs to same Turyn code') + return graph, profile + + +def encode(graph, edges): + """Independent one-hot translation; IDs increase with vertex and label.""" + domain = [] + clauses = [] + next_id = 1 + for v in range(7, 24): + candidates = [] + for label in range(256): + parity = sum((label >> k) & 1 for k in range(8)) % 2 + if parity != 1: + continue + if any(graph[v][anchor] and ((label >> anchor) & 1) for anchor in range(7)): + continue + candidates.append((next_id, label)) + next_id += 1 + domain.append(candidates) + clauses.append([item[0] for item in candidates]) + for a in range(len(candidates)): + for b in range(a+1, len(candidates)): + clauses.append([-candidates[a][0], -candidates[b][0]]) + for source, target in edges: + for first_id, first in domain[source]: + for second_id, second in domain[target]: + dot = sum(((first >> k) & 1)*((second >> k) & 1) for k in range(8)) % 2 + if dot: + clauses.append([-first_id, -second_id]) + return clauses, next_id-1, [len(row) for row in domain] + + +def check_tree(clauses, variables, tree): + counts = Counter() + + def visit(node, incoming): + require(isinstance(node, dict), 'Proof node is an object') + allowed = {'units', 'conflict'} if 'conflict' in node else {'units', 'branch', 'positive', 'negative'} + require(set(node) == allowed, 'Proof node schema') + values = incoming.copy() + counts['nodes'] += 1 + for literal, reason in node['units']: + require(type(literal) is int and 1 <= abs(literal) <= variables, 'Unit literal range') + require(abs(literal) not in values, 'Unit assigns an unassigned variable') + require(type(reason) is int and 0 <= reason < len(clauses), 'Unit reason range') + clause = clauses[reason] + require(not any(values.get(abs(lit)) == (lit > 0) for lit in clause), + 'Unit reason is not satisfied already') + require([lit for lit in clause if abs(lit) not in values] == [literal], + 'Unit is exactly the sole unassigned literal of its reason') + values[abs(literal)] = literal > 0 + counts['unit_steps'] += 1 + if 'conflict' in node: + index = node['conflict'] + require(type(index) is int and 0 <= index < len(clauses), 'Conflict reason range') + require(all(abs(lit) in values and values[abs(lit)] != (lit > 0) + for lit in clauses[index]), 'Leaf clause is completely false') + counts['leaves'] += 1 + return + branch = node['branch'] + require(type(branch) is int and 1 <= branch <= variables, 'Branch variable range') + require(branch not in values, 'Branch variable is unassigned') + visit(node['positive'], {**values, branch: True}) + visit(node['negative'], {**values, branch: False}) + + visit(tree, {}) + return dict(counts) + + +def fitting(graph, edges, labels, width): + require(len(labels) == 17, 'Seventeen positive-control labels') + for i, label in enumerate(labels): + require(type(label) is int and 0 <= label < (1 << width), 'Fitting label width') + require(label.bit_count() % 2 == 1, 'Fitting odd diagonal') + require(all(not(label >> j & 1) for j in range(7) if graph[i+7][j]), + 'Fitting anchor orthogonality') + require(all((labels[a] & labels[b]).bit_count() % 2 == 0 for a, b in edges), + 'Fitting edge orthogonality') + + +def controls(witness, graph, clauses, variables, proof): + data = read('CONTROLS.json') + core = witness['core_variable_edges'] + require([item['removed_edge'] for item in data['core_single_edge_deletions']] == core, + 'Every core single-edge deletion has a positive witness') + for item in data['core_single_edge_deletions']: + remaining = [edge for edge in core if edge != item['removed_edge']] + fitting(graph, remaining, item['labels'], 8) + a, b = item['removed_edge'] + require((item['labels'][a] & item['labels'][b]).bit_count() % 2 == 1, + 'Deletion witness actually violates the missing edge') + fitting(graph, [], data['relaxed_eight_bit_labels'], 8) + fitting(graph, witness['original_variable_edges'], data['nine_bit_labels'], 9) + rejected = [] + + def rejection(name, action): + try: + action() + except (ValueError, KeyError, IndexError, TypeError): + rejected.append(name) + else: + raise ValueError('Corrupted control accepted: '+name) + + altered = copy.deepcopy(proof) + leaf = altered + while 'branch' in leaf: + leaf = leaf['positive'] + require(leaf['units'], 'Leaf has a unit to mutate') + leaf['units'][0][0] *= -1 + rejection('wrong_unit_sign', lambda: check_tree(clauses, variables, altered)) + altered_leaf = copy.deepcopy(proof) + leaf = altered_leaf + while 'branch' in leaf: + leaf = leaf['negative'] + leaf['conflict'] = len(clauses) + rejection('invalid_conflict_reference', lambda: check_tree(clauses, variables, altered_leaf)) + truncated = copy.deepcopy(proof) + require('branch' in truncated, 'Nontrivial two-branch proof') + del truncated['negative'] + rejection('missing_branch', lambda: check_tree(clauses, variables, truncated)) + repeated = copy.deepcopy(proof) + repeated['negative'] = copy.deepcopy(repeated['positive']) + rejection('repeated_positive_branch', lambda: check_tree(clauses, variables, repeated)) + no_edges, no_edge_variables, _ = encode(graph, []) + rejection('proof_on_relaxed_graph', lambda: check_tree(no_edges, no_edge_variables, proof)) + bad_coordinates = copy.deepcopy(witness) + bad_coordinates['coordinates'][0][0] += 1 + rejection('altered_coordinate', lambda: geometry(bad_coordinates)) + bad_label = data['nine_bit_labels'].copy() + bad_label[0] = 0 + rejection('even_label', lambda: fitting(graph, witness['original_variable_edges'], bad_label, 9)) + return {'rejected': rejected, 'satisfiable_single_edge_deletions': len(core), + 'relaxed_eight_bit_fitting': True, 'full_nine_bit_fitting': True} + + +def run(): + source = check_sources() + witness = read('WITNESS.json') + graph, profile = geometry(witness) + clauses, variables, domain_sizes = encode(graph, witness['core_variable_edges']) + dimacs = (HERE/'CORE.cnf').read_text().splitlines() + require(dimacs[0].split() == ['p', 'cnf', str(variables), str(len(clauses))], + 'DIMACS header agrees with independently encoded CNF') + stored_clauses = [list(map(int, line.split())) for line in dimacs[1:]] + require(all(row and row[-1] == 0 and 0 not in row[:-1] for row in stored_clauses), + 'One properly terminated DIMACS clause per line') + require([row[:-1] for row in stored_clauses] == clauses, + 'DIMACS clauses agree with independently encoded CNF') + proof = read('PROOF.json') + proof_counts = check_tree(clauses, variables, proof) + control_report = controls(witness, graph, clauses, variables, proof) + return {'status': 'PASS_TURYN_PROFILE_CNF', 'base_commit': source['base_commit'], + 'profile': profile, 'ports': 24, 'anchors': 7, + 'original_variable_edges': len(witness['original_variable_edges']), + 'core_variable_edges': len(witness['core_variable_edges']), + 'cnf_variables': variables, 'cnf_clauses': len(clauses), + 'domain_sizes': domain_sizes, 'proof': proof_counts, 'controls': control_report, + 'scope': 'Exact finite standard-dot fitting dimension is nine for this 24-port witness; cyclic copies occur in all three profiles. No global dimension-27 or new-kappa claim.'} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--write', type=Path, help='write a new receipt instead of comparing EXPECTED.json') + args = parser.parse_args() + result = run() + if args.write: + args.write.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + require(result == read('EXPECTED.json'), 'Deterministic expected receipt') + print(json.dumps(result, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/turyn-profile-parity-lift/BUILD.json b/research/turyn-profile-parity-lift/BUILD.json new file mode 100644 index 0000000000..a4074a110b --- /dev/null +++ b/research/turyn-profile-parity-lift/BUILD.json @@ -0,0 +1,36 @@ +{ + "searches": [ + { + "profile": 0, + "source_classes": 20, + "choices_per_class": 8, + "stopping_rule": "First exact lift, not enumeration or optimality search", + "statistics": { + "nodes": 18, + "maximum_depth": 4, + "empty_domains": 8 + } + }, + { + "profile": 1, + "source_classes": 20, + "choices_per_class": 8, + "stopping_rule": "First exact lift, not enumeration or optimality search", + "statistics": { + "nodes": 4, + "maximum_depth": 3 + } + }, + { + "profile": 2, + "source_classes": 20, + "choices_per_class": 8, + "stopping_rule": "First exact lift, not enumeration or optimality search", + "statistics": { + "nodes": 4, + "maximum_depth": 3 + } + } + ], + "assignment_seed": 78 +} diff --git a/research/turyn-profile-parity-lift/CERTIFICATE.json b/research/turyn-profile-parity-lift/CERTIFICATE.json new file mode 100644 index 0000000000..f0ace260c6 --- /dev/null +++ b/research/turyn-profile-parity-lift/CERTIFICATE.json @@ -0,0 +1,2332 @@ +{ + "profiles": [ + { + "profile": 0, + "classes": [ + 0, + 25, + 40, + 194, + 203, + 285, + 338, + 435, + 488, + 585, + 622, + 639, + 647, + 670, + 678, + 719, + 781, + 812, + 903, + 959 + ], + "clique_classes": [ + [ + 0, + 781, + 903, + 812, + 25, + 194, + 488, + 585 + ], + [ + 0, + 781, + 812, + 285, + 25, + 194, + 338, + 435 + ], + [ + 0, + 719, + 903, + 285, + 622, + 203, + 639, + 670 + ], + [ + 719, + 903, + 812, + 285, + 622, + 670, + 678, + 959 + ], + [ + 719, + 903, + 285, + 25, + 622, + 203, + 647, + 678 + ], + [ + 781, + 719, + 903, + 285, + 622, + 639, + 647, + 959 + ], + [ + 0, + 781, + 812, + 25, + 622, + 40, + 435, + 488 + ], + [ + 0, + 781, + 719, + 812, + 25, + 40, + 338, + 585 + ], + [ + 0, + 781, + 719, + 903, + 812, + 285, + 25, + 622 + ] + ], + "cliques": [ + [ + 0, + 16, + 18, + 17, + 1, + 3, + 8, + 9 + ], + [ + 0, + 16, + 17, + 5, + 1, + 3, + 6, + 7 + ], + [ + 0, + 15, + 18, + 5, + 10, + 4, + 11, + 13 + ], + [ + 15, + 18, + 17, + 5, + 10, + 13, + 14, + 19 + ], + [ + 15, + 18, + 5, + 1, + 10, + 4, + 12, + 14 + ], + [ + 16, + 15, + 18, + 5, + 10, + 11, + 12, + 19 + ], + [ + 0, + 16, + 17, + 1, + 10, + 2, + 7, + 8 + ], + [ + 0, + 16, + 15, + 17, + 1, + 2, + 6, + 9 + ], + [ + 0, + 16, + 15, + 18, + 17, + 5, + 1, + 10 + ] + ], + "selected_ports": [ + 4712, + 2824, + 21889, + 3266, + 22435, + 4972, + 22672, + 18609, + 7458, + 11611, + 13140, + 18757, + 15861, + 18716, + 15772, + 7309, + 12959, + 12998, + 22078, + 4887 + ], + "coordinates": [ + [ + 0, + 2, + -2, + 0, + 0, + -2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 0, + 0, + 2, + -2, + -2, + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 0, + 0, + 2, + 0, + -2, + 2, + -2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + -2 + ], + [ + 2, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + -2, + 2, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 3, + -1, + 1, + -1, + -1, + 1, + -1, + -1, + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + 1, + 3, + -1, + 1, + 1, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -3, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -3, + 1, + 1, + -1, + 1, + -1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + 1, + -3, + 1, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + 3, + -1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1, + 1, + 1, + 1, + 1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 3, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 3, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 1, + 1, + 3, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 1, + -3, + 1, + -1, + -1, + -1, + 1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 3, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 3, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + -1, + 1 + ], + [ + 2, + 2, + -2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + -2, + 0, + 0, + 2, + 0, + -2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ], + "nine_bit_labels": [ + 1, + 2, + 4, + 484, + 28, + 52, + 8, + 112, + 488, + 400, + 56, + 174, + 173, + 302, + 301, + 64, + 176, + 304, + 428, + 415 + ], + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432" + }, + { + "profile": 1, + "classes": [ + 975, + 1288, + 1298, + 1305, + 1319, + 1333, + 1364, + 1395, + 1400, + 1414, + 1479, + 1510, + 1607, + 1638, + 1808, + 1817, + 1842, + 1853, + 1863, + 1883 + ], + "clique_classes": [ + [ + 1808, + 1333, + 1863, + 1364, + 1817, + 1305, + 1400, + 1842 + ], + [ + 1808, + 1333, + 1364, + 1853, + 1817, + 1298, + 1395, + 1842 + ], + [ + 1808, + 1319, + 1863, + 1853, + 1414, + 1479, + 1510, + 1883 + ], + [ + 1319, + 1863, + 1364, + 1853, + 1414, + 975, + 1510, + 1638 + ], + [ + 1319, + 1863, + 1853, + 1817, + 1414, + 1607, + 1638, + 1883 + ], + [ + 1333, + 1319, + 1863, + 1853, + 1414, + 975, + 1479, + 1607 + ], + [ + 1808, + 1333, + 1364, + 1817, + 1414, + 1288, + 1395, + 1400 + ], + [ + 1808, + 1333, + 1319, + 1364, + 1817, + 1288, + 1298, + 1305 + ], + [ + 1808, + 1333, + 1319, + 1863, + 1364, + 1853, + 1817, + 1414 + ] + ], + "cliques": [ + [ + 14, + 5, + 18, + 6, + 15, + 3, + 8, + 16 + ], + [ + 14, + 5, + 6, + 17, + 15, + 2, + 7, + 16 + ], + [ + 14, + 4, + 18, + 17, + 9, + 10, + 11, + 19 + ], + [ + 4, + 18, + 6, + 17, + 9, + 0, + 11, + 13 + ], + [ + 4, + 18, + 17, + 15, + 9, + 12, + 13, + 19 + ], + [ + 5, + 4, + 18, + 17, + 9, + 0, + 10, + 12 + ], + [ + 14, + 5, + 6, + 15, + 9, + 1, + 7, + 8 + ], + [ + 14, + 5, + 4, + 6, + 15, + 1, + 2, + 3 + ], + [ + 14, + 5, + 4, + 18, + 6, + 17, + 15, + 9 + ] + ], + "selected_ports": [ + 219, + 6951, + 7795, + 7866, + 7965, + 8340, + 9012, + 9630, + 9812, + 9972, + 11377, + 12049, + 14274, + 14949, + 19228, + 19634, + 20385, + 20568, + 20729, + 21120 + ], + "coordinates": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 0, + -2, + 0, + 0, + -2, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + 3, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + 3, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + -1, + -1, + 1, + -1, + -1, + 1, + -1, + -3, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + -3, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + -3, + 1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + -3, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + 3, + -1, + 1, + -1, + 1, + -1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 3, + 1, + -1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + -1, + 1, + 1, + -1, + -1, + 3, + -1, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + -1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 3, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + -3, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + -3, + 1, + 1, + 1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + -2, + -2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + 2, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 0, + 2, + -2, + -2, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + -2 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 2, + 0, + -2, + -2, + 0, + 0, + 0, + -2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 2, + -2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + -2, + -2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2 + ] + ], + "nine_bit_labels": [ + 1, + 49, + 81, + 481, + 2, + 4, + 8, + 19, + 419, + 64, + 152, + 148, + 280, + 276, + 145, + 273, + 451, + 32, + 400, + 397 + ], + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432" + }, + { + "profile": 2, + "classes": [ + 1935, + 2249, + 2256, + 2267, + 2277, + 2295, + 2326, + 2353, + 2362, + 2372, + 2437, + 2468, + 2565, + 2596, + 2768, + 2776, + 2802, + 2812, + 2822, + 2843 + ], + "clique_classes": [ + [ + 2768, + 2295, + 2822, + 2326, + 2776, + 2267, + 2362, + 2802 + ], + [ + 2768, + 2295, + 2326, + 2812, + 2776, + 2256, + 2353, + 2802 + ], + [ + 2768, + 2277, + 2822, + 2812, + 2372, + 2437, + 2468, + 2843 + ], + [ + 2277, + 2822, + 2326, + 2812, + 2372, + 1935, + 2468, + 2596 + ], + [ + 2277, + 2822, + 2812, + 2776, + 2372, + 2565, + 2596, + 2843 + ], + [ + 2295, + 2277, + 2822, + 2812, + 2372, + 1935, + 2437, + 2565 + ], + [ + 2768, + 2295, + 2326, + 2776, + 2372, + 2249, + 2353, + 2362 + ], + [ + 2768, + 2295, + 2277, + 2326, + 2776, + 2249, + 2256, + 2267 + ], + [ + 2768, + 2295, + 2277, + 2822, + 2326, + 2812, + 2776, + 2372 + ] + ], + "cliques": [ + [ + 14, + 5, + 18, + 6, + 15, + 3, + 8, + 16 + ], + [ + 14, + 5, + 6, + 17, + 15, + 2, + 7, + 16 + ], + [ + 14, + 4, + 18, + 17, + 9, + 10, + 11, + 19 + ], + [ + 4, + 18, + 6, + 17, + 9, + 0, + 11, + 13 + ], + [ + 4, + 18, + 17, + 15, + 9, + 12, + 13, + 19 + ], + [ + 5, + 4, + 18, + 17, + 9, + 0, + 10, + 12 + ], + [ + 14, + 5, + 6, + 15, + 9, + 1, + 7, + 8 + ], + [ + 14, + 5, + 4, + 6, + 15, + 1, + 2, + 3 + ], + [ + 14, + 5, + 4, + 18, + 6, + 17, + 15, + 9 + ] + ], + "selected_ports": [ + 251, + 6924, + 7695, + 7856, + 8038, + 8382, + 9045, + 9589, + 9737, + 9919, + 11335, + 11999, + 14280, + 14944, + 19137, + 19586, + 20366, + 20538, + 20711, + 21050 + ], + "coordinates": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + -2, + 0, + 0, + 0, + -2, + 0, + 2 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1, + 3, + -1, + -1, + 1, + -1, + 1, + 1, + 1 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + 1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -3, + 1, + -1, + -1, + -1, + 1 + ], + [ + 1, + -1, + -1, + -1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + -1, + -1, + -1, + -3, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + -3, + -1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + -1, + -1, + 1, + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1, + -3, + -1, + -1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -3, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + 3, + 1, + -1, + -1, + 1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1, + 3, + -1, + 1, + 1, + 1, + -1, + -1 + ], + [ + 1, + -1, + 1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1, + 1, + -1, + -1, + 3, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + -1, + 1, + -1, + 1, + 1, + -1, + 1, + 3, + -1, + 1, + -1 + ], + [ + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1, + 1, + 1, + 1, + 1, + 1, + -3, + 1 + ], + [ + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + 3, + 1, + -1, + -1, + -1 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 2, + 0, + -2, + 2, + 0, + 0, + -2 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 2, + 2, + 0, + 0, + 0, + -2, + -2 + ], + [ + 2, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + -2, + 0, + 2, + 2, + -2, + 0, + -2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0, + 2, + 0, + 0, + 2, + -2, + -2, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + 2, + 2, + 2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 2, + 0, + -2, + -2 + ] + ], + "nine_bit_labels": [ + 1, + 49, + 81, + 481, + 2, + 4, + 8, + 19, + 419, + 64, + 152, + 148, + 280, + 276, + 145, + 273, + 451, + 32, + 400, + 397 + ], + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432" + } + ] +} diff --git a/research/turyn-profile-parity-lift/CLAIM.json b/research/turyn-profile-parity-lift/CLAIM.json new file mode 100644 index 0000000000..865544aab1 --- /dev/null +++ b/research/turyn-profile-parity-lift/CLAIM.json @@ -0,0 +1,138 @@ +{ + "track": "Independent verification or formalization", + "assignment_seed": 78, + "seed_source": "secrets.randbelow(100), OS-backed, drawn 2026-10-13T12:52:44Z", + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "continuation_start_utc": "2026-10-13T13:33:00Z", + "research_deadline_utc": "2026-10-13T16:00:00Z", + "verification_reserve_from_utc": "2026-10-13T15:25:00Z", + "local_claim_only": true, + "selected_conditional_kappa_at_base": "0.001661634653669567", + "selected_pr": 799, + "claim": "Every complete canonical Turyn profile has minimum asymmetric d-block fitting rank exactly 9d over every characteristic-two field, certified by actual twenty-port parity covers and a complete-profile upper fit.", + "candidates": [ + { + "object": "All-characteristic-two extension of the original 24-port symmetric binary obstruction", + "decision": "completed as independent corroborating appendix", + "method": "Ordinary degree-three polynomial-calculus refutation without Boolean reduction, with a Schur-complement field bridge and checked quadratic minor", + "scope": "57 core variable edges with all anchors fixed; symmetric fitting only" + }, + { + "object": "Lift the nine parity-clique restrictions within each individual actual-port profile", + "decision": "main contribution", + "method": "Find a single actual representative per used glue class, check every clique edge from exact coordinates, then apply the attributed asymmetric-block parity rank argument", + "difference": "The predecessor global quotient obstruction does not directly lift; this checks consistent actual representatives only within each profile and independently checks the full-profile upper fit" + }, + { + "object": "Selected PR799 endpoint-to-kappa interface audit", + "decision": "not selected", + "reason": "Recent PR894 and PR885 address the selected endpoint reduction and moment obligations; weaker incremental independence and higher overlap" + } + ], + "bounded_domain": { + "profiles": 3, + "source_ports_per_profile": 7680, + "glue_classes_per_profile": 960, + "ports_per_glue_class": 8, + "used_classes_per_profile": 20, + "required_cliques_per_profile": 9, + "clique_size": 8 + }, + "search_stopping_rule": "Stop at the first consistent actual-port lift for each fixed inherited profile restriction; no enumeration, optimality, or global-clique search claim.", + "independent_verification": "Literal integer shell membership, all finite-witness pairs, all clique edges and even incidences, all labels; independent full-array enumeration and complete root-fiber partition for full-profile upper bounds.", + "preserved_baseline": "All fifteen previously delivered research/turyn-profile-cnf files are unchanged; their earlier time-box and completion receipts describe that historical stage.", + "scope_exclusions": [ + "No unrestricted global rank-27 lower bound", + "No exclusion of unrestricted global 25-dimensional fits", + "No new kappa or supplier recurrence", + "No minimum vertex or global edge-count claim", + "No Lean proof or full multiplication theorem audit" + ], + "predecessor": { + "pr": 598, + "contributor": "DominikScholz", + "incorporated_head": "615ca6f06fdea0c50dbef733370c47349e25c555", + "source_scope": "Original quotient parity covers and rank argument; original symmetric standard-dot F2 actual-profile obstruction; existing profile upper labels" + }, + "external_execution": "No predecessor repository program or third-party mathematical software executed. Only new standard-library scripts, ordinary git/curl operations, and the earlier new pinned baseline helpers ran.", + "overlap_review": { + "initial": "See preserved turyn-profile-cnf/CLAIM.json", + "continuation_1335": "Public pulls endpoint rate-limited; targeted Turyn search returned PR598 and PR898. PR898 is historical Leech-minor arithmetic acceleration, not profile fitting.", + "refresh_1432": { + "http_status": 200, + "recent_updated_prs": 100, + "latest_created_pr_seen": 955, + "related_pr954": { + "head": "a98219aa708e1bd2ae4ca90e720e66569f7f0147", + "scope": "E8 decoder puncture/rank-drop classification in a fixed star-reader model; different from actual Turyn profile fitting" + }, + "matching_turyn_or_leech_result": "PR898 is unrelated historical Leech-minor tooling; no duplicate actual profile parity lift found in this refreshed page." + }, + "targeted_1437": { + "all_state_Turyn_results": [ + 598, + 898 + ], + "all_state_fitting_results": [ + 703, + 831, + 767, + 761, + 738, + 598, + 954, + 770, + 634 + ], + "incomplete_results": false, + "conclusion": "No overlapping actual Turyn profile parity-lift result found. PR831 concerns F4 phase compilation; PR954 fixed E8 decoder punctures; PR634 different Lorentzian minrank. These scope distinctions do not claim full review of unrelated results." + }, + "final_refresh": { + "completed_utc": "2026-10-13T15:25:42Z", + "recent_updated_pr_count": 100, + "latest_new_pr_seen": 971, + "all_state_Turyn_results": [ + 598, + 898 + ], + "all_state_fitting_results": [ + 703, + 831, + 767, + 761, + 738, + 598, + 954, + 770, + 634 + ], + "incomplete_results": false, + "pr598_current_head": "615ca6f06fdea0c50dbef733370c47349e25c555", + "pr598_state": "closed", + "conclusion": "No duplicate actual Turyn profile parity lift found. PR598 current head reverified unchanged; earlier public rate-limit blocker resolved for this final query." + } + }, + "publication_status": "Local clean-patch handoff. No public claim, issue, PR, or comment posted.", + "upstream_context_history": [ + { + "checked_utc": "2026-10-13T14:34:09Z", + "main_commit": "007664306fff84fbb1c9a1b4053b69f439764034", + "selected_pr": 890, + "selected_conditional_kappa": "0.001661957774647029", + "selected_record_url": "https://github.com/CrocSwap/integer-mult-bounds/blob/007664306fff84fbb1c9a1b4053b69f439764034/certificates/selected-result.json", + "assembly_sha256": "190110b509dc87d38b72ad37c3290efcc245ce26df4cae3d7e2d6dcf0bac2c43", + "review_url": "https://github.com/CrocSwap/integer-mult-bounds/blob/007664306fff84fbb1c9a1b4053b69f439764034/docs/research/community-frontier890-review.md", + "context_only": "Read selected record, source manifest, assembly, and review; exact selected assembly SHA256 verified. No native selected-supplier code replayed. Original contribution base and earlier baseline bytes unchanged." + } + ], + "upstream_context_refresh": { + "checked_utc": "2026-10-13T15:28:29Z", + "main_commit": "bbc600db2fc15007b7c914f4f2b2ed55fa909c87", + "selected_pr": 942, + "selected_conditional_kappa": "0.001661960547713947", + "selected_record_url": "https://github.com/CrocSwap/integer-mult-bounds/blob/bbc600db2fc15007b7c914f4f2b2ed55fa909c87/certificates/selected-result.json", + "assembly_sha256": "4b2894956e594e408e111d806c842f2ed2c32aefcadff93fad69ff0b46f1991a", + "review_url": "https://github.com/CrocSwap/integer-mult-bounds/blob/bbc600db2fc15007b7c914f4f2b2ed55fa909c87/docs/research/community-batch952-review.md", + "context_only": "Selected record, manifest, assembly and maintainer review read; declared assembly SHA256 matched. No selected-supplier program executed. Original contribution base and all earlier baseline bytes unchanged." + } +} diff --git a/research/turyn-profile-parity-lift/COMPARISON.md b/research/turyn-profile-parity-lift/COMPARISON.md new file mode 100644 index 0000000000..d9282417b4 --- /dev/null +++ b/research/turyn-profile-parity-lift/COMPARISON.md @@ -0,0 +1,65 @@ +# Exact relation to predecessor and concurrent work + +## PR598: inherited mathematics and the new transfer + +DominikScholz's [PR598](https://github.com/CrocSwap/integer-mult-bounds/pull/598), +incorporated snapshot `615ca6f06fdea0c50dbef733370c47349e25c555`, supplies the +Turyn geometry and these two distinct results: + +1. On the **2,880-class existential glue quotient**, nine 24-cliques give + rank at least 27d for asymmetric d-block fittings over every field of + characteristic two. The general parity-projector proof is inherited. + A recorded obstruction prevents automatically lifting its global cliques + to consistently chosen actual ports. +2. On **actual ports within a profile**, a different 24-port finite search + excludes symmetric standard-dot eight-bit labels over F₂. Explicit + nine-bit profile labels give the upper bound. The predecessor expressly + leaves asymmetric fitting outside that finite search's conclusion. + +The new contribution consistently chooses **twenty actual ports per +profile** lifting the nine eight-class restrictions of the first result. +All clique edges are recomputed from literal integer coordinates. Applying +the inherited rank argument now proves the lower bound 9d for actual ports, +without symmetry, scalar-block, or F₂-only restrictions. The independently +rebuilt complete-profile upper fit makes the minimum exactly 9d for every +full canonical 7,680-port profile. The upper dimension nine and the general +parity principle themselves are not new claims. + +The three separate lifts are not a lift of the global quotient certificate: +each chosen global 24-set has 98–150 missing cross-profile edges. Arbitrary +profile source/target spans need not be orthogonal. No unrestricted global +rank-27 obstruction, no exclusion of a global 25-dimensional fit, and no κ +improvement follows from this result. + +The algebraic appendix is independent corroboration on the earlier different +24-port graph. It extends the preserved 57-variable-edge core to symmetric +fittings over all characteristic-two fields. It does not assert the new +asymmetric-block theorem for that particular core. + +Consumed primary sources at the exact contribution base: + +- [Quotient proof, including its asymmetric-block argument and nonliftability boundary](https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-code-space/PROOF.txt) +- [Original actual-port/profile proof and its symmetry restriction](https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/PROOF.txt) +- [Original nine-clique quotient certificate](https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-code-space/evidence/PARITY-CERTIFICATE.json) + +All consumed bytes are pinned in `SOURCES.json`; `SOURCE-AUDIT.json` also +records their exact base Git blobs. An earlier PR598-head query was rate-limited. The successful final query +at 15:25 UTC reverified its head as the same incorporated snapshot; the PR +is closed. + +## PR898: distinct tooling, no code reused + +[PR898](https://github.com/CrocSwap/integer-mult-bounds/pull/898), observed +head `521c86e7fd4d0fbd1ed4e0524aa26a1e45861477` in the successful 2026-10-13 +14:32 UTC refresh, accelerates a **historical affine Leech-minor audit** +using exact byte lanes. It preserves that audit's existing finite results. +It supplies neither an actual Turyn profile parity lift nor the new +asymmetric-block lower bound. None of its implementation is imported or +executed here. + +The 14:37 and final 15:25 UTC all-state searches returned only PR598 and +PR898 for “Turyn”. +A broader “fitting” search returned nine results, including PR954's different +fixed-star E8 puncture classification. These checks found no duplicate of +the actual-profile lift; the final recent-PR page reached PR971. Dated raw responses are retained in the standalone +handoff archive; discovery is not a claim of exhaustive literature priority. diff --git a/research/turyn-profile-parity-lift/EXPECTED.json b/research/turyn-profile-parity-lift/EXPECTED.json new file mode 100644 index 0000000000..80c7a002e3 --- /dev/null +++ b/research/turyn-profile-parity-lift/EXPECTED.json @@ -0,0 +1,198 @@ +{ + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "corruption_controls": [ + "missing_clique", + "repeated_clique_vertex", + "changed_coordinate", + "even_diagonal_label", + "equal_labels_on_clique_edge", + "changed_source_clique", + "valid_same_class_port_breaks_actual_clique" + ], + "global_scope_controls": [ + { + "clique_index": 0, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 138 + }, + { + "clique_index": 1, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 150 + }, + { + "clique_index": 2, + "first_missing_edge": { + "classes": [ + 0, + 2277 + ], + "integer_block_dots": [ + -4, + 4, + 0 + ] + }, + "missing_cross_profile_edges": 128 + }, + { + "clique_index": 3, + "first_missing_edge": { + "classes": [ + 2277, + 903 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 116 + }, + { + "clique_index": 4, + "first_missing_edge": { + "classes": [ + 2277, + 903 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 108 + }, + { + "clique_index": 5, + "first_missing_edge": { + "classes": [ + 2295, + 903 + ], + "integer_block_dots": [ + 4, + 4, + 0 + ] + }, + "missing_cross_profile_edges": 98 + }, + { + "clique_index": 6, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 142 + }, + { + "clique_index": 7, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 146 + }, + { + "clique_index": 8, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + }, + "missing_cross_profile_edges": 140 + } + ], + "profiles": [ + { + "block_rank_lower_bound_per_d": 9, + "clique_size": 8, + "cliques": 9, + "distinct_actual_edges": 124, + "explicit_binary_label_rank": 9, + "incidence_histogram": { + "2": 12, + "6": 8 + }, + "ordered_clique_edge_checks": 504, + "ports": 20, + "profile": 0, + "scalar_and_normalized_block_rank": 9 + }, + { + "block_rank_lower_bound_per_d": 9, + "clique_size": 8, + "cliques": 9, + "distinct_actual_edges": 124, + "explicit_binary_label_rank": 9, + "incidence_histogram": { + "2": 12, + "6": 8 + }, + "ordered_clique_edge_checks": 504, + "ports": 20, + "profile": 1, + "scalar_and_normalized_block_rank": 9 + }, + { + "block_rank_lower_bound_per_d": 9, + "clique_size": 8, + "cliques": 9, + "distinct_actual_edges": 124, + "explicit_binary_label_rank": 9, + "incidence_histogram": { + "2": 12, + "6": 8 + }, + "ordered_clique_edge_checks": 504, + "ports": 20, + "profile": 2, + "scalar_and_normalized_block_rank": 9 + } + ], + "scope": "Each 20-port witness has rank exactly 9d for minimum-rank asymmetric d-block fittings over every characteristic-two field. No global 27-dimensional or new-kappa claim.", + "status": "PASS_ACTUAL_TURYN_PROFILE_BLOCK_RANK_9" +} diff --git a/research/turyn-profile-parity-lift/FULL-PROFILE-EXPECTED.json b/research/turyn-profile-parity-lift/FULL-PROFILE-EXPECTED.json new file mode 100644 index 0000000000..909371481d --- /dev/null +++ b/research/turyn-profile-parity-lift/FULL-PROFILE-EXPECTED.json @@ -0,0 +1,47 @@ +{ + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432", + "canonical_ports": 23040, + "distinct_root_pairs_checked": 7140, + "profiles": [ + { + "all_unordered_port_pairs_covered": 29487360, + "explicit_label_rank": 9, + "fibers": 120, + "ports": 7680, + "ports_per_fiber": 64, + "profile": 0, + "same_fiber_inactive_pairs_checked": 241920 + }, + { + "all_unordered_port_pairs_covered": 29487360, + "explicit_label_rank": 9, + "fibers": 120, + "ports": 7680, + "ports_per_fiber": 64, + "profile": 1, + "same_fiber_inactive_pairs_checked": 241920 + }, + { + "all_unordered_port_pairs_covered": 29487360, + "explicit_label_rank": 9, + "fibers": 120, + "ports": 7680, + "ports_per_fiber": 64, + "profile": 2, + "same_fiber_inactive_pairs_checked": 241920 + } + ], + "root_pair_dots": { + "-4": 1120, + "0": 3780, + "4": 2240 + }, + "scope": "Each individual complete 7680-port profile has minimum asymmetric d-block fitting rank exactly 9d over every characteristic-two field; no global additive lower bound.", + "source_bindings": { + "complete_classes": 2880, + "lower_witness_bindings": 60, + "ports_per_class": 8, + "same_class_control_bound": true + }, + "status": "PASS_FULL_TURYN_PROFILES_BLOCK_RANK_9" +} diff --git a/research/turyn-profile-parity-lift/FULL-PROFILE-UPPER.json b/research/turyn-profile-parity-lift/FULL-PROFILE-UPPER.json new file mode 100644 index 0000000000..b2f31a990e --- /dev/null +++ b/research/turyn-profile-parity-lift/FULL-PROFILE-UPPER.json @@ -0,0 +1,1328 @@ +{ + "selected_low_block": "(profile+1) mod 3", + "roots": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + -2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + -2 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0 + ], + [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + -2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + -2, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + 0, + -2 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0 + ], + [ + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0 + ], + [ + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + -2, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + -2, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + -2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0 + ], + [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + -2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + -2, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + -2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + -2 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 0 + ], + [ + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + -1, + 1 + ], + [ + 1, + -1, + -1, + -1, + -1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 1, + -1, + -1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + -1, + -1, + -1 + ], + [ + 1, + -1, + -1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + -1, + 1, + 1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + -1, + -1 + ], + [ + 1, + -1, + -1, + 1, + -1, + -1, + 1, + 1 + ], + [ + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + -1, + 1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + -1, + 1 + ], + [ + 1, + -1, + -1, + 1, + 1, + -1, + 1, + -1 + ], + [ + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1 + ], + [ + 1, + -1, + -1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + -1, + 1, + -1, + -1, + -1, + -1, + -1 + ], + [ + 1, + -1, + 1, + -1, + -1, + -1, + 1, + 1 + ], + [ + 1, + -1, + 1, + -1, + -1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + -1, + -1, + 1, + 1, + -1 + ], + [ + 1, + -1, + 1, + -1, + 1, + -1, + -1, + 1 + ], + [ + 1, + -1, + 1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 1, + -1, + 1, + -1, + 1, + 1, + -1, + -1 + ], + [ + 1, + -1, + 1, + -1, + 1, + 1, + 1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -1, + -1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 1, + -1, + 1, + 1, + -1, + 1, + 1, + 1 + ], + [ + 1, + -1, + 1, + 1, + 1, + -1, + -1, + -1 + ], + [ + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 1, + -1, + 1, + 1, + 1, + 1, + -1, + 1 + ], + [ + 1, + -1, + 1, + 1, + 1, + 1, + 1, + -1 + ], + [ + 1, + 1, + -1, + -1, + -1, + -1, + -1, + -1 + ], + [ + 1, + 1, + -1, + -1, + -1, + -1, + 1, + 1 + ], + [ + 1, + 1, + -1, + -1, + -1, + 1, + -1, + 1 + ], + [ + 1, + 1, + -1, + -1, + -1, + 1, + 1, + -1 + ], + [ + 1, + 1, + -1, + -1, + 1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + -1, + 1, + -1, + 1, + -1 + ], + [ + 1, + 1, + -1, + -1, + 1, + 1, + -1, + -1 + ], + [ + 1, + 1, + -1, + -1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 1, + -1, + 1, + -1, + -1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 1, + -1, + -1, + 1, + -1 + ], + [ + 1, + 1, + -1, + 1, + -1, + 1, + -1, + -1 + ], + [ + 1, + 1, + -1, + 1, + -1, + 1, + 1, + 1 + ], + [ + 1, + 1, + -1, + 1, + 1, + -1, + -1, + -1 + ], + [ + 1, + 1, + -1, + 1, + 1, + -1, + 1, + 1 + ], + [ + 1, + 1, + -1, + 1, + 1, + 1, + -1, + 1 + ], + [ + 1, + 1, + -1, + 1, + 1, + 1, + 1, + -1 + ], + [ + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1 + ], + [ + 1, + 1, + 1, + -1, + -1, + -1, + 1, + -1 + ], + [ + 1, + 1, + 1, + -1, + -1, + 1, + -1, + -1 + ], + [ + 1, + 1, + 1, + -1, + -1, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + -1, + 1, + -1, + -1, + -1 + ], + [ + 1, + 1, + 1, + -1, + 1, + -1, + 1, + 1 + ], + [ + 1, + 1, + 1, + -1, + 1, + 1, + -1, + 1 + ], + [ + 1, + 1, + 1, + -1, + 1, + 1, + 1, + -1 + ], + [ + 1, + 1, + 1, + 1, + -1, + -1, + -1, + -1 + ], + [ + 1, + 1, + 1, + 1, + -1, + -1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + -1, + 1, + -1, + 1 + ], + [ + 1, + 1, + 1, + 1, + -1, + 1, + 1, + -1 + ], + [ + 1, + 1, + 1, + 1, + 1, + -1, + -1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + -1, + 1, + -1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1, + -1, + -1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + -2, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + -2, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + -2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + -2, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + -2 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + [ + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 2, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ], + "nine_bit_labels": [ + 1, + 505, + 2, + 508, + 4, + 506, + 25, + 484, + 26, + 482, + 28, + 481, + 47, + 457, + 52, + 458, + 50, + 460, + 49, + 471, + 415, + 79, + 425, + 84, + 426, + 82, + 428, + 81, + 439, + 103, + 191, + 223, + 271, + 233, + 276, + 234, + 274, + 236, + 273, + 247, + 295, + 327, + 502, + 8, + 501, + 499, + 19, + 21, + 488, + 22, + 451, + 453, + 56, + 454, + 478, + 32, + 477, + 475, + 419, + 421, + 88, + 422, + 446, + 64, + 445, + 443, + 110, + 400, + 109, + 107, + 395, + 397, + 112, + 398, + 227, + 229, + 280, + 230, + 254, + 256, + 253, + 251, + 302, + 208, + 301, + 299, + 203, + 205, + 304, + 206, + 334, + 176, + 333, + 331, + 171, + 173, + 336, + 174, + 379, + 381, + 128, + 382, + 358, + 152, + 357, + 355, + 391, + 199, + 167, + 375, + 145, + 364, + 146, + 362, + 148, + 361, + 143, + 351, + 319, + 127 + ], + "all_ports_sha256": "370a12b8fcba5d81a2ec240b932d17323ba46edb3bc54d9b6b13e04241c85432" +} diff --git a/research/turyn-profile-parity-lift/GLOBAL-SCOPE-CONTROL.json b/research/turyn-profile-parity-lift/GLOBAL-SCOPE-CONTROL.json new file mode 100644 index 0000000000..6fe580444d --- /dev/null +++ b/research/turyn-profile-parity-lift/GLOBAL-SCOPE-CONTROL.json @@ -0,0 +1,140 @@ +{ + "scope": "These independently chosen per-profile lifts do not form global actual 24-cliques. This is not a search over other global choices.", + "cliques": [ + { + "clique_index": 0, + "missing_cross_profile_edges": 138, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 1, + "missing_cross_profile_edges": 150, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 2, + "missing_cross_profile_edges": 128, + "first_missing_edge": { + "classes": [ + 0, + 2277 + ], + "integer_block_dots": [ + -4, + 4, + 0 + ] + } + }, + { + "clique_index": 3, + "missing_cross_profile_edges": 116, + "first_missing_edge": { + "classes": [ + 2277, + 903 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 4, + "missing_cross_profile_edges": 108, + "first_missing_edge": { + "classes": [ + 2277, + 903 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 5, + "missing_cross_profile_edges": 98, + "first_missing_edge": { + "classes": [ + 2295, + 903 + ], + "integer_block_dots": [ + 4, + 4, + 0 + ] + } + }, + { + "clique_index": 6, + "missing_cross_profile_edges": 142, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 7, + "missing_cross_profile_edges": 146, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + }, + { + "clique_index": 8, + "missing_cross_profile_edges": 140, + "first_missing_edge": { + "classes": [ + 0, + 2295 + ], + "integer_block_dots": [ + 0, + 4, + 4 + ] + } + } + ] +} diff --git a/research/turyn-profile-parity-lift/NOTICE.md b/research/turyn-profile-parity-lift/NOTICE.md new file mode 100644 index 0000000000..4602bbdc49 --- /dev/null +++ b/research/turyn-profile-parity-lift/NOTICE.md @@ -0,0 +1,38 @@ +# Attribution and license + +New actual-port lift construction and independent verification prepared +with substantial OpenAI assistance in research, code, proof checking, +certificate generation and writing. This is not independent human peer +review. New files follow the repository's Apache-2.0 license. + +The Turyn geometry, glue classes, original nine-clique parity certificate, +parity-projector argument, and earlier per-profile fitting results are from +**DominikScholz's PR598**, incorporated head +`615ca6f06fdea0c50dbef733370c47349e25c555`, and its packages +`research/leech-lattice`, `research/turyn-code-space`, and +`research/turyn-port-labels`. Their notices disclose OpenAI GPT-6 Astra +assistance and remain unchanged. This contribution claims no priority for +the general parity method or the previous binary profile dimension-nine +obstruction. + +The source geometry credits R. J. Turyn, J. H. Conway, N. J. A. Sloane, +E. Bannai, Gabriele Nebe, Vincent Corlay, Joseph J. Boutros, Philippe Ciblat, +Loic Brunel, and SageMath contributors. The exact source notices are pinned +and retained in the standalone replay package. + +The new part is a simultaneous actual-port lift of the nine eight-class +restrictions **within each individual profile**, plus explicit upper-bound +labels and code-disjoint verification. It does not lift the original global +twenty-four-class cliques. Applying the inherited rank argument to the +actual-port covers removes the prior per-profile restrictions to symmetry, +scalar labels, and F₂ rather than arbitrary characteristic-two fields. + +The earlier new `turyn-profile-cnf` package supplies the independent +standard-library coordinate generator used during construction. Its +delivered files are preserved unchanged. Only that new, hash-pinned helper +is imported by the generator; the default verifier imports no such helper. + +The overall research framework is maintained by Douglas Colkitt / CrocSwap +and inherits the source and contributor lineage preserved in the repository. +The original-base PR799 conditional frontier is historical context only; +subsequent upstream selections are separately dated in the local claim. diff --git a/research/turyn-profile-parity-lift/PROOF.md b/research/turyn-profile-parity-lift/PROOF.md new file mode 100644 index 0000000000..0b1688f549 --- /dev/null +++ b/research/turyn-profile-parity-lift/PROOF.md @@ -0,0 +1,190 @@ +# Actual-port rank-nine parity certificates in characteristic two + +## Statement + +For each of the three Turyn profiles, the certificate gives **20 actual +ports** whose active graph has 124 edges. Fix any field K of characteristic +two and any positive integer d. A d-block fitting of this graph is a matrix +M over K, with its rows and columns grouped by the twenty vertices, such that + + M_vv = I_d, + M_vw = 0 for each ordered pair of adjacent distinct vertices. + +No symmetry, transpose relation between factors, or standard-dot +representation is required. Then + + rank(M) ≥ 9d. + +The same statement holds if the fitting convention permits arbitrary +invertible diagonal d-by-d blocks: multiplying each block row by the +inverse of its diagonal block normalizes it to I_d, preserves every zero +edge block, and does not change matrix rank. The graph convention here +requires zeros on **active edges**, as displayed; it is fixed explicitly +rather than inferred from any alternate minrank/complement convention. + +For every K and d there is a fitting of rank exactly 9d. Thus the scalar +minimum fitting rank and the normalized minimum block fitting rank are +both nine for each of the three explicit graphs. Moreover, the minimum +asymmetric d-block fitting rank of **each complete canonical 7,680-port +Turyn profile is exactly 9d**. Restriction to its listed twenty ports gives +the lower bound, and the complete upper-bound verification is below. + +This does **not** imply a global bound of 27 for all three profiles together. +It does not exclude a global 25-dimensional full-port fitting. It changes +no supplier, cost recurrence, or κ certificate. + +## 1. The finite geometric certificate + +The source is DominikScholz's PR598 Turyn construction. Its integer vectors +x have squared norm 32; the real vector is x/√8. A profile consists of +three eight-dimensional blocks whose squared norms are 16, 8, 8, with the +location of the norm-16 block specifying the profile. Two distinct ports +are active exactly when all three integer block inner products are nonzero. +The scalar tensor kernel is their product divided by 8³, so this exact +integer test involves no approximation. + +The predecessor's quotient groups eight ports with the same two low roots +into one glue class. An edge of that quotient only means that **some** +pair of representatives is active. It does not alone certify an edge +between chosen representatives. + +We restrict the predecessor's nine 24-cliques to one profile, obtaining +nine sets of eight glue classes. The new construction selects one actual +port per used class, consistently across all nine sets. It verifies every +required edge using that port's literal integer coordinates. This succeeds +separately for all three profiles. Each lift has: + +- Twenty distinct actual ports +- Nine actual 8-cliques +- Twelve ports occurring in two cliques, and eight occurring in six +- Exactly 124 distinct active edges, all contained in the listed cliques + +There are 9·8·7 = 504 ordered clique-edge checks per profile. The independent +verifier also examines all 190 unordered coordinate pairs, checks exact +Turyn shell membership, and checks the upper-bound labels on every active +edge. Its inputs are explicit coordinates, not existential quotient edges. + +## 2. The rank argument allows asymmetric blocks + +Let r = rank(M) and choose a rank factorization M = AB, where A has r +columns and B has r rows. Write A_v for the d-by-r row block belonging to +vertex v, and B_v for the r-by-d column block. The diagonal and edge +conditions give + + A_v B_v = I_d, + A_v B_w = 0 whenever v and w are adjacent. + +Set P_v = B_v A_v, an r-by-r matrix. It is an idempotent of rank d: + + P_v² = B_v (A_v B_v) A_v = P_v. + +Its image is precisely the d-dimensional image of B_v. For two adjacent +vertices, both P_v P_w and P_w P_v vanish, because both ordered fitting +blocks vanish. + +For one of the eight-vertex cliques C, put + + Q_C = sum_{v in C} P_v, + R_C = I_r - Q_C. + +The summands in Q_C mutually annihilate. Their images form a direct sum: +applying P_w to a relation among these images isolates its w component. +Thus Q_C is an idempotent of rank 8d, and R_C has rank r−8d. + +Every vertex appears an even number of times in the nine cliques. Since +K has characteristic two, summing their Q_C gives zero. There are an odd +number of cliques, so + + sum_C R_C = 9 I_r - sum_C Q_C = I_r. + +Rank subadditivity now yields + + r = rank(I_r) ≤ sum_C rank(R_C) = 9(r−8d), + +or 8r ≥ 72d. Hence r ≥ 9d, as claimed. This is a field-independent written +linear-algebra argument in characteristic two. No symmetry of M and no +finite-field enumeration is used. + +## 3. Tight upper bound + +For each twenty-port graph, `CERTIFICATE.json` supplies explicit binary +labels p_v in F₂⁹. The verifier checks + + p_v·p_v = 1, + p_v·p_w = 0 on every active edge. + +The same zero/one labels are defined over every characteristic-two field. +Their Gram matrix G is a scalar fitting of rank at most nine. The block +matrix G tensor I_d is a d-block fitting of rank at most 9d. Together with +the lower bound, its rank and the minimum possible rank are exactly 9d. + +The explicit labels are generated from a low-root binary Gram matrix, but +their correctness is checked directly and does not depend on trusting that +generation procedure. The checker also confirms their binary rank is nine. + +## 4. Complete-profile upper bound, without sampled edges + +`FULL-PROFILE-UPPER.json` gives 120 canonical integer low roots r of +squared norm eight and a nine-bit label p(r) for each. The verifier checks +all 7,140 pairs of distinct roots. Their pairings belong to {-4,0,4}, and + + p(r)·p(s) = 1 + (r·s)/4 mod 2. + +Every diagonal label has odd weight. In profile a, assign a port the label +of its low block (a+1) mod 3. The independent full-profile checker rebuilds +all 23,040 canonical ports from the binary-span Turyn code and exact shell +families. It matches the pinned complete-array SHA256 and checks every +port's coordinate membership, norm, canonical signs, and profile. In each +profile it verifies that the 120 low roots partition all 7,680 ports into +fibers of exactly 64. + +For two distinct ports in the same root fiber, all 241,920 such pairs per +profile are checked to be inactive. For ports with different low roots: + +- Root pairing zero makes their scalar tensor kernel zero +- Root pairing +4 or -4 makes their binary label pairing zero + +In particular, an active pair with distinct low roots must have nonzero +inner product in the selected low block, because activity requires all +three block products to be nonzero. The checked distinct-root spectrum +then forces that product to be +4 or -4, and the displayed Gram formula +forces its label inner product to be zero. + +Thus every actual edge has label pairing zero. These three cases partition +**all 29,487,360 unordered pairs in each profile**; no edge sampling or +assumption about unexamined high-block pairings is used. The distinct-root +cases need only 7,140 root-pair checks rather than expanding every pair of +their 64-port fibers. + +The zero/one Gram fitting again works over every characteristic-two field, +and tensoring with I_d gives rank at most 9d. The twenty-port lower-bound +restriction makes equality necessary. The full-profile checker additionally +binds all sixty lower-witness source indices to their literal coordinates +in the independently regenerated complete array. + +## 5. What this extends and what remains open + +The predecessor established a 27-dimensional characteristic-two quotient +obstruction for class-constant labels, and a different 24-port nine-bit +obstruction for symmetric standard-dot labels over F₂. It explicitly did +not assert an asymmetric fitting lower bound from that enumeration. + +This contribution lifts the **per-profile restrictions** of the older +parity certificate to actual ports. The resulting twenty-port witnesses +give the stronger per-profile statement for arbitrary asymmetric block +fittings over every characteristic-two field. In particular, neither an +extension field nor block normalization can make a separately realized +profile have fitting dimension below nine in this model. + +The three per-profile results do not add automatically: source and target +spans from different profiles need not be mutually orthogonal. The new +chosen lifts also fail numerous cross-profile edges of the original +24-cliques; `GLOBAL-SCOPE-CONTROL.json` records those exact failures. This +does not contradict the predecessor's nonliftability example for a global +quotient clique, and it is not a search over alternative global lifts. + +The rank argument is the predecessor's parity-projector argument, credited +there, applied to these newly exhibited actual-port covers. The new result +is the geometric lift and the resulting removal of the per-profile +symmetry, scalar-block, and F₂-only restrictions, not a new general parity +principle or a new exponent improvement. diff --git a/research/turyn-profile-parity-lift/README.md b/research/turyn-profile-parity-lift/README.md new file mode 100644 index 0000000000..f6b16c3bd4 --- /dev/null +++ b/research/turyn-profile-parity-lift/README.md @@ -0,0 +1,116 @@ +# Actual Turyn profile lifts: block fitting rank exactly nine + +**Finite construction and independent verification; no new κ.** For every +field of characteristic two and every positive integer d, each complete +canonical **7,680-port Turyn profile has minimum asymmetric d-block fitting +rank exactly 9d**. Each profile contains twenty explicit actual ports with +nine genuine 8-cliques and even vertex incidences. Their short parity rank +proof supplies the lower bound. An independently verified nine-bit fitting +of all 7,680 ports supplies the upper bound. + +This removes the symmetry, scalar-block, and F₂-only restrictions from the +previous actual-profile lower bound. It does not yield a global 27-dimensional +bound or resolve unrestricted global 25-dimensional labelings. + +## Reproduce + +From the repository root, Python 3.10+ and its standard library only: + +```sh +python3 -I -O -B research/turyn-profile-parity-lift/verify_full_profiles.py +python3 -I -O -B research/turyn-profile-parity-lift/test_verify.py +python3 -I -O -B research/turyn-profile-parity-lift/test_full_profiles.py +python3 -I -O -B research/turyn-profile-parity-lift/test_package.py +``` + +The first command prints `PASS_FULL_TURYN_PROFILES_BLOCK_RANK_9`. It +reconstructs all 23,040 canonical ports, matches the immutable complete-array +hash, checks all source indices for the lower witnesses, and validates the +upper fitting by an exhaustive fiber partition. Per profile, all 241,920 +same-root pairs are directly checked inactive; 7,140 root-pair checks cover +all remaining pairs. Together these exhaust all 29,487,360 unordered pairs +per profile. No predecessor executable source, producer, third-party +package, numerical tolerance, or edge sampling is used. + +For a smaller check of just the twenty-port lower witnesses and their tight +finite upper bounds: + +```sh +python3 -I -O -B research/turyn-profile-parity-lift/verify.py +``` + +It prints `PASS_ACTUAL_TURYN_PROFILE_BLOCK_RANK_9`. Per profile it checks +exact integer geometry, all 190 unordered port pairs, 504 ordered clique-edge +incidences, twelve ports occurring twice and eight occurring six times, +all 124 actual edges, and a rank-nine binary fitting. Required controls +include a **valid port in the same glue class** that breaks a genuine clique +edge. The checker also confirms exact cross-profile edge failures, so the +three separate lifts cannot be mistaken for global actual 24-cliques. + +Normal verification writes no files and compares entire deterministic +receipts with `EXPECTED.json` or `FULL-PROFILE-EXPECTED.json`. The small +checker alone does not regenerate the full sorted array; the full-profile +checker independently performs that provenance step. + +## Rebuild the artifacts + +```sh +python3 -I -O -B research/turyn-profile-parity-lift/build.py --output /tmp/turyn-parity-rebuild +``` + +The builder checks source hashes and imports only the pinned **new** +`turyn-profile-cnf/build.py` geometry producer. It reconstructs the complete +23,040-port array and finds one simultaneous actual lift per profile using +an exact finite constraint search. It also rebuilds all positive and scope +control artifacts. The verifier does not trust that search; it checks the +explicit coordinates and labels directly. The independent full-profile +checker uses a separate bit-span code and canonical-sign enumeration. + +## Independent algebraic appendix + +```sh +python3 -I -O -B research/turyn-profile-parity-lift/algebraic/verify.py +python3 -I -O -B research/turyn-profile-parity-lift/algebraic/test_verify.py +python3 -I -O -B research/turyn-profile-parity-lift/algebraic/build.py --output /tmp/turyn-algebraic-rebuild +``` + +This corroborates a different, earlier 24-port obstruction using an ordinary +polynomial-calculus derivation of 1 from 57 normalized edge equations in +40 free coordinates. Every one of 3,121 intermediate steps has ordinary +total degree at most three. There is **no x²=x reduction or finite-field +axiom**. A checked 57-by-57 nonzero quadratic minor also proves that degree +three is minimal for this normalized equation system and these proof rules. + +The appendix gives symmetric fitting rank nine over every characteristic-two +field, with a 57-variable-edge core that is inclusion-minimal while all +anchor constraints are fixed. It does not claim global minimum edge count, +or the main asymmetric-block theorem for that different 24-port core. +All 57 single-edge-deletion assignments are checked again. The previous +CNF package remains byte-for-byte unchanged. + +## Read the contribution + +- `PROOF.md`: exact geometry, arbitrary-block rank argument, and full-profile upper fit +- `CERTIFICATE.json`: three twenty-port coordinate witnesses, cliques, and labels +- `FULL-PROFILE-UPPER.json`: complete 120-root upper-bound label map +- `SAME-CLASS-CONTROL.json`: valid same-class replacement losing a required edge +- `GLOBAL-SCOPE-CONTROL.json`: exact cross-profile failures of the selected lifts +- `algebraic/PROOF.md`: symmetric rank bridge, ordinary proof, and precise degree boundary +- `SOURCES.json`, `CLAIM.json`, `VALIDATION.json`: pins, contribution scope, and test receipts +- `COMPARISON.md`: exact PR598/PR898 distinction and immutable primary-source URLs +- `NOTICE.md`: predecessor credits and substantial AI-assistance disclosure + +The exact base is `91a2094f2e022930069e8cfdc810a3ea1b81cd09`; PR598's +incorporated head is `615ca6f06fdea0c50dbef733370c47349e25c555`. Its source +packages are unchanged. The selected conditional κ at this **historical base** +is `0.001661634653669567` (PR799). The final 15:28 UTC context refresh found +upstream main `bbc600db2fc15007b7c914f4f2b2ed55fa909c87` selecting PR942 at +`0.001661960547713947`. Its selected record, manifest, assembly and review +were read and the declared assembly hash checked, but its supplier programs +were not replayed. This patch remains against the pinned original base; +the preserved baseline intentionally pins that old context. + +No new supplier, paid recurrence, practical speedup, +Lean formalization, or discharge of compiler/hosting/precision/tape/analytic +assumptions is claimed. Repository-wide verification, cold selected-supplier +replay, and Lean were not run. diff --git a/research/turyn-profile-parity-lift/SAME-CLASS-CONTROL.json b/research/turyn-profile-parity-lift/SAME-CLASS-CONTROL.json new file mode 100644 index 0000000000..3f8a9af2d5 --- /dev/null +++ b/research/turyn-profile-parity-lift/SAME-CLASS-CONTROL.json @@ -0,0 +1,37 @@ +{ + "profile": 0, + "position": 0, + "source_class": 0, + "original_port": 4712, + "replacement_port": 4880, + "replacement_coordinates": [ + 0, + 2, + -2, + 0, + 0, + 2, + 0, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + -2 + ], + "broken_required_edge": [ + 0, + 1 + ] +} diff --git a/research/turyn-profile-parity-lift/SOURCE-AUDIT.json b/research/turyn-profile-parity-lift/SOURCE-AUDIT.json new file mode 100644 index 0000000000..a93c6d45a4 --- /dev/null +++ b/research/turyn-profile-parity-lift/SOURCE-AUDIT.json @@ -0,0 +1,79 @@ +{ + "status": "EXACT_BASE_SOURCE_PINS_MATCH", + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "source_files": [ + { + "path": "certificates/selected-result.json", + "sha256": "9873519224e2db72d6a8c926f51e3e75129671e467948c6f6b03744f8bcfc699", + "base_git_blob": "1f107b55a2f045fa66d9c35d658b3b79549f5ba6", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/certificates/selected-result.json" + }, + { + "path": "research/leech-lattice/code/leech_geometry.py", + "sha256": "2d1ad5ec15d10464d2853bf9a245aafd66ce4f0e9d08509c06b260f0b022c1bd", + "base_git_blob": "8b993147284e7ed3d988eba854363f661d9afdaf", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/leech-lattice/code/leech_geometry.py" + }, + { + "path": "research/leech-lattice/code/turyn_checks.py", + "sha256": "ca3529b1c3e1f31cdc16a68304fa9f42a5752af52cd1f470b3e2bdbe6085c5d7", + "base_git_blob": "71a707d38fbd80130731cc798e7e47438e84ed01", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/leech-lattice/code/turyn_checks.py" + }, + { + "path": "research/leech-lattice/evidence/TURYN-GEOMETRY.json", + "sha256": "d9ad298a2dadba1143007ac873d1c23cc80977205217a3b6013a7c7d7caa3c7e", + "base_git_blob": "a5b7d9ed882a3c112d14ee58a75c4ae3831603cf", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/leech-lattice/evidence/TURYN-GEOMETRY.json" + }, + { + "path": "research/turyn-code-space/NOTICE", + "sha256": "ffa33f7ae4d7a74582ec095b4008203f3a99546437a468b072ed5d5e63b90b06", + "base_git_blob": "e91f148168ae9cac96efaa0a7604cf2a4f37c64a", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-code-space/NOTICE" + }, + { + "path": "research/turyn-code-space/PROOF.txt", + "sha256": "b333b5ac4f47e1a72b4c471a37d27a90b409fc296196404b00308ac8ae3b19c7", + "base_git_blob": "802d3d18595269ff3e06159ff05be1ea298988c2", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-code-space/PROOF.txt" + }, + { + "path": "research/turyn-code-space/evidence/PARITY-CERTIFICATE.json", + "sha256": "4b9c7f9358cdd9c6f81611f9e424630f5c9e0bb503bb198277e6ac762fdb64e0", + "base_git_blob": "7e0d8a35fca67a5be76dded00456c881f84b1017", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-code-space/evidence/PARITY-CERTIFICATE.json" + }, + { + "path": "research/turyn-port-labels/NOTICE", + "sha256": "ce1b6d43aa1d670cbcb09c88ec8270170863a1f74898f69b04599917ce57dd5c", + "base_git_blob": "80543cd259d6efca4e172d69d62ddbb935f0148b", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/NOTICE" + }, + { + "path": "research/turyn-port-labels/PROOF.txt", + "sha256": "926af92411e16decd9663efdcf3f97b27926cc6dc57ea799e6d217f01d2d8b0e", + "base_git_blob": "35350a61d166a6e6d12a4c6b9f4d1d18dd13d89c", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/PROOF.txt" + }, + { + "path": "research/turyn-port-labels/code/profile.py", + "sha256": "418122e3d6f41eda07fe5060911c090c0f2c057220dd1eb9a24a115bcc58ee01", + "base_git_blob": "0a022bd5067ccb1bb39f0e85867b29a8d9aab08f", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/code/profile.py" + }, + { + "path": "research/turyn-port-labels/evidence/GEOMETRY-VERIFICATION.json", + "sha256": "1f3d20a6469da2a76c62751edec0d3ae655be901f14bd4dc7cbf9fd6e973716b", + "base_git_blob": "aaca08230b3b87299f3ce2f15efcba9f41f0ea32", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/evidence/GEOMETRY-VERIFICATION.json" + }, + { + "path": "research/turyn-port-labels/evidence/PROFILE-H8.json", + "sha256": "39b1fea14484b4dc515d856dcff326c3a1d009c7feb0baf22b865ece7e6f1551", + "base_git_blob": "6321340d531292a6a9cd43f30a4793e8ad1fdfcf", + "raw_source_url": "https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/91a2094f2e022930069e8cfdc810a3ea1b81cd09/research/turyn-port-labels/evidence/PROFILE-H8.json" + } + ], + "new_helper_provenance": "New baseline helpers separately match the earlier delivered archive; they are not predecessor executable code." +} diff --git a/research/turyn-profile-parity-lift/SOURCES.json b/research/turyn-profile-parity-lift/SOURCES.json new file mode 100644 index 0000000000..12bd690864 --- /dev/null +++ b/research/turyn-profile-parity-lift/SOURCES.json @@ -0,0 +1,14 @@ +{ + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "predecessor_pr598_head": "615ca6f06fdea0c50dbef733370c47349e25c555", + "files": { + "research/leech-lattice/evidence/TURYN-GEOMETRY.json": "d9ad298a2dadba1143007ac873d1c23cc80977205217a3b6013a7c7d7caa3c7e", + "research/turyn-code-space/evidence/PARITY-CERTIFICATE.json": "4b9c7f9358cdd9c6f81611f9e424630f5c9e0bb503bb198277e6ac762fdb64e0", + "research/turyn-code-space/PROOF.txt": "b333b5ac4f47e1a72b4c471a37d27a90b409fc296196404b00308ac8ae3b19c7", + "research/turyn-code-space/NOTICE": "ffa33f7ae4d7a74582ec095b4008203f3a99546437a468b072ed5d5e63b90b06", + "research/turyn-port-labels/PROOF.txt": "926af92411e16decd9663efdcf3f97b27926cc6dc57ea799e6d217f01d2d8b0e", + "research/turyn-port-labels/NOTICE": "ce1b6d43aa1d670cbcb09c88ec8270170863a1f74898f69b04599917ce57dd5c", + "research/turyn-profile-cnf/build.py": "21605b8fdc22259e0b22f6a3747be6f71f0ecf2d45d088c5e31a001c31f23637" + }, + "executed_dependencies": "Only the new baseline turyn-profile-cnf/build.py geometry producer, whose hash is pinned; no predecessor repository executable code is run." +} diff --git a/research/turyn-profile-parity-lift/VALIDATION.json b/research/turyn-profile-parity-lift/VALIDATION.json new file mode 100644 index 0000000000..24bfa8aa57 --- /dev/null +++ b/research/turyn-profile-parity-lift/VALIDATION.json @@ -0,0 +1,65 @@ +{ + "status": "All focused checks passed, including fresh pinned-base patch replay", + "as_of_utc": "2026-10-13T15:26:11Z", + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "python": "3.12.14", + "platform": "Linux-6.18.44-x86_64-with-glibc2.41", + "test_groups_per_mode": { + "unchanged_baseline": 8, + "actual_parity_witnesses": 11, + "complete_profile_upper_and_bindings": 7, + "ordinary_polynomial_appendix": 7, + "offline_package_and_on_disk_corruptions": 7 + }, + "modes": [ + "python3 -I -B", + "python3 -I -O -B" + ], + "deterministic_checks": [ + "All four verifier receipts agree with their complete EXPECTED artifacts", + "Normal and optimized verifier receipts are byte-identical", + "Both new producers reproduce all seven JSON artifacts byte-for-byte", + "All 15 earlier baseline files match the previously delivered archive", + "All 12 predecessor/context source pins match exact original-base Git blobs", + "Minimal offline replay passes and preserves all input bytes" + ], + "negative_controls": [ + "Actual geometry and even incidence corruption", + "Required same-class replacement control missing", + "Valid same-class port breaks a required actual clique edge", + "Exact cross-profile scope-edge failures", + "Incorrect root labels or incomplete root fibers", + "Wrong literal port IDs, class IDs, or replacement ID", + "Source drift and false expected receipt", + "Ordinary proof rule/axiom/multiplier/final-summand corruption", + "Repeated variables retained and degree-four multiplication rejected", + "Singular quadratic minor rejected" + ], + "not_run": [ + "make verify", + "selected-supplier cold replay", + "Lean", + "GitHub CI" + ], + "execution_scope": "Only newly written standard-library Python code and the previously delivered new baseline helpers executed. No predecessor repository program or third-party mathematical library executed. Predecessor files were read and hash-checked only.", + "review_scope": "Written proof plus finite exact certificate verification and scoped AI review; not proof-assistant formalization or independent human peer review.", + "fresh_pinned_base": { + "commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "git_apply_check": "passed", + "git_apply": "passed", + "verifier_commands": 4, + "test_groups_per_mode": 40, + "modes": [ + "normal isolated", + "optimized isolated" + ], + "all_inputs_unchanged": true, + "normal_optimized_receipts_byte_identical": true + }, + "independent_AI_replay": { + "finite_parity_checker": "passed", + "complete_profile_checker": "passed", + "offline_adversarial_test_groups": 7, + "offline_adversarial_result": "passed on an independent invocation; source and written-proof review scoped to these finite claims" + } +} diff --git a/research/turyn-profile-parity-lift/algebraic/EXPECTED.json b/research/turyn-profile-parity-lift/algebraic/EXPECTED.json new file mode 100644 index 0000000000..ce6c48145b --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/EXPECTED.json @@ -0,0 +1,27 @@ +{ + "corruption_controls": [ + "wrong_edge_axiom", + "circular_multiplication", + "omitted_final_summand", + "wrong_multiplier" + ], + "edge_deletion_assignment_controls": 57, + "free_coordinates": 40, + "quadratic_minor": { + "full_quadratic_support": 263, + "rank": 57, + "rows": 57, + "selected_columns": 57 + }, + "statistics": { + "axiom": 57, + "final_monomials": 1, + "max_degree": 3, + "max_monomials": 191, + "multiply": 2389, + "source_equations": 57, + "steps": 3121, + "xor": 675 + }, + "status": "PASS_TURYN_ALL_CHAR2_PC_DEGREE_3" +} diff --git a/research/turyn-profile-parity-lift/algebraic/ORDINARY-PC-PROOF.json b/research/turyn-profile-parity-lift/algebraic/ORDINARY-PC-PROOF.json new file mode 100644 index 0000000000..d399ec3bb4 --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/ORDINARY-PC-PROOF.json @@ -0,0 +1,22603 @@ +{ + "status": "ORDINARY_CHAR2_PC_REFUTATION", + "degree_bound": 3, + "variables": [ + [ + 0, + 3 + ], + [ + 1, + 4 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 3, + 6 + ], + [ + 4, + 0 + ], + [ + 4, + 2 + ], + [ + 4, + 4 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 4 + ], + [ + 6, + 6 + ], + [ + 7, + 1 + ], + [ + 8, + 0 + ], + [ + 8, + 2 + ], + [ + 8, + 4 + ], + [ + 8, + 6 + ], + [ + 9, + 0 + ], + [ + 9, + 1 + ], + [ + 9, + 2 + ], + [ + 9, + 4 + ], + [ + 10, + 0 + ], + [ + 10, + 2 + ], + [ + 10, + 4 + ], + [ + 11, + 0 + ], + [ + 11, + 1 + ], + [ + 11, + 5 + ], + [ + 12, + 0 + ], + [ + 12, + 3 + ], + [ + 12, + 6 + ], + [ + 13, + 5 + ], + [ + 14, + 3 + ], + [ + 14, + 4 + ], + [ + 14, + 5 + ], + [ + 15, + 1 + ], + [ + 16, + 2 + ], + [ + 16, + 5 + ], + [ + 16, + 6 + ] + ], + "core_variable_edges": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ], + [ + 3, + 0 + ], + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 6, + 0 + ], + [ + 6, + 2 + ], + [ + 6, + 4 + ], + [ + 7, + 0 + ], + [ + 7, + 1 + ], + [ + 7, + 2 + ], + [ + 7, + 3 + ], + [ + 7, + 6 + ], + [ + 8, + 1 + ], + [ + 8, + 2 + ], + [ + 8, + 5 + ], + [ + 8, + 6 + ], + [ + 9, + 1 + ], + [ + 9, + 4 + ], + [ + 9, + 5 + ], + [ + 10, + 1 + ], + [ + 10, + 4 + ], + [ + 10, + 6 + ], + [ + 10, + 9 + ], + [ + 11, + 2 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 7 + ], + [ + 11, + 8 + ], + [ + 12, + 0 + ], + [ + 12, + 3 + ], + [ + 12, + 5 + ], + [ + 12, + 8 + ], + [ + 13, + 0 + ], + [ + 13, + 1 + ], + [ + 13, + 3 + ], + [ + 13, + 6 + ], + [ + 13, + 7 + ], + [ + 13, + 11 + ], + [ + 14, + 0 + ], + [ + 14, + 2 + ], + [ + 14, + 5 + ], + [ + 14, + 6 + ], + [ + 14, + 8 + ], + [ + 14, + 11 + ], + [ + 14, + 13 + ], + [ + 15, + 1 + ], + [ + 15, + 4 + ], + [ + 15, + 5 + ], + [ + 15, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 3 + ], + [ + 16, + 5 + ], + [ + 16, + 8 + ], + [ + 16, + 11 + ], + [ + 16, + 13 + ] + ], + "steps": [ + { + "kind": "axiom", + "edge": 0 + }, + { + "kind": "axiom", + "edge": 1 + }, + { + "kind": "axiom", + "edge": 2 + }, + { + "kind": "axiom", + "edge": 3 + }, + { + "kind": "axiom", + "edge": 4 + }, + { + "kind": "axiom", + "edge": 5 + }, + { + "kind": "axiom", + "edge": 6 + }, + { + "kind": "axiom", + "edge": 7 + }, + { + "kind": "axiom", + "edge": 8 + }, + { + "kind": "axiom", + "edge": 9 + }, + { + "kind": "axiom", + "edge": 10 + }, + { + "kind": "axiom", + "edge": 11 + }, + { + "kind": "axiom", + "edge": 12 + }, + { + "kind": "axiom", + "edge": 13 + }, + { + "kind": "axiom", + "edge": 14 + }, + { + "kind": "axiom", + "edge": 15 + }, + { + "kind": "axiom", + "edge": 16 + }, + { + "kind": "axiom", + "edge": 17 + }, + { + "kind": "axiom", + "edge": 18 + }, + { + "kind": "axiom", + "edge": 19 + }, + { + "kind": "axiom", + "edge": 20 + }, + { + "kind": "axiom", + "edge": 21 + }, + { + "kind": "axiom", + "edge": 22 + }, + { + "kind": "axiom", + "edge": 23 + }, + { + "kind": "axiom", + "edge": 24 + }, + { + "kind": "axiom", + "edge": 25 + }, + { + "kind": "axiom", + "edge": 26 + }, + { + "kind": "axiom", + "edge": 27 + }, + { + "kind": "axiom", + "edge": 28 + }, + { + "kind": "axiom", + "edge": 29 + }, + { + "kind": "axiom", + "edge": 30 + }, + { + "kind": "axiom", + "edge": 31 + }, + { + "kind": "axiom", + "edge": 32 + }, + { + "kind": "axiom", + "edge": 33 + }, + { + "kind": "axiom", + "edge": 34 + }, + { + "kind": "axiom", + "edge": 35 + }, + { + "kind": "axiom", + "edge": 36 + }, + { + "kind": "axiom", + "edge": 37 + }, + { + "kind": "axiom", + "edge": 38 + }, + { + "kind": "axiom", + "edge": 39 + }, + { + "kind": "axiom", + "edge": 40 + }, + { + "kind": "axiom", + "edge": 41 + }, + { + "kind": "axiom", + "edge": 42 + }, + { + "kind": "axiom", + "edge": 43 + }, + { + "kind": "axiom", + "edge": 44 + }, + { + "kind": "axiom", + "edge": 45 + }, + { + "kind": "axiom", + "edge": 46 + }, + { + "kind": "axiom", + "edge": 47 + }, + { + "kind": "axiom", + "edge": 48 + }, + { + "kind": "axiom", + "edge": 49 + }, + { + "kind": "axiom", + "edge": 50 + }, + { + "kind": "axiom", + "edge": 51 + }, + { + "kind": "axiom", + "edge": 52 + }, + { + "kind": "axiom", + "edge": 53 + }, + { + "kind": "axiom", + "edge": 54 + }, + { + "kind": "axiom", + "edge": 55 + }, + { + "kind": "axiom", + "edge": 56 + }, + { + "kind": "multiply", + "input": 0, + "variable": 2 + }, + { + "kind": "multiply", + "input": 0, + "variable": 3 + }, + { + "kind": "multiply", + "input": 0, + "variable": 6 + }, + { + "kind": "multiply", + "input": 0, + "variable": 7 + }, + { + "kind": "multiply", + "input": 0, + "variable": 9 + }, + { + "kind": "multiply", + "input": 0, + "variable": 10 + }, + { + "kind": "multiply", + "input": 0, + "variable": 11 + }, + { + "kind": "multiply", + "input": 0, + "variable": 12 + }, + { + "kind": "multiply", + "input": 0, + "variable": 15 + }, + { + "kind": "multiply", + "input": 0, + "variable": 16 + }, + { + "kind": "multiply", + "input": 0, + "variable": 17 + }, + { + "kind": "multiply", + "input": 0, + "variable": 18 + }, + { + "kind": "multiply", + "input": 0, + "variable": 19 + }, + { + "kind": "multiply", + "input": 0, + "variable": 20 + }, + { + "kind": "multiply", + "input": 0, + "variable": 21 + }, + { + "kind": "multiply", + "input": 0, + "variable": 23 + }, + { + "kind": "multiply", + "input": 0, + "variable": 24 + }, + { + "kind": "multiply", + "input": 0, + "variable": 26 + }, + { + "kind": "multiply", + "input": 0, + "variable": 27 + }, + { + "kind": "multiply", + "input": 0, + "variable": 28 + }, + { + "kind": "multiply", + "input": 0, + "variable": 29 + }, + { + "kind": "multiply", + "input": 0, + "variable": 31 + }, + { + "kind": "multiply", + "input": 0, + "variable": 34 + }, + { + "kind": "multiply", + "input": 0, + "variable": 35 + }, + { + "kind": "multiply", + "input": 0, + "variable": 37 + }, + { + "kind": "multiply", + "input": 0, + "variable": 38 + }, + { + "kind": "multiply", + "input": 0, + "variable": 39 + }, + { + "kind": "multiply", + "input": 1, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 84, + 58, + 57 + ] + }, + { + "kind": "multiply", + "input": 1, + "variable": 5 + }, + { + "kind": "multiply", + "input": 1, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1, + "variable": 8 + }, + { + "kind": "multiply", + "input": 1, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1, + "variable": 12 + }, + { + "kind": "multiply", + "input": 1, + "variable": 13 + }, + { + "kind": "multiply", + "input": 1, + "variable": 14 + }, + { + "kind": "multiply", + "input": 1, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1, + "variable": 18 + }, + { + "kind": "multiply", + "input": 1, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1, + "variable": 28 + }, + { + "kind": "multiply", + "input": 1, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1, + "variable": 32 + }, + { + "kind": "multiply", + "input": 1, + "variable": 33 + }, + { + "kind": "multiply", + "input": 1, + "variable": 34 + }, + { + "kind": "multiply", + "input": 1, + "variable": 35 + }, + { + "kind": "multiply", + "input": 1, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1, + "variable": 39 + }, + { + "kind": "multiply", + "input": 2, + "variable": 2 + }, + { + "kind": "multiply", + "input": 2, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 119, + 86, + 118 + ] + }, + { + "kind": "multiply", + "input": 2, + "variable": 10 + }, + { + "kind": "multiply", + "input": 2, + "variable": 11 + }, + { + "kind": "multiply", + "input": 2, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2, + "variable": 18 + }, + { + "kind": "multiply", + "input": 2, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2, + "variable": 27 + }, + { + "kind": "multiply", + "input": 2, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2, + "variable": 37 + }, + { + "kind": "multiply", + "input": 2, + "variable": 38 + }, + { + "kind": "multiply", + "input": 3, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 134, + 60, + 59, + 3 + ] + }, + { + "kind": "multiply", + "input": 3, + "variable": 3 + }, + { + "kind": "multiply", + "input": 3, + "variable": 4 + }, + { + "kind": "multiply", + "input": 3, + "variable": 6 + }, + { + "kind": "multiply", + "input": 3, + "variable": 7 + }, + { + "kind": "multiply", + "input": 3, + "variable": 9 + }, + { + "kind": "multiply", + "input": 3, + "variable": 10 + }, + { + "kind": "multiply", + "input": 3, + "variable": 11 + }, + { + "kind": "multiply", + "input": 3, + "variable": 12 + }, + { + "kind": "multiply", + "input": 3, + "variable": 14 + }, + { + "kind": "multiply", + "input": 3, + "variable": 15 + }, + { + "kind": "multiply", + "input": 3, + "variable": 16 + }, + { + "kind": "multiply", + "input": 3, + "variable": 17 + }, + { + "kind": "multiply", + "input": 3, + "variable": 18 + }, + { + "kind": "multiply", + "input": 3, + "variable": 19 + }, + { + "kind": "multiply", + "input": 3, + "variable": 20 + }, + { + "kind": "multiply", + "input": 3, + "variable": 21 + }, + { + "kind": "multiply", + "input": 3, + "variable": 22 + }, + { + "kind": "multiply", + "input": 3, + "variable": 23 + }, + { + "kind": "multiply", + "input": 3, + "variable": 24 + }, + { + "kind": "multiply", + "input": 3, + "variable": 25 + }, + { + "kind": "multiply", + "input": 3, + "variable": 26 + }, + { + "kind": "multiply", + "input": 3, + "variable": 27 + }, + { + "kind": "multiply", + "input": 3, + "variable": 28 + }, + { + "kind": "multiply", + "input": 3, + "variable": 29 + }, + { + "kind": "multiply", + "input": 3, + "variable": 31 + }, + { + "kind": "multiply", + "input": 3, + "variable": 32 + }, + { + "kind": "multiply", + "input": 3, + "variable": 36 + }, + { + "kind": "multiply", + "input": 4, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 163, + 63, + 62, + 61, + 4 + ] + }, + { + "kind": "multiply", + "input": 4, + "variable": 1 + }, + { + "kind": "multiply", + "input": 4, + "variable": 2 + }, + { + "kind": "multiply", + "input": 4, + "variable": 3 + }, + { + "kind": "multiply", + "input": 4, + "variable": 4 + }, + { + "kind": "multiply", + "input": 4, + "variable": 6 + }, + { + "kind": "multiply", + "input": 4, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 170, + 142, + 141, + 140, + 169 + ] + }, + { + "kind": "multiply", + "input": 4, + "variable": 13 + }, + { + "kind": "multiply", + "input": 4, + "variable": 14 + }, + { + "kind": "multiply", + "input": 4, + "variable": 15 + }, + { + "kind": "multiply", + "input": 4, + "variable": 16 + }, + { + "kind": "multiply", + "input": 4, + "variable": 17 + }, + { + "kind": "multiply", + "input": 4, + "variable": 18 + }, + { + "kind": "multiply", + "input": 4, + "variable": 19 + }, + { + "kind": "multiply", + "input": 4, + "variable": 20 + }, + { + "kind": "multiply", + "input": 4, + "variable": 21 + }, + { + "kind": "multiply", + "input": 4, + "variable": 22 + }, + { + "kind": "multiply", + "input": 4, + "variable": 23 + }, + { + "kind": "multiply", + "input": 4, + "variable": 24 + }, + { + "kind": "multiply", + "input": 4, + "variable": 25 + }, + { + "kind": "multiply", + "input": 4, + "variable": 26 + }, + { + "kind": "multiply", + "input": 4, + "variable": 27 + }, + { + "kind": "multiply", + "input": 4, + "variable": 28 + }, + { + "kind": "multiply", + "input": 4, + "variable": 29 + }, + { + "kind": "multiply", + "input": 4, + "variable": 30 + }, + { + "kind": "multiply", + "input": 4, + "variable": 31 + }, + { + "kind": "multiply", + "input": 4, + "variable": 32 + }, + { + "kind": "multiply", + "input": 4, + "variable": 33 + }, + { + "kind": "multiply", + "input": 4, + "variable": 34 + }, + { + "kind": "multiply", + "input": 4, + "variable": 35 + }, + { + "kind": "multiply", + "input": 4, + "variable": 36 + }, + { + "kind": "multiply", + "input": 4, + "variable": 37 + }, + { + "kind": "multiply", + "input": 4, + "variable": 38 + }, + { + "kind": "multiply", + "input": 4, + "variable": 39 + }, + { + "kind": "multiply", + "input": 5, + "variable": 1 + }, + { + "kind": "multiply", + "input": 5, + "variable": 6 + }, + { + "kind": "multiply", + "input": 5, + "variable": 7 + }, + { + "kind": "multiply", + "input": 5, + "variable": 13 + }, + { + "kind": "multiply", + "input": 5, + "variable": 14 + }, + { + "kind": "multiply", + "input": 5, + "variable": 15 + }, + { + "kind": "multiply", + "input": 5, + "variable": 16 + }, + { + "kind": "multiply", + "input": 5, + "variable": 17 + }, + { + "kind": "multiply", + "input": 5, + "variable": 18 + }, + { + "kind": "multiply", + "input": 5, + "variable": 19 + }, + { + "kind": "multiply", + "input": 5, + "variable": 20 + }, + { + "kind": "multiply", + "input": 5, + "variable": 21 + }, + { + "kind": "multiply", + "input": 5, + "variable": 23 + }, + { + "kind": "multiply", + "input": 5, + "variable": 24 + }, + { + "kind": "multiply", + "input": 5, + "variable": 26 + }, + { + "kind": "multiply", + "input": 5, + "variable": 27 + }, + { + "kind": "multiply", + "input": 5, + "variable": 28 + }, + { + "kind": "multiply", + "input": 5, + "variable": 29 + }, + { + "kind": "multiply", + "input": 5, + "variable": 30 + }, + { + "kind": "multiply", + "input": 5, + "variable": 31 + }, + { + "kind": "multiply", + "input": 5, + "variable": 33 + }, + { + "kind": "multiply", + "input": 5, + "variable": 34 + }, + { + "kind": "multiply", + "input": 5, + "variable": 35 + }, + { + "kind": "multiply", + "input": 5, + "variable": 36 + }, + { + "kind": "multiply", + "input": 5, + "variable": 37 + }, + { + "kind": "multiply", + "input": 5, + "variable": 38 + }, + { + "kind": "multiply", + "input": 5, + "variable": 39 + }, + { + "kind": "multiply", + "input": 6, + "variable": 2 + }, + { + "kind": "multiply", + "input": 6, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 227, + 94, + 226, + 7 + ] + }, + { + "kind": "multiply", + "input": 6, + "variable": 9 + }, + { + "kind": "multiply", + "input": 6, + "variable": 10 + }, + { + "kind": "multiply", + "input": 6, + "variable": 11 + }, + { + "kind": "multiply", + "input": 6, + "variable": 12 + }, + { + "kind": "multiply", + "input": 6, + "variable": 15 + }, + { + "kind": "multiply", + "input": 6, + "variable": 16 + }, + { + "kind": "multiply", + "input": 6, + "variable": 17 + }, + { + "kind": "multiply", + "input": 6, + "variable": 27 + }, + { + "kind": "multiply", + "input": 6, + "variable": 29 + }, + { + "kind": "multiply", + "input": 6, + "variable": 31 + }, + { + "kind": "multiply", + "input": 6, + "variable": 34 + }, + { + "kind": "multiply", + "input": 6, + "variable": 35 + }, + { + "kind": "multiply", + "input": 6, + "variable": 37 + }, + { + "kind": "multiply", + "input": 6, + "variable": 38 + }, + { + "kind": "multiply", + "input": 7, + "variable": 1 + }, + { + "kind": "multiply", + "input": 7, + "variable": 6 + }, + { + "kind": "multiply", + "input": 7, + "variable": 7 + }, + { + "kind": "multiply", + "input": 7, + "variable": 9 + }, + { + "kind": "multiply", + "input": 7, + "variable": 10 + }, + { + "kind": "multiply", + "input": 7, + "variable": 11 + }, + { + "kind": "multiply", + "input": 7, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 249, + 202, + 248, + 247, + 246 + ] + }, + { + "kind": "multiply", + "input": 7, + "variable": 14 + }, + { + "kind": "multiply", + "input": 7, + "variable": 15 + }, + { + "kind": "multiply", + "input": 7, + "variable": 16 + }, + { + "kind": "multiply", + "input": 7, + "variable": 17 + }, + { + "kind": "multiply", + "input": 7, + "variable": 18 + }, + { + "kind": "multiply", + "input": 7, + "variable": 19 + }, + { + "kind": "multiply", + "input": 7, + "variable": 20 + }, + { + "kind": "multiply", + "input": 7, + "variable": 21 + }, + { + "kind": "multiply", + "input": 7, + "variable": 23 + }, + { + "kind": "multiply", + "input": 7, + "variable": 24 + }, + { + "kind": "multiply", + "input": 7, + "variable": 26 + }, + { + "kind": "multiply", + "input": 7, + "variable": 27 + }, + { + "kind": "multiply", + "input": 7, + "variable": 28 + }, + { + "kind": "multiply", + "input": 7, + "variable": 29 + }, + { + "kind": "multiply", + "input": 7, + "variable": 30 + }, + { + "kind": "multiply", + "input": 7, + "variable": 31 + }, + { + "kind": "multiply", + "input": 7, + "variable": 34 + }, + { + "kind": "multiply", + "input": 7, + "variable": 35 + }, + { + "kind": "multiply", + "input": 7, + "variable": 36 + }, + { + "kind": "multiply", + "input": 7, + "variable": 37 + }, + { + "kind": "multiply", + "input": 7, + "variable": 38 + }, + { + "kind": "multiply", + "input": 7, + "variable": 39 + }, + { + "kind": "multiply", + "input": 8, + "variable": 9 + }, + { + "kind": "multiply", + "input": 8, + "variable": 10 + }, + { + "kind": "multiply", + "input": 8, + "variable": 11 + }, + { + "kind": "multiply", + "input": 8, + "variable": 15 + }, + { + "kind": "multiply", + "input": 8, + "variable": 16 + }, + { + "kind": "multiply", + "input": 8, + "variable": 17 + }, + { + "kind": "multiply", + "input": 8, + "variable": 20 + }, + { + "kind": "multiply", + "input": 9, + "variable": 2 + }, + { + "kind": "multiply", + "input": 9, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 281, + 95, + 280, + 11 + ] + }, + { + "kind": "multiply", + "input": 9, + "variable": 4 + }, + { + "kind": "multiply", + "input": 9, + "variable": 8 + }, + { + "kind": "multiply", + "input": 9, + "variable": 9 + }, + { + "kind": "multiply", + "input": 9, + "variable": 10 + }, + { + "kind": "multiply", + "input": 9, + "variable": 11 + }, + { + "kind": "multiply", + "input": 9, + "variable": 12 + }, + { + "kind": "multiply", + "input": 9, + "variable": 15 + }, + { + "kind": "multiply", + "input": 9, + "variable": 16 + }, + { + "kind": "multiply", + "input": 9, + "variable": 17 + }, + { + "kind": "multiply", + "input": 9, + "variable": 26 + }, + { + "kind": "multiply", + "input": 9, + "variable": 28 + }, + { + "kind": "multiply", + "input": 9, + "variable": 29 + }, + { + "kind": "multiply", + "input": 9, + "variable": 30 + }, + { + "kind": "multiply", + "input": 9, + "variable": 31 + }, + { + "kind": "multiply", + "input": 9, + "variable": 33 + }, + { + "kind": "multiply", + "input": 9, + "variable": 34 + }, + { + "kind": "multiply", + "input": 9, + "variable": 35 + }, + { + "kind": "multiply", + "input": 9, + "variable": 37 + }, + { + "kind": "multiply", + "input": 9, + "variable": 38 + }, + { + "kind": "multiply", + "input": 9, + "variable": 39 + }, + { + "kind": "multiply", + "input": 10, + "variable": 3 + }, + { + "kind": "multiply", + "input": 10, + "variable": 4 + }, + { + "kind": "multiply", + "input": 10, + "variable": 6 + }, + { + "kind": "multiply", + "input": 10, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 306, + 144, + 305 + ] + }, + { + "kind": "multiply", + "input": 10, + "variable": 9 + }, + { + "kind": "multiply", + "input": 10, + "variable": 10 + }, + { + "kind": "multiply", + "input": 10, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 310, + 173, + 309, + 308 + ] + }, + { + "kind": "multiply", + "input": 10, + "variable": 15 + }, + { + "kind": "multiply", + "input": 10, + "variable": 16 + }, + { + "kind": "multiply", + "input": 10, + "variable": 18 + }, + { + "kind": "multiply", + "input": 10, + "variable": 19 + }, + { + "kind": "multiply", + "input": 10, + "variable": 20 + }, + { + "kind": "multiply", + "input": 10, + "variable": 21 + }, + { + "kind": "multiply", + "input": 10, + "variable": 23 + }, + { + "kind": "multiply", + "input": 10, + "variable": 24 + }, + { + "kind": "multiply", + "input": 10, + "variable": 26 + }, + { + "kind": "multiply", + "input": 10, + "variable": 27 + }, + { + "kind": "multiply", + "input": 10, + "variable": 28 + }, + { + "kind": "multiply", + "input": 10, + "variable": 29 + }, + { + "kind": "multiply", + "input": 10, + "variable": 30 + }, + { + "kind": "multiply", + "input": 10, + "variable": 31 + }, + { + "kind": "multiply", + "input": 10, + "variable": 35 + }, + { + "kind": "multiply", + "input": 10, + "variable": 37 + }, + { + "kind": "multiply", + "input": 10, + "variable": 38 + }, + { + "kind": "multiply", + "input": 10, + "variable": 39 + }, + { + "kind": "multiply", + "input": 11, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 330, + 283, + 95, + 280, + 282, + 9 + ] + }, + { + "kind": "multiply", + "input": 11, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 332, + 304, + 303, + 11, + 10 + ] + }, + { + "kind": "multiply", + "input": 11, + "variable": 5 + }, + { + "kind": "multiply", + "input": 11, + "variable": 9 + }, + { + "kind": "multiply", + "input": 11, + "variable": 10 + }, + { + "kind": "multiply", + "input": 11, + "variable": 11 + }, + { + "kind": "multiply", + "input": 11, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 338, + 203, + 337, + 336, + 335 + ] + }, + { + "kind": "multiply", + "input": 11, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 340, + 251 + ] + }, + { + "kind": "multiply", + "input": 11, + "variable": 15 + }, + { + "kind": "multiply", + "input": 11, + "variable": 16 + }, + { + "kind": "multiply", + "input": 11, + "variable": 17 + }, + { + "kind": "multiply", + "input": 11, + "variable": 18 + }, + { + "kind": "multiply", + "input": 11, + "variable": 26 + }, + { + "kind": "multiply", + "input": 11, + "variable": 27 + }, + { + "kind": "multiply", + "input": 11, + "variable": 28 + }, + { + "kind": "multiply", + "input": 11, + "variable": 29 + }, + { + "kind": "multiply", + "input": 11, + "variable": 30 + }, + { + "kind": "multiply", + "input": 11, + "variable": 31 + }, + { + "kind": "multiply", + "input": 11, + "variable": 32 + }, + { + "kind": "multiply", + "input": 11, + "variable": 34 + }, + { + "kind": "multiply", + "input": 11, + "variable": 35 + }, + { + "kind": "multiply", + "input": 11, + "variable": 37 + }, + { + "kind": "multiply", + "input": 11, + "variable": 38 + }, + { + "kind": "multiply", + "input": 11, + "variable": 39 + }, + { + "kind": "multiply", + "input": 12, + "variable": 3 + }, + { + "kind": "multiply", + "input": 12, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 359, + 334, + 358, + 12, + 11 + ] + }, + { + "kind": "multiply", + "input": 12, + "variable": 9 + }, + { + "kind": "multiply", + "input": 12, + "variable": 10 + }, + { + "kind": "multiply", + "input": 12, + "variable": 11 + }, + { + "kind": "multiply", + "input": 12, + "variable": 15 + }, + { + "kind": "multiply", + "input": 12, + "variable": 16 + }, + { + "kind": "multiply", + "input": 12, + "variable": 26 + }, + { + "kind": "multiply", + "input": 12, + "variable": 28 + }, + { + "kind": "multiply", + "input": 12, + "variable": 29 + }, + { + "kind": "multiply", + "input": 12, + "variable": 30 + }, + { + "kind": "multiply", + "input": 12, + "variable": 37 + }, + { + "kind": "multiply", + "input": 12, + "variable": 38 + }, + { + "kind": "multiply", + "input": 13, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 372, + 341, + 11, + 7 + ] + }, + { + "kind": "multiply", + "input": 13, + "variable": 9 + }, + { + "kind": "multiply", + "input": 13, + "variable": 10 + }, + { + "kind": "multiply", + "input": 13, + "variable": 11 + }, + { + "kind": "multiply", + "input": 13, + "variable": 15 + }, + { + "kind": "multiply", + "input": 13, + "variable": 16 + }, + { + "kind": "multiply", + "input": 13, + "variable": 17 + }, + { + "kind": "multiply", + "input": 13, + "variable": 26 + }, + { + "kind": "multiply", + "input": 13, + "variable": 28 + }, + { + "kind": "multiply", + "input": 13, + "variable": 29 + }, + { + "kind": "multiply", + "input": 13, + "variable": 30 + }, + { + "kind": "multiply", + "input": 13, + "variable": 31 + }, + { + "kind": "multiply", + "input": 13, + "variable": 37 + }, + { + "kind": "multiply", + "input": 13, + "variable": 38 + }, + { + "kind": "multiply", + "input": 14, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 387, + 68, + 66, + 65, + 14 + ] + }, + { + "kind": "multiply", + "input": 14, + "variable": 1 + }, + { + "kind": "multiply", + "input": 14, + "variable": 2 + }, + { + "kind": "multiply", + "input": 14, + "variable": 3 + }, + { + "kind": "multiply", + "input": 14, + "variable": 4 + }, + { + "kind": "multiply", + "input": 14, + "variable": 6 + }, + { + "kind": "multiply", + "input": 14, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 394, + 148, + 146, + 145, + 393 + ] + }, + { + "kind": "multiply", + "input": 14, + "variable": 9 + }, + { + "kind": "multiply", + "input": 14, + "variable": 10 + }, + { + "kind": "multiply", + "input": 14, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 398, + 177, + 175, + 174, + 397, + 396, + 16 + ] + }, + { + "kind": "multiply", + "input": 14, + "variable": 12 + }, + { + "kind": "multiply", + "input": 14, + "variable": 13 + }, + { + "kind": "multiply", + "input": 14, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 402, + 314, + 313, + 312 + ] + }, + { + "kind": "multiply", + "input": 14, + "variable": 19 + }, + { + "kind": "multiply", + "input": 14, + "variable": 20 + }, + { + "kind": "multiply", + "input": 14, + "variable": 21 + }, + { + "kind": "multiply", + "input": 14, + "variable": 22 + }, + { + "kind": "multiply", + "input": 14, + "variable": 23 + }, + { + "kind": "multiply", + "input": 14, + "variable": 24 + }, + { + "kind": "multiply", + "input": 14, + "variable": 25 + }, + { + "kind": "multiply", + "input": 14, + "variable": 26 + }, + { + "kind": "multiply", + "input": 14, + "variable": 27 + }, + { + "kind": "multiply", + "input": 14, + "variable": 28 + }, + { + "kind": "multiply", + "input": 14, + "variable": 29 + }, + { + "kind": "multiply", + "input": 14, + "variable": 30 + }, + { + "kind": "multiply", + "input": 14, + "variable": 31 + }, + { + "kind": "multiply", + "input": 14, + "variable": 32 + }, + { + "kind": "multiply", + "input": 14, + "variable": 33 + }, + { + "kind": "multiply", + "input": 14, + "variable": 34 + }, + { + "kind": "multiply", + "input": 14, + "variable": 35 + }, + { + "kind": "multiply", + "input": 14, + "variable": 36 + }, + { + "kind": "multiply", + "input": 14, + "variable": 37 + }, + { + "kind": "multiply", + "input": 14, + "variable": 38 + }, + { + "kind": "multiply", + "input": 14, + "variable": 39 + }, + { + "kind": "multiply", + "input": 15, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 425, + 392 + ] + }, + { + "kind": "multiply", + "input": 15, + "variable": 5 + }, + { + "kind": "multiply", + "input": 15, + "variable": 9 + }, + { + "kind": "multiply", + "input": 15, + "variable": 10 + }, + { + "kind": "multiply", + "input": 15, + "variable": 11 + }, + { + "kind": "multiply", + "input": 15, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 431, + 207, + 206, + 205, + 204, + 430, + 429, + 428 + ] + }, + { + "kind": "multiply", + "input": 15, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 433, + 255, + 254, + 253, + 252 + ] + }, + { + "kind": "multiply", + "input": 15, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 435, + 345, + 344, + 343, + 342 + ] + }, + { + "kind": "multiply", + "input": 15, + "variable": 26 + }, + { + "kind": "multiply", + "input": 15, + "variable": 27 + }, + { + "kind": "multiply", + "input": 15, + "variable": 28 + }, + { + "kind": "multiply", + "input": 15, + "variable": 29 + }, + { + "kind": "multiply", + "input": 15, + "variable": 30 + }, + { + "kind": "multiply", + "input": 15, + "variable": 31 + }, + { + "kind": "multiply", + "input": 15, + "variable": 33 + }, + { + "kind": "multiply", + "input": 15, + "variable": 34 + }, + { + "kind": "multiply", + "input": 15, + "variable": 35 + }, + { + "kind": "multiply", + "input": 15, + "variable": 37 + }, + { + "kind": "multiply", + "input": 15, + "variable": 38 + }, + { + "kind": "multiply", + "input": 15, + "variable": 39 + }, + { + "kind": "multiply", + "input": 16, + "variable": 0 + }, + { + "kind": "multiply", + "input": 16, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 450, + 400, + 177, + 176, + 174 + ] + }, + { + "kind": "multiply", + "input": 16, + "variable": 2 + }, + { + "kind": "multiply", + "input": 16, + "variable": 3 + }, + { + "kind": "multiply", + "input": 16, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 454, + 207, + 205, + 204 + ] + }, + { + "kind": "multiply", + "input": 16, + "variable": 6 + }, + { + "kind": "multiply", + "input": 16, + "variable": 7 + }, + { + "kind": "multiply", + "input": 16, + "variable": 8 + }, + { + "kind": "multiply", + "input": 16, + "variable": 13 + }, + { + "kind": "multiply", + "input": 16, + "variable": 14 + }, + { + "kind": "multiply", + "input": 16, + "variable": 19 + }, + { + "kind": "multiply", + "input": 16, + "variable": 20 + }, + { + "kind": "multiply", + "input": 16, + "variable": 21 + }, + { + "kind": "multiply", + "input": 16, + "variable": 23 + }, + { + "kind": "multiply", + "input": 16, + "variable": 24 + }, + { + "kind": "multiply", + "input": 16, + "variable": 26 + }, + { + "kind": "multiply", + "input": 16, + "variable": 27 + }, + { + "kind": "multiply", + "input": 16, + "variable": 28 + }, + { + "kind": "multiply", + "input": 16, + "variable": 29 + }, + { + "kind": "multiply", + "input": 16, + "variable": 30 + }, + { + "kind": "multiply", + "input": 16, + "variable": 31 + }, + { + "kind": "multiply", + "input": 16, + "variable": 33 + }, + { + "kind": "multiply", + "input": 16, + "variable": 34 + }, + { + "kind": "multiply", + "input": 16, + "variable": 35 + }, + { + "kind": "multiply", + "input": 16, + "variable": 36 + }, + { + "kind": "multiply", + "input": 17, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 476, + 235, + 234, + 233, + 17 + ] + }, + { + "kind": "multiply", + "input": 17, + "variable": 1 + }, + { + "kind": "multiply", + "input": 17, + "variable": 2 + }, + { + "kind": "multiply", + "input": 17, + "variable": 3 + }, + { + "kind": "multiply", + "input": 17, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 481, + 254, + 253, + 252, + 480, + 479, + 17, + 15 + ] + }, + { + "kind": "multiply", + "input": 17, + "variable": 6 + }, + { + "kind": "multiply", + "input": 17, + "variable": 7 + }, + { + "kind": "multiply", + "input": 17, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 485, + 278, + 277, + 276, + 484, + 483, + 17, + 395 + ] + }, + { + "kind": "multiply", + "input": 17, + "variable": 9 + }, + { + "kind": "multiply", + "input": 17, + "variable": 10 + }, + { + "kind": "multiply", + "input": 17, + "variable": 11 + }, + { + "kind": "multiply", + "input": 17, + "variable": 12 + }, + { + "kind": "multiply", + "input": 17, + "variable": 13 + }, + { + "kind": "multiply", + "input": 17, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 492, + 379, + 378, + 377 + ] + }, + { + "kind": "multiply", + "input": 17, + "variable": 20 + }, + { + "kind": "multiply", + "input": 17, + "variable": 23 + }, + { + "kind": "multiply", + "input": 17, + "variable": 24 + }, + { + "kind": "multiply", + "input": 17, + "variable": 25 + }, + { + "kind": "multiply", + "input": 17, + "variable": 26 + }, + { + "kind": "multiply", + "input": 17, + "variable": 27 + }, + { + "kind": "multiply", + "input": 17, + "variable": 28 + }, + { + "kind": "multiply", + "input": 17, + "variable": 29 + }, + { + "kind": "multiply", + "input": 17, + "variable": 31 + }, + { + "kind": "multiply", + "input": 17, + "variable": 32 + }, + { + "kind": "multiply", + "input": 17, + "variable": 33 + }, + { + "kind": "multiply", + "input": 17, + "variable": 34 + }, + { + "kind": "multiply", + "input": 17, + "variable": 35 + }, + { + "kind": "multiply", + "input": 17, + "variable": 38 + }, + { + "kind": "multiply", + "input": 17, + "variable": 39 + }, + { + "kind": "multiply", + "input": 18, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 509, + 71, + 70, + 69, + 18 + ] + }, + { + "kind": "multiply", + "input": 18, + "variable": 2 + }, + { + "kind": "multiply", + "input": 18, + "variable": 3 + }, + { + "kind": "multiply", + "input": 18, + "variable": 4 + }, + { + "kind": "multiply", + "input": 18, + "variable": 6 + }, + { + "kind": "multiply", + "input": 18, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 515, + 151, + 150, + 149, + 514, + 19 + ] + }, + { + "kind": "multiply", + "input": 18, + "variable": 8 + }, + { + "kind": "multiply", + "input": 18, + "variable": 9 + }, + { + "kind": "multiply", + "input": 18, + "variable": 10 + }, + { + "kind": "multiply", + "input": 18, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 520, + 180, + 179, + 178, + 519, + 518, + 20 + ] + }, + { + "kind": "multiply", + "input": 18, + "variable": 12 + }, + { + "kind": "multiply", + "input": 18, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 523, + 317, + 316, + 315 + ] + }, + { + "kind": "multiply", + "input": 18, + "variable": 15 + }, + { + "kind": "multiply", + "input": 18, + "variable": 16 + }, + { + "kind": "multiply", + "input": 18, + "variable": 17 + }, + { + "kind": "multiply", + "input": 18, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 528, + 406, + 405, + 404, + 526, + 525 + ] + }, + { + "kind": "multiply", + "input": 18, + "variable": 23 + }, + { + "kind": "multiply", + "input": 18, + "variable": 24 + }, + { + "kind": "multiply", + "input": 18, + "variable": 25 + }, + { + "kind": "multiply", + "input": 18, + "variable": 26 + }, + { + "kind": "multiply", + "input": 18, + "variable": 27 + }, + { + "kind": "multiply", + "input": 18, + "variable": 28 + }, + { + "kind": "multiply", + "input": 18, + "variable": 31 + }, + { + "kind": "multiply", + "input": 18, + "variable": 32 + }, + { + "kind": "multiply", + "input": 18, + "variable": 36 + }, + { + "kind": "multiply", + "input": 19, + "variable": 0 + }, + { + "kind": "multiply", + "input": 19, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 540, + 517, + 152, + 150, + 149, + 514 + ] + }, + { + "kind": "multiply", + "input": 19, + "variable": 2 + }, + { + "kind": "multiply", + "input": 19, + "variable": 3 + }, + { + "kind": "multiply", + "input": 19, + "variable": 4 + }, + { + "kind": "multiply", + "input": 19, + "variable": 6 + }, + { + "kind": "multiply", + "input": 19, + "variable": 7 + }, + { + "kind": "multiply", + "input": 19, + "variable": 8 + }, + { + "kind": "multiply", + "input": 19, + "variable": 9 + }, + { + "kind": "multiply", + "input": 19, + "variable": 10 + }, + { + "kind": "multiply", + "input": 19, + "variable": 11 + }, + { + "kind": "multiply", + "input": 19, + "variable": 12 + }, + { + "kind": "multiply", + "input": 19, + "variable": 14 + }, + { + "kind": "multiply", + "input": 19, + "variable": 15 + }, + { + "kind": "multiply", + "input": 19, + "variable": 16 + }, + { + "kind": "multiply", + "input": 19, + "variable": 17 + }, + { + "kind": "multiply", + "input": 19, + "variable": 18 + }, + { + "kind": "multiply", + "input": 19, + "variable": 23 + }, + { + "kind": "multiply", + "input": 19, + "variable": 24 + }, + { + "kind": "multiply", + "input": 19, + "variable": 25 + }, + { + "kind": "multiply", + "input": 19, + "variable": 26 + }, + { + "kind": "multiply", + "input": 19, + "variable": 27 + }, + { + "kind": "multiply", + "input": 19, + "variable": 28 + }, + { + "kind": "multiply", + "input": 19, + "variable": 29 + }, + { + "kind": "multiply", + "input": 19, + "variable": 30 + }, + { + "kind": "multiply", + "input": 19, + "variable": 36 + }, + { + "kind": "multiply", + "input": 20, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 566, + 522, + 181, + 179, + 178, + 519 + ] + }, + { + "kind": "multiply", + "input": 20, + "variable": 3 + }, + { + "kind": "multiply", + "input": 20, + "variable": 7 + }, + { + "kind": "multiply", + "input": 20, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 570, + 551 + ] + }, + { + "kind": "multiply", + "input": 20, + "variable": 15 + }, + { + "kind": "multiply", + "input": 20, + "variable": 16 + }, + { + "kind": "multiply", + "input": 20, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 574, + 463, + 462, + 461, + 573, + 572 + ] + }, + { + "kind": "multiply", + "input": 20, + "variable": 23 + }, + { + "kind": "multiply", + "input": 20, + "variable": 25 + }, + { + "kind": "multiply", + "input": 20, + "variable": 26 + }, + { + "kind": "multiply", + "input": 20, + "variable": 27 + }, + { + "kind": "multiply", + "input": 20, + "variable": 28 + }, + { + "kind": "multiply", + "input": 20, + "variable": 36 + }, + { + "kind": "multiply", + "input": 21, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 582, + 73, + 72, + 21 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 2 + }, + { + "kind": "multiply", + "input": 21, + "variable": 3 + }, + { + "kind": "multiply", + "input": 21, + "variable": 4 + }, + { + "kind": "multiply", + "input": 21, + "variable": 6 + }, + { + "kind": "multiply", + "input": 21, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 588, + 154, + 153, + 587, + 22 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 8 + }, + { + "kind": "multiply", + "input": 21, + "variable": 9 + }, + { + "kind": "multiply", + "input": 21, + "variable": 10 + }, + { + "kind": "multiply", + "input": 21, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 593, + 183, + 182, + 592, + 591 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 595, + 319, + 318 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 15 + }, + { + "kind": "multiply", + "input": 21, + "variable": 16 + }, + { + "kind": "multiply", + "input": 21, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 599, + 409, + 408, + 598, + 597 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 19 + }, + { + "kind": "multiply", + "input": 21, + "variable": 20 + }, + { + "kind": "multiply", + "input": 21, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 603, + 531, + 530, + 602, + 601, + 24 + ] + }, + { + "kind": "multiply", + "input": 21, + "variable": 22 + }, + { + "kind": "multiply", + "input": 21, + "variable": 26 + }, + { + "kind": "multiply", + "input": 21, + "variable": 27 + }, + { + "kind": "multiply", + "input": 21, + "variable": 28 + }, + { + "kind": "multiply", + "input": 21, + "variable": 29 + }, + { + "kind": "multiply", + "input": 21, + "variable": 30 + }, + { + "kind": "multiply", + "input": 21, + "variable": 32 + }, + { + "kind": "multiply", + "input": 21, + "variable": 36 + }, + { + "kind": "multiply", + "input": 22, + "variable": 0 + }, + { + "kind": "multiply", + "input": 22, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 614, + 590, + 155, + 153, + 587, + 22 + ] + }, + { + "kind": "multiply", + "input": 22, + "variable": 2 + }, + { + "kind": "multiply", + "input": 22, + "variable": 4 + }, + { + "kind": "multiply", + "input": 22, + "variable": 6 + }, + { + "kind": "multiply", + "input": 22, + "variable": 7 + }, + { + "kind": "multiply", + "input": 22, + "variable": 8 + }, + { + "kind": "multiply", + "input": 22, + "variable": 9 + }, + { + "kind": "multiply", + "input": 22, + "variable": 10 + }, + { + "kind": "multiply", + "input": 22, + "variable": 11 + }, + { + "kind": "multiply", + "input": 22, + "variable": 12 + }, + { + "kind": "multiply", + "input": 22, + "variable": 14 + }, + { + "kind": "multiply", + "input": 22, + "variable": 15 + }, + { + "kind": "multiply", + "input": 22, + "variable": 16 + }, + { + "kind": "multiply", + "input": 22, + "variable": 17 + }, + { + "kind": "multiply", + "input": 22, + "variable": 18 + }, + { + "kind": "multiply", + "input": 22, + "variable": 19 + }, + { + "kind": "multiply", + "input": 22, + "variable": 20 + }, + { + "kind": "multiply", + "input": 22, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 632, + 558, + 557, + 631, + 630 + ] + }, + { + "kind": "multiply", + "input": 22, + "variable": 22 + }, + { + "kind": "multiply", + "input": 22, + "variable": 26 + }, + { + "kind": "multiply", + "input": 22, + "variable": 27 + }, + { + "kind": "multiply", + "input": 22, + "variable": 28 + }, + { + "kind": "multiply", + "input": 22, + "variable": 29 + }, + { + "kind": "multiply", + "input": 22, + "variable": 30 + }, + { + "kind": "multiply", + "input": 22, + "variable": 36 + }, + { + "kind": "multiply", + "input": 23, + "variable": 9 + }, + { + "kind": "multiply", + "input": 23, + "variable": 10 + }, + { + "kind": "multiply", + "input": 23, + "variable": 11 + }, + { + "kind": "multiply", + "input": 23, + "variable": 15 + }, + { + "kind": "multiply", + "input": 23, + "variable": 16 + }, + { + "kind": "multiply", + "input": 23, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 646, + 497, + 496, + 495, + 645, + 644, + 600 + ] + }, + { + "kind": "multiply", + "input": 23, + "variable": 20 + }, + { + "kind": "multiply", + "input": 24, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 649, + 605, + 532, + 530, + 602 + ] + }, + { + "kind": "multiply", + "input": 24, + "variable": 6 + }, + { + "kind": "multiply", + "input": 24, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 652, + 633 + ] + }, + { + "kind": "multiply", + "input": 24, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 654, + 634, + 559, + 557, + 631 + ] + }, + { + "kind": "multiply", + "input": 24, + "variable": 10 + }, + { + "kind": "multiply", + "input": 24, + "variable": 12 + }, + { + "kind": "multiply", + "input": 24, + "variable": 36 + }, + { + "kind": "multiply", + "input": 25, + "variable": 1 + }, + { + "kind": "multiply", + "input": 25, + "variable": 5 + }, + { + "kind": "multiply", + "input": 25, + "variable": 9 + }, + { + "kind": "multiply", + "input": 25, + "variable": 10 + }, + { + "kind": "multiply", + "input": 25, + "variable": 11 + }, + { + "kind": "multiply", + "input": 25, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 664, + 215, + 214, + 213, + 663, + 662, + 661 + ] + }, + { + "kind": "multiply", + "input": 25, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 666, + 348, + 347, + 346 + ] + }, + { + "kind": "multiply", + "input": 25, + "variable": 15 + }, + { + "kind": "multiply", + "input": 25, + "variable": 16 + }, + { + "kind": "multiply", + "input": 25, + "variable": 17 + }, + { + "kind": "multiply", + "input": 25, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 671, + 439, + 438, + 437, + 670, + 669, + 668 + ] + }, + { + "kind": "multiply", + "input": 25, + "variable": 29 + }, + { + "kind": "multiply", + "input": 25, + "variable": 31 + }, + { + "kind": "multiply", + "input": 25, + "variable": 33 + }, + { + "kind": "multiply", + "input": 25, + "variable": 34 + }, + { + "kind": "multiply", + "input": 25, + "variable": 37 + }, + { + "kind": "multiply", + "input": 25, + "variable": 39 + }, + { + "kind": "multiply", + "input": 26, + "variable": 0 + }, + { + "kind": "multiply", + "input": 26, + "variable": 2 + }, + { + "kind": "multiply", + "input": 26, + "variable": 3 + }, + { + "kind": "multiply", + "input": 26, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 682, + 215, + 214, + 213 + ] + }, + { + "kind": "multiply", + "input": 26, + "variable": 13 + }, + { + "kind": "multiply", + "input": 26, + "variable": 14 + }, + { + "kind": "multiply", + "input": 26, + "variable": 15 + }, + { + "kind": "multiply", + "input": 26, + "variable": 16 + }, + { + "kind": "multiply", + "input": 26, + "variable": 17 + }, + { + "kind": "multiply", + "input": 26, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 689, + 468, + 467, + 466, + 687, + 686 + ] + }, + { + "kind": "multiply", + "input": 26, + "variable": 19 + }, + { + "kind": "multiply", + "input": 26, + "variable": 20 + }, + { + "kind": "multiply", + "input": 26, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 693, + 580, + 579, + 578, + 692, + 691 + ] + }, + { + "kind": "multiply", + "input": 26, + "variable": 23 + }, + { + "kind": "multiply", + "input": 26, + "variable": 24 + }, + { + "kind": "multiply", + "input": 26, + "variable": 29 + }, + { + "kind": "multiply", + "input": 26, + "variable": 30 + }, + { + "kind": "multiply", + "input": 26, + "variable": 31 + }, + { + "kind": "multiply", + "input": 26, + "variable": 33 + }, + { + "kind": "multiply", + "input": 26, + "variable": 34 + }, + { + "kind": "multiply", + "input": 26, + "variable": 35 + }, + { + "kind": "multiply", + "input": 26, + "variable": 37 + }, + { + "kind": "multiply", + "input": 26, + "variable": 38 + }, + { + "kind": "multiply", + "input": 26, + "variable": 39 + }, + { + "kind": "multiply", + "input": 27, + "variable": 2 + }, + { + "kind": "multiply", + "input": 27, + "variable": 3 + }, + { + "kind": "multiply", + "input": 27, + "variable": 9 + }, + { + "kind": "multiply", + "input": 27, + "variable": 10 + }, + { + "kind": "multiply", + "input": 27, + "variable": 11 + }, + { + "kind": "multiply", + "input": 27, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 711, + 684, + 710, + 709 + ] + }, + { + "kind": "multiply", + "input": 27, + "variable": 15 + }, + { + "kind": "multiply", + "input": 27, + "variable": 16 + }, + { + "kind": "multiply", + "input": 27, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 715, + 500, + 499, + 498, + 714, + 713, + 29 + ] + }, + { + "kind": "multiply", + "input": 27, + "variable": 18 + }, + { + "kind": "multiply", + "input": 27, + "variable": 30 + }, + { + "kind": "multiply", + "input": 27, + "variable": 33 + }, + { + "kind": "multiply", + "input": 27, + "variable": 34 + }, + { + "kind": "multiply", + "input": 27, + "variable": 37 + }, + { + "kind": "multiply", + "input": 27, + "variable": 39 + }, + { + "kind": "multiply", + "input": 28, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 723, + 293, + 292, + 28 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 725, + 322, + 320, + 28 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 727, + 667, + 25, + 11 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 3 + }, + { + "kind": "multiply", + "input": 28, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 730, + 348, + 346, + 729, + 28 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 5 + }, + { + "kind": "xor", + "inputs": [ + 732, + 367, + 366, + 28 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 8 + }, + { + "kind": "multiply", + "input": 28, + "variable": 9 + }, + { + "kind": "multiply", + "input": 28, + "variable": 10 + }, + { + "kind": "multiply", + "input": 28, + "variable": 11 + }, + { + "kind": "multiply", + "input": 28, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 738, + 685 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 740, + 381, + 380, + 28 + ] + }, + { + "kind": "multiply", + "input": 28, + "variable": 15 + }, + { + "kind": "multiply", + "input": 28, + "variable": 16 + }, + { + "kind": "multiply", + "input": 28, + "variable": 17 + }, + { + "kind": "multiply", + "input": 28, + "variable": 18 + }, + { + "kind": "multiply", + "input": 28, + "variable": 22 + }, + { + "kind": "multiply", + "input": 28, + "variable": 25 + }, + { + "kind": "multiply", + "input": 28, + "variable": 32 + }, + { + "kind": "multiply", + "input": 28, + "variable": 33 + }, + { + "kind": "multiply", + "input": 28, + "variable": 34 + }, + { + "kind": "multiply", + "input": 28, + "variable": 37 + }, + { + "kind": "multiply", + "input": 28, + "variable": 39 + }, + { + "kind": "multiply", + "input": 29, + "variable": 2 + }, + { + "kind": "multiply", + "input": 29, + "variable": 3 + }, + { + "kind": "multiply", + "input": 29, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 755, + 439, + 438, + 437 + ] + }, + { + "kind": "multiply", + "input": 29, + "variable": 9 + }, + { + "kind": "multiply", + "input": 29, + "variable": 10 + }, + { + "kind": "multiply", + "input": 29, + "variable": 11 + }, + { + "kind": "multiply", + "input": 29, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 760, + 468, + 467, + 466, + 688 + ] + }, + { + "kind": "multiply", + "input": 29, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 762, + 717, + 500, + 499, + 498 + ] + }, + { + "kind": "multiply", + "input": 29, + "variable": 33 + }, + { + "kind": "multiply", + "input": 29, + "variable": 34 + }, + { + "kind": "multiply", + "input": 29, + "variable": 35 + }, + { + "kind": "multiply", + "input": 29, + "variable": 37 + }, + { + "kind": "multiply", + "input": 29, + "variable": 38 + }, + { + "kind": "multiply", + "input": 29, + "variable": 39 + }, + { + "kind": "multiply", + "input": 30, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 770, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 30, + "variable": 2 + }, + { + "kind": "multiply", + "input": 30, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 773, + 110, + 108, + 772 + ] + }, + { + "kind": "multiply", + "input": 30, + "variable": 5 + }, + { + "kind": "xor", + "inputs": [ + 775, + 131, + 129, + 31 + ] + }, + { + "kind": "multiply", + "input": 30, + "variable": 8 + }, + { + "kind": "multiply", + "input": 30, + "variable": 9 + }, + { + "kind": "multiply", + "input": 30, + "variable": 10 + }, + { + "kind": "multiply", + "input": 30, + "variable": 11 + }, + { + "kind": "multiply", + "input": 30, + "variable": 12 + }, + { + "kind": "multiply", + "input": 30, + "variable": 15 + }, + { + "kind": "multiply", + "input": 30, + "variable": 17 + }, + { + "kind": "multiply", + "input": 30, + "variable": 18 + }, + { + "kind": "multiply", + "input": 30, + "variable": 20 + }, + { + "kind": "multiply", + "input": 30, + "variable": 22 + }, + { + "kind": "multiply", + "input": 30, + "variable": 25 + }, + { + "kind": "multiply", + "input": 30, + "variable": 26 + }, + { + "kind": "multiply", + "input": 30, + "variable": 27 + }, + { + "kind": "multiply", + "input": 30, + "variable": 32 + }, + { + "kind": "multiply", + "input": 30, + "variable": 34 + }, + { + "kind": "multiply", + "input": 30, + "variable": 35 + }, + { + "kind": "multiply", + "input": 30, + "variable": 37 + }, + { + "kind": "multiply", + "input": 30, + "variable": 38 + }, + { + "kind": "multiply", + "input": 30, + "variable": 39 + }, + { + "kind": "multiply", + "input": 31, + "variable": 2 + }, + { + "kind": "multiply", + "input": 31, + "variable": 3 + }, + { + "kind": "multiply", + "input": 31, + "variable": 4 + }, + { + "kind": "multiply", + "input": 31, + "variable": 9 + }, + { + "kind": "multiply", + "input": 31, + "variable": 10 + }, + { + "kind": "multiply", + "input": 31, + "variable": 11 + }, + { + "kind": "multiply", + "input": 31, + "variable": 15 + }, + { + "kind": "multiply", + "input": 31, + "variable": 16 + }, + { + "kind": "multiply", + "input": 31, + "variable": 26 + }, + { + "kind": "multiply", + "input": 31, + "variable": 27 + }, + { + "kind": "multiply", + "input": 31, + "variable": 32 + }, + { + "kind": "multiply", + "input": 31, + "variable": 37 + }, + { + "kind": "multiply", + "input": 31, + "variable": 38 + }, + { + "kind": "multiply", + "input": 32, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 809, + 781 + ] + }, + { + "kind": "multiply", + "input": 32, + "variable": 1 + }, + { + "kind": "multiply", + "input": 32, + "variable": 2 + }, + { + "kind": "multiply", + "input": 32, + "variable": 3 + }, + { + "kind": "multiply", + "input": 32, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 814, + 218, + 217, + 216 + ] + }, + { + "kind": "multiply", + "input": 32, + "variable": 6 + }, + { + "kind": "multiply", + "input": 32, + "variable": 14 + }, + { + "kind": "multiply", + "input": 32, + "variable": 15 + }, + { + "kind": "multiply", + "input": 32, + "variable": 16 + }, + { + "kind": "multiply", + "input": 32, + "variable": 17 + }, + { + "kind": "multiply", + "input": 32, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 821, + 471, + 470, + 469, + 819, + 818 + ] + }, + { + "kind": "multiply", + "input": 32, + "variable": 19 + }, + { + "kind": "multiply", + "input": 32, + "variable": 20 + }, + { + "kind": "multiply", + "input": 32, + "variable": 23 + }, + { + "kind": "multiply", + "input": 32, + "variable": 26 + }, + { + "kind": "multiply", + "input": 32, + "variable": 27 + }, + { + "kind": "multiply", + "input": 32, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 828, + 699, + 698, + 697, + 827, + 826 + ] + }, + { + "kind": "multiply", + "input": 32, + "variable": 33 + }, + { + "kind": "multiply", + "input": 32, + "variable": 34 + }, + { + "kind": "multiply", + "input": 32, + "variable": 35 + }, + { + "kind": "multiply", + "input": 33, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 833, + 415, + 414 + ] + }, + { + "kind": "multiply", + "input": 33, + "variable": 2 + }, + { + "kind": "multiply", + "input": 33, + "variable": 3 + }, + { + "kind": "multiply", + "input": 33, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 837, + 441, + 440 + ] + }, + { + "kind": "multiply", + "input": 33, + "variable": 9 + }, + { + "kind": "multiply", + "input": 33, + "variable": 10 + }, + { + "kind": "multiply", + "input": 33, + "variable": 11 + }, + { + "kind": "multiply", + "input": 33, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 842, + 470, + 469, + 820, + 819 + ] + }, + { + "kind": "multiply", + "input": 33, + "variable": 14 + }, + { + "kind": "multiply", + "input": 33, + "variable": 33 + }, + { + "kind": "multiply", + "input": 33, + "variable": 34 + }, + { + "kind": "multiply", + "input": 33, + "variable": 35 + }, + { + "kind": "multiply", + "input": 33, + "variable": 37 + }, + { + "kind": "multiply", + "input": 33, + "variable": 38 + }, + { + "kind": "multiply", + "input": 34, + "variable": 2 + }, + { + "kind": "multiply", + "input": 34, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 851, + 111, + 850 + ] + }, + { + "kind": "multiply", + "input": 34, + "variable": 9 + }, + { + "kind": "multiply", + "input": 34, + "variable": 10 + }, + { + "kind": "multiply", + "input": 34, + "variable": 11 + }, + { + "kind": "multiply", + "input": 34, + "variable": 15 + }, + { + "kind": "multiply", + "input": 34, + "variable": 16 + }, + { + "kind": "multiply", + "input": 34, + "variable": 26 + }, + { + "kind": "multiply", + "input": 34, + "variable": 27 + }, + { + "kind": "multiply", + "input": 34, + "variable": 29 + }, + { + "kind": "multiply", + "input": 34, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 861, + 790, + 860 + ] + }, + { + "kind": "multiply", + "input": 34, + "variable": 37 + }, + { + "kind": "multiply", + "input": 34, + "variable": 39 + }, + { + "kind": "multiply", + "input": 35, + "variable": 3 + }, + { + "kind": "multiply", + "input": 35, + "variable": 6 + }, + { + "kind": "multiply", + "input": 35, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 867, + 161, + 866 + ] + }, + { + "kind": "multiply", + "input": 35, + "variable": 9 + }, + { + "kind": "multiply", + "input": 35, + "variable": 10 + }, + { + "kind": "multiply", + "input": 35, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 871, + 191, + 870, + 869 + ] + }, + { + "kind": "multiply", + "input": 35, + "variable": 12 + }, + { + "kind": "multiply", + "input": 35, + "variable": 15 + }, + { + "kind": "multiply", + "input": 35, + "variable": 16 + }, + { + "kind": "multiply", + "input": 35, + "variable": 17 + }, + { + "kind": "multiply", + "input": 35, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 877, + 417, + 875, + 874 + ] + }, + { + "kind": "multiply", + "input": 35, + "variable": 19 + }, + { + "kind": "multiply", + "input": 35, + "variable": 20 + }, + { + "kind": "multiply", + "input": 35, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 881, + 537, + 880, + 879 + ] + }, + { + "kind": "multiply", + "input": 35, + "variable": 23 + }, + { + "kind": "multiply", + "input": 35, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 884, + 611, + 883 + ] + }, + { + "kind": "multiply", + "input": 35, + "variable": 26 + }, + { + "kind": "multiply", + "input": 35, + "variable": 27 + }, + { + "kind": "multiply", + "input": 35, + "variable": 29 + }, + { + "kind": "multiply", + "input": 35, + "variable": 31 + }, + { + "kind": "multiply", + "input": 35, + "variable": 33 + }, + { + "kind": "multiply", + "input": 35, + "variable": 34 + }, + { + "kind": "multiply", + "input": 35, + "variable": 37 + }, + { + "kind": "multiply", + "input": 35, + "variable": 38 + }, + { + "kind": "multiply", + "input": 35, + "variable": 39 + }, + { + "kind": "multiply", + "input": 36, + "variable": 3 + }, + { + "kind": "multiply", + "input": 36, + "variable": 9 + }, + { + "kind": "multiply", + "input": 36, + "variable": 10 + }, + { + "kind": "multiply", + "input": 36, + "variable": 11 + }, + { + "kind": "multiply", + "input": 36, + "variable": 15 + }, + { + "kind": "multiply", + "input": 36, + "variable": 16 + }, + { + "kind": "multiply", + "input": 36, + "variable": 26 + }, + { + "kind": "multiply", + "input": 36, + "variable": 27 + }, + { + "kind": "multiply", + "input": 36, + "variable": 29 + }, + { + "kind": "multiply", + "input": 36, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 904, + 806, + 903 + ] + }, + { + "kind": "multiply", + "input": 37, + "variable": 9 + }, + { + "kind": "multiply", + "input": 37, + "variable": 10 + }, + { + "kind": "multiply", + "input": 37, + "variable": 11 + }, + { + "kind": "multiply", + "input": 37, + "variable": 12 + }, + { + "kind": "multiply", + "input": 37, + "variable": 15 + }, + { + "kind": "multiply", + "input": 37, + "variable": 16 + }, + { + "kind": "multiply", + "input": 37, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 912, + 503, + 911, + 910 + ] + }, + { + "kind": "multiply", + "input": 37, + "variable": 26 + }, + { + "kind": "multiply", + "input": 37, + "variable": 27 + }, + { + "kind": "multiply", + "input": 37, + "variable": 33 + }, + { + "kind": "multiply", + "input": 37, + "variable": 34 + }, + { + "kind": "multiply", + "input": 37, + "variable": 37 + }, + { + "kind": "multiply", + "input": 38, + "variable": 3 + }, + { + "kind": "multiply", + "input": 38, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 920, + 352, + 919, + 38, + 11 + ] + }, + { + "kind": "multiply", + "input": 38, + "variable": 9 + }, + { + "kind": "multiply", + "input": 38, + "variable": 10 + }, + { + "kind": "multiply", + "input": 38, + "variable": 11 + }, + { + "kind": "multiply", + "input": 38, + "variable": 15 + }, + { + "kind": "multiply", + "input": 38, + "variable": 16 + }, + { + "kind": "multiply", + "input": 38, + "variable": 26 + }, + { + "kind": "multiply", + "input": 38, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 928, + 748, + 927, + 39 + ] + }, + { + "kind": "multiply", + "input": 38, + "variable": 33 + }, + { + "kind": "multiply", + "input": 38, + "variable": 34 + }, + { + "kind": "multiply", + "input": 38, + "variable": 37 + }, + { + "kind": "multiply", + "input": 38, + "variable": 39 + }, + { + "kind": "multiply", + "input": 39, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 934, + 887, + 886, + 39, + 35 + ] + }, + { + "kind": "multiply", + "input": 39, + "variable": 2 + }, + { + "kind": "multiply", + "input": 39, + "variable": 3 + }, + { + "kind": "multiply", + "input": 39, + "variable": 4 + }, + { + "kind": "multiply", + "input": 39, + "variable": 5 + }, + { + "kind": "xor", + "inputs": [ + 939, + 902, + 901, + 39, + 36 + ] + }, + { + "kind": "multiply", + "input": 39, + "variable": 8 + }, + { + "kind": "multiply", + "input": 39, + "variable": 9 + }, + { + "kind": "multiply", + "input": 39, + "variable": 10 + }, + { + "kind": "multiply", + "input": 39, + "variable": 11 + }, + { + "kind": "multiply", + "input": 39, + "variable": 12 + }, + { + "kind": "multiply", + "input": 39, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 946, + 915, + 914, + 39, + 37, + 27, + 741 + ] + }, + { + "kind": "multiply", + "input": 39, + "variable": 15 + }, + { + "kind": "multiply", + "input": 39, + "variable": 16 + }, + { + "kind": "multiply", + "input": 39, + "variable": 17 + }, + { + "kind": "multiply", + "input": 39, + "variable": 18 + }, + { + "kind": "multiply", + "input": 39, + "variable": 22 + }, + { + "kind": "multiply", + "input": 39, + "variable": 25 + }, + { + "kind": "multiply", + "input": 39, + "variable": 30 + }, + { + "kind": "multiply", + "input": 39, + "variable": 31 + }, + { + "kind": "multiply", + "input": 39, + "variable": 33 + }, + { + "kind": "multiply", + "input": 39, + "variable": 34 + }, + { + "kind": "multiply", + "input": 39, + "variable": 35 + }, + { + "kind": "multiply", + "input": 39, + "variable": 37 + }, + { + "kind": "multiply", + "input": 39, + "variable": 38 + }, + { + "kind": "multiply", + "input": 39, + "variable": 39 + }, + { + "kind": "multiply", + "input": 40, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 962, + 80, + 79 + ] + }, + { + "kind": "multiply", + "input": 40, + "variable": 2 + }, + { + "kind": "multiply", + "input": 40, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 965, + 114, + 113, + 964, + 41 + ] + }, + { + "kind": "multiply", + "input": 40, + "variable": 4 + }, + { + "kind": "multiply", + "input": 40, + "variable": 11 + }, + { + "kind": "multiply", + "input": 40, + "variable": 12 + }, + { + "kind": "multiply", + "input": 40, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 970, + 240, + 239 + ] + }, + { + "kind": "multiply", + "input": 40, + "variable": 15 + }, + { + "kind": "multiply", + "input": 40, + "variable": 16 + }, + { + "kind": "multiply", + "input": 40, + "variable": 17 + }, + { + "kind": "multiply", + "input": 40, + "variable": 18 + }, + { + "kind": "multiply", + "input": 40, + "variable": 27 + }, + { + "kind": "multiply", + "input": 40, + "variable": 29 + }, + { + "kind": "multiply", + "input": 40, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 978, + 792, + 791, + 977 + ] + }, + { + "kind": "multiply", + "input": 41, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 980, + 967, + 114, + 113, + 112, + 966 + ] + }, + { + "kind": "multiply", + "input": 41, + "variable": 9 + }, + { + "kind": "multiply", + "input": 41, + "variable": 10 + }, + { + "kind": "multiply", + "input": 41, + "variable": 11 + }, + { + "kind": "multiply", + "input": 41, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 985, + 221, + 220, + 984, + 983, + 982 + ] + }, + { + "kind": "multiply", + "input": 41, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 987, + 354, + 353 + ] + }, + { + "kind": "multiply", + "input": 41, + "variable": 15 + }, + { + "kind": "multiply", + "input": 41, + "variable": 16 + }, + { + "kind": "multiply", + "input": 41, + "variable": 17 + }, + { + "kind": "multiply", + "input": 41, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 992, + 445, + 444, + 991, + 990, + 989 + ] + }, + { + "kind": "multiply", + "input": 41, + "variable": 26 + }, + { + "kind": "multiply", + "input": 41, + "variable": 27 + }, + { + "kind": "multiply", + "input": 42, + "variable": 0 + }, + { + "kind": "xor", + "inputs": [ + 996, + 969 + ] + }, + { + "kind": "multiply", + "input": 42, + "variable": 1 + }, + { + "kind": "multiply", + "input": 42, + "variable": 2 + }, + { + "kind": "multiply", + "input": 42, + "variable": 3 + }, + { + "kind": "multiply", + "input": 42, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1001, + 221, + 219 + ] + }, + { + "kind": "multiply", + "input": 42, + "variable": 13 + }, + { + "kind": "multiply", + "input": 42, + "variable": 14 + }, + { + "kind": "multiply", + "input": 42, + "variable": 17 + }, + { + "kind": "multiply", + "input": 42, + "variable": 26 + }, + { + "kind": "multiply", + "input": 42, + "variable": 27 + }, + { + "kind": "multiply", + "input": 42, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1008, + 702, + 700, + 1007, + 1006 + ] + }, + { + "kind": "multiply", + "input": 42, + "variable": 29 + }, + { + "kind": "multiply", + "input": 42, + "variable": 30 + }, + { + "kind": "multiply", + "input": 42, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1012, + 832, + 830, + 1011, + 1010 + ] + }, + { + "kind": "multiply", + "input": 43, + "variable": 2 + }, + { + "kind": "multiply", + "input": 43, + "variable": 3 + }, + { + "kind": "multiply", + "input": 43, + "variable": 9 + }, + { + "kind": "multiply", + "input": 43, + "variable": 10 + }, + { + "kind": "multiply", + "input": 43, + "variable": 11 + }, + { + "kind": "multiply", + "input": 43, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1019, + 1003 + ] + }, + { + "kind": "multiply", + "input": 43, + "variable": 13 + }, + { + "kind": "multiply", + "input": 43, + "variable": 15 + }, + { + "kind": "multiply", + "input": 43, + "variable": 16 + }, + { + "kind": "multiply", + "input": 43, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1024, + 506, + 505, + 504, + 1023, + 1022, + 44 + ] + }, + { + "kind": "multiply", + "input": 43, + "variable": 18 + }, + { + "kind": "multiply", + "input": 43, + "variable": 26 + }, + { + "kind": "multiply", + "input": 43, + "variable": 27 + }, + { + "kind": "multiply", + "input": 43, + "variable": 29 + }, + { + "kind": "multiply", + "input": 43, + "variable": 31 + }, + { + "kind": "multiply", + "input": 43, + "variable": 37 + }, + { + "kind": "multiply", + "input": 43, + "variable": 39 + }, + { + "kind": "multiply", + "input": 44, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 1033, + 420, + 419, + 418 + ] + }, + { + "kind": "multiply", + "input": 44, + "variable": 3 + }, + { + "kind": "multiply", + "input": 44, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1036, + 445, + 444, + 443 + ] + }, + { + "kind": "multiply", + "input": 44, + "variable": 9 + }, + { + "kind": "multiply", + "input": 44, + "variable": 10 + }, + { + "kind": "multiply", + "input": 44, + "variable": 11 + }, + { + "kind": "multiply", + "input": 44, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1041, + 474, + 473, + 472, + 1005, + 1040 + ] + }, + { + "kind": "multiply", + "input": 44, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 1043, + 1026, + 506, + 504 + ] + }, + { + "kind": "multiply", + "input": 44, + "variable": 26 + }, + { + "kind": "multiply", + "input": 44, + "variable": 27 + }, + { + "kind": "multiply", + "input": 44, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1047, + 766, + 765, + 764, + 1046, + 1045 + ] + }, + { + "kind": "multiply", + "input": 44, + "variable": 29 + }, + { + "kind": "multiply", + "input": 44, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1050, + 847, + 846, + 845, + 1049 + ] + }, + { + "kind": "multiply", + "input": 45, + "variable": 2 + }, + { + "kind": "multiply", + "input": 45, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1053, + 676, + 675, + 995 + ] + }, + { + "kind": "multiply", + "input": 45, + "variable": 10 + }, + { + "kind": "multiply", + "input": 45, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1056, + 1009 + ] + }, + { + "kind": "multiply", + "input": 45, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1058, + 701, + 700, + 1007 + ] + }, + { + "kind": "multiply", + "input": 45, + "variable": 15 + }, + { + "kind": "multiply", + "input": 45, + "variable": 16 + }, + { + "kind": "multiply", + "input": 45, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1062, + 1048 + ] + }, + { + "kind": "multiply", + "input": 45, + "variable": 32 + }, + { + "kind": "multiply", + "input": 46, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 1065, + 891, + 890, + 46 + ] + }, + { + "kind": "multiply", + "input": 46, + "variable": 12 + }, + { + "kind": "multiply", + "input": 46, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 1068, + 917, + 916, + 46, + 43 + ] + }, + { + "kind": "multiply", + "input": 46, + "variable": 17 + }, + { + "kind": "multiply", + "input": 46, + "variable": 18 + }, + { + "kind": "multiply", + "input": 46, + "variable": 26 + }, + { + "kind": "multiply", + "input": 46, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1073, + 957, + 956, + 1072, + 46, + 45 + ] + }, + { + "kind": "multiply", + "input": 46, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1075, + 1064, + 958, + 957, + 956 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 2 + }, + { + "kind": "multiply", + "input": 47, + "variable": 3 + }, + { + "kind": "multiply", + "input": 47, + "variable": 4 + }, + { + "kind": "multiply", + "input": 47, + "variable": 6 + }, + { + "kind": "multiply", + "input": 47, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 1081, + 162, + 1080, + 48 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 9 + }, + { + "kind": "multiply", + "input": 47, + "variable": 10 + }, + { + "kind": "multiply", + "input": 47, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1085, + 195, + 1084, + 1083, + 49 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 12 + }, + { + "kind": "multiply", + "input": 47, + "variable": 13 + }, + { + "kind": "multiply", + "input": 47, + "variable": 15 + }, + { + "kind": "multiply", + "input": 47, + "variable": 16 + }, + { + "kind": "multiply", + "input": 47, + "variable": 17 + }, + { + "kind": "multiply", + "input": 47, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1092, + 421, + 1090, + 1089 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 19 + }, + { + "kind": "multiply", + "input": 47, + "variable": 20 + }, + { + "kind": "multiply", + "input": 47, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1096, + 538, + 1095, + 1094, + 50 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 22 + }, + { + "kind": "multiply", + "input": 47, + "variable": 23 + }, + { + "kind": "multiply", + "input": 47, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1100, + 612, + 1099, + 51 + ] + }, + { + "kind": "multiply", + "input": 47, + "variable": 26 + }, + { + "kind": "multiply", + "input": 47, + "variable": 27 + }, + { + "kind": "multiply", + "input": 47, + "variable": 28 + }, + { + "kind": "multiply", + "input": 47, + "variable": 29 + }, + { + "kind": "multiply", + "input": 47, + "variable": 30 + }, + { + "kind": "multiply", + "input": 47, + "variable": 31 + }, + { + "kind": "multiply", + "input": 48, + "variable": 2 + }, + { + "kind": "multiply", + "input": 48, + "variable": 3 + }, + { + "kind": "multiply", + "input": 48, + "variable": 6 + }, + { + "kind": "multiply", + "input": 48, + "variable": 9 + }, + { + "kind": "multiply", + "input": 48, + "variable": 10 + }, + { + "kind": "multiply", + "input": 48, + "variable": 11 + }, + { + "kind": "multiply", + "input": 48, + "variable": 12 + }, + { + "kind": "multiply", + "input": 48, + "variable": 15 + }, + { + "kind": "multiply", + "input": 48, + "variable": 16 + }, + { + "kind": "multiply", + "input": 48, + "variable": 18 + }, + { + "kind": "multiply", + "input": 48, + "variable": 19 + }, + { + "kind": "multiply", + "input": 48, + "variable": 20 + }, + { + "kind": "multiply", + "input": 48, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1120, + 565, + 1119, + 1118 + ] + }, + { + "kind": "multiply", + "input": 48, + "variable": 22 + }, + { + "kind": "multiply", + "input": 48, + "variable": 23 + }, + { + "kind": "multiply", + "input": 48, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1124, + 640, + 1123 + ] + }, + { + "kind": "multiply", + "input": 48, + "variable": 27 + }, + { + "kind": "multiply", + "input": 49, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 1127, + 1087, + 195, + 1084, + 1086, + 47 + ] + }, + { + "kind": "multiply", + "input": 49, + "variable": 6 + }, + { + "kind": "multiply", + "input": 49, + "variable": 7 + }, + { + "kind": "multiply", + "input": 49, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 1131, + 1114, + 1113, + 1111, + 1130, + 1129, + 49, + 48 + ] + }, + { + "kind": "multiply", + "input": 49, + "variable": 15 + }, + { + "kind": "multiply", + "input": 49, + "variable": 16 + }, + { + "kind": "multiply", + "input": 49, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1135, + 475, + 1134, + 1133 + ] + }, + { + "kind": "multiply", + "input": 49, + "variable": 19 + }, + { + "kind": "multiply", + "input": 49, + "variable": 20 + }, + { + "kind": "multiply", + "input": 49, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1139, + 581, + 1138, + 1137 + ] + }, + { + "kind": "multiply", + "input": 49, + "variable": 22 + }, + { + "kind": "multiply", + "input": 49, + "variable": 23 + }, + { + "kind": "multiply", + "input": 49, + "variable": 24 + }, + { + "kind": "multiply", + "input": 49, + "variable": 25 + }, + { + "kind": "multiply", + "input": 50, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 1145, + 1098, + 538, + 1095, + 1097, + 47 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 6 + }, + { + "kind": "multiply", + "input": 50, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 1148, + 1121 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 1150, + 1122, + 565, + 1119, + 1149, + 1147, + 50, + 48 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 9 + }, + { + "kind": "multiply", + "input": 50, + "variable": 10 + }, + { + "kind": "multiply", + "input": 50, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1154, + 1140 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1156, + 1141, + 581, + 1138, + 1155, + 1152, + 50, + 49 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 17 + }, + { + "kind": "multiply", + "input": 50, + "variable": 23 + }, + { + "kind": "multiply", + "input": 50, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1160, + 658, + 1159 + ] + }, + { + "kind": "multiply", + "input": 50, + "variable": 25 + }, + { + "kind": "multiply", + "input": 51, + "variable": 6 + }, + { + "kind": "multiply", + "input": 51, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 1164, + 1125 + ] + }, + { + "kind": "multiply", + "input": 51, + "variable": 9 + }, + { + "kind": "multiply", + "input": 51, + "variable": 10 + }, + { + "kind": "multiply", + "input": 51, + "variable": 11 + }, + { + "kind": "multiply", + "input": 51, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1169, + 1144, + 1143, + 1142, + 1168, + 1166, + 51, + 49 + ] + }, + { + "kind": "multiply", + "input": 51, + "variable": 19 + }, + { + "kind": "multiply", + "input": 51, + "variable": 20 + }, + { + "kind": "multiply", + "input": 51, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1173, + 1161 + ] + }, + { + "kind": "multiply", + "input": 51, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1175, + 1162, + 658, + 1174, + 1171, + 51, + 50 + ] + }, + { + "kind": "multiply", + "input": 52, + "variable": 2 + }, + { + "kind": "multiply", + "input": 52, + "variable": 4 + }, + { + "kind": "multiply", + "input": 52, + "variable": 27 + }, + { + "kind": "multiply", + "input": 52, + "variable": 28 + }, + { + "kind": "multiply", + "input": 52, + "variable": 29 + }, + { + "kind": "multiply", + "input": 52, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1182, + 808, + 807, + 1181 + ] + }, + { + "kind": "multiply", + "input": 53, + "variable": 0 + }, + { + "kind": "multiply", + "input": 53, + "variable": 2 + }, + { + "kind": "multiply", + "input": 53, + "variable": 3 + }, + { + "kind": "multiply", + "input": 53, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1187, + 225, + 224, + 223 + ] + }, + { + "kind": "multiply", + "input": 53, + "variable": 14 + }, + { + "kind": "multiply", + "input": 53, + "variable": 26 + }, + { + "kind": "multiply", + "input": 53, + "variable": 27 + }, + { + "kind": "multiply", + "input": 53, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1192, + 705, + 704, + 703, + 1191, + 1190 + ] + }, + { + "kind": "multiply", + "input": 53, + "variable": 30 + }, + { + "kind": "multiply", + "input": 54, + "variable": 0 + }, + { + "kind": "multiply", + "input": 54, + "variable": 2 + }, + { + "kind": "multiply", + "input": 54, + "variable": 3 + }, + { + "kind": "multiply", + "input": 54, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1198, + 447, + 446 + ] + }, + { + "kind": "multiply", + "input": 54, + "variable": 14 + }, + { + "kind": "multiply", + "input": 54, + "variable": 26 + }, + { + "kind": "multiply", + "input": 54, + "variable": 27 + }, + { + "kind": "multiply", + "input": 54, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1203, + 768, + 767, + 1202, + 1201 + ] + }, + { + "kind": "multiply", + "input": 54, + "variable": 29 + }, + { + "kind": "multiply", + "input": 54, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1206, + 849, + 848, + 1205 + ] + }, + { + "kind": "multiply", + "input": 55, + "variable": 2 + }, + { + "kind": "multiply", + "input": 55, + "variable": 3 + }, + { + "kind": "multiply", + "input": 55, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1210, + 678, + 677 + ] + }, + { + "kind": "multiply", + "input": 55, + "variable": 9 + }, + { + "kind": "multiply", + "input": 55, + "variable": 10 + }, + { + "kind": "multiply", + "input": 55, + "variable": 11 + }, + { + "kind": "multiply", + "input": 55, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1215, + 705, + 703 + ] + }, + { + "kind": "multiply", + "input": 55, + "variable": 15 + }, + { + "kind": "multiply", + "input": 55, + "variable": 16 + }, + { + "kind": "multiply", + "input": 55, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1219, + 1204 + ] + }, + { + "kind": "multiply", + "input": 55, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1221, + 769, + 767, + 1202 + ] + }, + { + "kind": "multiply", + "input": 55, + "variable": 32 + }, + { + "kind": "multiply", + "input": 56, + "variable": 2 + }, + { + "kind": "multiply", + "input": 56, + "variable": 4 + }, + { + "kind": "multiply", + "input": 56, + "variable": 26 + }, + { + "kind": "multiply", + "input": 56, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1227, + 961, + 959, + 1226, + 56, + 55 + ] + }, + { + "kind": "multiply", + "input": 56, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1229, + 1223, + 961, + 960, + 959, + 1228 + ] + }, + { + "kind": "multiply", + "input": 56, + "variable": 30 + }, + { + "kind": "multiply", + "input": 85, + "variable": 6 + }, + { + "kind": "multiply", + "input": 85, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 1233, + 137, + 1232, + 88, + 87, + 60, + 59 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 9 + }, + { + "kind": "multiply", + "input": 85, + "variable": 10 + }, + { + "kind": "multiply", + "input": 85, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1237, + 168, + 1236, + 1235, + 92, + 91, + 90, + 63, + 62, + 61, + 5 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 15 + }, + { + "kind": "multiply", + "input": 85, + "variable": 16 + }, + { + "kind": "multiply", + "input": 85, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1241, + 392, + 1240, + 1239, + 99, + 97, + 96, + 68, + 66, + 65, + 482 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 19 + }, + { + "kind": "multiply", + "input": 85, + "variable": 20 + }, + { + "kind": "multiply", + "input": 85, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1245, + 513, + 1244, + 1243, + 102, + 101, + 100, + 71, + 70, + 69 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 23 + }, + { + "kind": "multiply", + "input": 85, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1248, + 586, + 1247, + 104, + 103, + 73, + 72 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 26 + }, + { + "kind": "multiply", + "input": 85, + "variable": 27 + }, + { + "kind": "multiply", + "input": 85, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1252, + 659, + 1251, + 1250 + ] + }, + { + "kind": "multiply", + "input": 85, + "variable": 31 + }, + { + "kind": "multiply", + "input": 85, + "variable": 37 + }, + { + "kind": "multiply", + "input": 85, + "variable": 38 + }, + { + "kind": "multiply", + "input": 85, + "variable": 39 + }, + { + "kind": "multiply", + "input": 120, + "variable": 9 + }, + { + "kind": "multiply", + "input": 120, + "variable": 10 + }, + { + "kind": "multiply", + "input": 120, + "variable": 11 + }, + { + "kind": "multiply", + "input": 120, + "variable": 15 + }, + { + "kind": "multiply", + "input": 120, + "variable": 16 + }, + { + "kind": "multiply", + "input": 120, + "variable": 17 + }, + { + "kind": "multiply", + "input": 120, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1264, + 427, + 1263, + 1262, + 1261 + ] + }, + { + "kind": "multiply", + "input": 120, + "variable": 26 + }, + { + "kind": "multiply", + "input": 120, + "variable": 27 + }, + { + "kind": "multiply", + "input": 120, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1268, + 660, + 1267, + 1266 + ] + }, + { + "kind": "multiply", + "input": 120, + "variable": 29 + }, + { + "kind": "multiply", + "input": 120, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1271, + 798, + 1270, + 130, + 129, + 109, + 108, + 774 + ] + }, + { + "kind": "multiply", + "input": 120, + "variable": 37 + }, + { + "kind": "multiply", + "input": 120, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1274, + 1178, + 1273, + 133, + 132, + 116, + 115 + ] + }, + { + "kind": "multiply", + "input": 135, + "variable": 6 + }, + { + "kind": "multiply", + "input": 135, + "variable": 7 + }, + { + "kind": "multiply", + "input": 135, + "variable": 19 + }, + { + "kind": "multiply", + "input": 135, + "variable": 20 + }, + { + "kind": "multiply", + "input": 135, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1280, + 539, + 1279, + 1278 + ] + }, + { + "kind": "multiply", + "input": 135, + "variable": 23 + }, + { + "kind": "multiply", + "input": 135, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1283, + 613, + 1282 + ] + }, + { + "kind": "multiply", + "input": 135, + "variable": 29 + }, + { + "kind": "multiply", + "input": 135, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1286, + 777, + 1285, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 6 + }, + { + "kind": "multiply", + "input": 164, + "variable": 15 + }, + { + "kind": "multiply", + "input": 164, + "variable": 16 + }, + { + "kind": "multiply", + "input": 164, + "variable": 17 + }, + { + "kind": "multiply", + "input": 164, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1292, + 449, + 1290, + 1289 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 19 + }, + { + "kind": "multiply", + "input": 164, + "variable": 23 + }, + { + "kind": "multiply", + "input": 164, + "variable": 26 + }, + { + "kind": "multiply", + "input": 164, + "variable": 27 + }, + { + "kind": "multiply", + "input": 164, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1298, + 679, + 1297, + 1296 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 29 + }, + { + "kind": "multiply", + "input": 164, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1301, + 810, + 780 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1303, + 781, + 1300, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 33 + }, + { + "kind": "multiply", + "input": 164, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1306, + 997, + 1305, + 968 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1308, + 969, + 997, + 1305, + 968, + 1307, + 80, + 79 + ] + }, + { + "kind": "multiply", + "input": 164, + "variable": 37 + }, + { + "kind": "multiply", + "input": 164, + "variable": 38 + }, + { + "kind": "multiply", + "input": 164, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1312, + 1184, + 1311, + 1310 + ] + }, + { + "kind": "multiply", + "input": 171, + "variable": 4 + }, + { + "kind": "multiply", + "input": 171, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 1315, + 275, + 274, + 273 + ] + }, + { + "kind": "multiply", + "input": 171, + "variable": 15 + }, + { + "kind": "multiply", + "input": 171, + "variable": 16 + }, + { + "kind": "multiply", + "input": 171, + "variable": 17 + }, + { + "kind": "multiply", + "input": 171, + "variable": 18 + }, + { + "kind": "multiply", + "input": 171, + "variable": 19 + }, + { + "kind": "multiply", + "input": 171, + "variable": 20 + }, + { + "kind": "multiply", + "input": 171, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1323, + 550, + 1322, + 1321, + 549, + 548, + 569 + ] + }, + { + "kind": "multiply", + "input": 171, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1325, + 571, + 1322, + 1321, + 549 + ] + }, + { + "kind": "multiply", + "input": 171, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 1327, + 1113, + 1112, + 1111, + 1130 + ] + }, + { + "kind": "multiply", + "input": 228, + "variable": 9 + }, + { + "kind": "multiply", + "input": 228, + "variable": 10 + }, + { + "kind": "multiply", + "input": 228, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1331, + 250 + ] + }, + { + "kind": "multiply", + "input": 228, + "variable": 15 + }, + { + "kind": "multiply", + "input": 228, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 1334, + 434 + ] + }, + { + "kind": "multiply", + "input": 228, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1336, + 480, + 434, + 1333, + 479, + 1335, + 235, + 234, + 233, + 98, + 97, + 96, + 17 + ] + }, + { + "kind": "multiply", + "input": 228, + "variable": 29 + }, + { + "kind": "multiply", + "input": 228, + "variable": 37 + }, + { + "kind": "multiply", + "input": 228, + "variable": 38 + }, + { + "kind": "multiply", + "input": 282, + "variable": 8 + }, + { + "kind": "multiply", + "input": 282, + "variable": 9 + }, + { + "kind": "multiply", + "input": 282, + "variable": 10 + }, + { + "kind": "multiply", + "input": 282, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1344, + 339 + ] + }, + { + "kind": "multiply", + "input": 282, + "variable": 12 + }, + { + "kind": "multiply", + "input": 282, + "variable": 15 + }, + { + "kind": "multiply", + "input": 282, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 1348, + 436 + ] + }, + { + "kind": "multiply", + "input": 282, + "variable": 17 + }, + { + "kind": "multiply", + "input": 282, + "variable": 26 + }, + { + "kind": "multiply", + "input": 282, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1352, + 729, + 1351, + 293, + 292, + 107, + 105, + 28 + ] + }, + { + "kind": "multiply", + "input": 282, + "variable": 29 + }, + { + "kind": "multiply", + "input": 282, + "variable": 30 + }, + { + "kind": "multiply", + "input": 282, + "variable": 33 + }, + { + "kind": "xor", + "inputs": [ + 1356, + 988 + ] + }, + { + "kind": "multiply", + "input": 282, + "variable": 37 + }, + { + "kind": "multiply", + "input": 282, + "variable": 38 + }, + { + "kind": "multiply", + "input": 307, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 1360, + 1341, + 303, + 136, + 284, + 89, + 307 + ] + }, + { + "kind": "multiply", + "input": 307, + "variable": 6 + }, + { + "kind": "multiply", + "input": 307, + "variable": 7 + }, + { + "kind": "multiply", + "input": 307, + "variable": 10 + }, + { + "kind": "multiply", + "input": 307, + "variable": 19 + }, + { + "kind": "multiply", + "input": 307, + "variable": 20 + }, + { + "kind": "multiply", + "input": 307, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1367, + 552, + 1366, + 1365 + ] + }, + { + "kind": "multiply", + "input": 307, + "variable": 23 + }, + { + "kind": "multiply", + "input": 307, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1370, + 625, + 1369 + ] + }, + { + "kind": "multiply", + "input": 307, + "variable": 26 + }, + { + "kind": "multiply", + "input": 307, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1373, + 734, + 1372, + 322, + 320, + 158, + 156 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 1375, + 1346, + 303, + 167, + 288, + 93, + 311 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 15 + }, + { + "kind": "multiply", + "input": 311, + "variable": 16 + }, + { + "kind": "multiply", + "input": 311, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1379, + 460, + 1378, + 1377 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 19 + }, + { + "kind": "multiply", + "input": 311, + "variable": 20 + }, + { + "kind": "multiply", + "input": 311, + "variable": 23 + }, + { + "kind": "multiply", + "input": 311, + "variable": 24 + }, + { + "kind": "multiply", + "input": 311, + "variable": 26 + }, + { + "kind": "multiply", + "input": 311, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1386, + 685, + 739, + 1385, + 322, + 320, + 187, + 185 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 29 + }, + { + "kind": "multiply", + "input": 311, + "variable": 30 + }, + { + "kind": "multiply", + "input": 311, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1390, + 817, + 1389, + 1388 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 33 + }, + { + "kind": "multiply", + "input": 311, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1393, + 1004, + 1392 + ] + }, + { + "kind": "multiply", + "input": 311, + "variable": 37 + }, + { + "kind": "multiply", + "input": 311, + "variable": 38 + }, + { + "kind": "multiply", + "input": 311, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1397, + 1189, + 1396, + 1395 + ] + }, + { + "kind": "multiply", + "input": 331, + "variable": 10 + }, + { + "kind": "multiply", + "input": 331, + "variable": 11 + }, + { + "kind": "multiply", + "input": 331, + "variable": 16 + }, + { + "kind": "multiply", + "input": 331, + "variable": 29 + }, + { + "kind": "multiply", + "input": 331, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1403, + 772, + 1402 + ] + }, + { + "kind": "multiply", + "input": 331, + "variable": 34 + }, + { + "kind": "multiply", + "input": 331, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1406, + 964, + 1405 + ] + }, + { + "kind": "multiply", + "input": 333, + "variable": 9 + }, + { + "kind": "multiply", + "input": 333, + "variable": 10 + }, + { + "kind": "multiply", + "input": 333, + "variable": 15 + }, + { + "kind": "multiply", + "input": 333, + "variable": 16 + }, + { + "kind": "multiply", + "input": 333, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1412, + 390, + 1411, + 1410 + ] + }, + { + "kind": "multiply", + "input": 333, + "variable": 19 + }, + { + "kind": "multiply", + "input": 333, + "variable": 20 + }, + { + "kind": "multiply", + "input": 333, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 1416, + 511, + 1415, + 1414 + ] + }, + { + "kind": "multiply", + "input": 333, + "variable": 23 + }, + { + "kind": "multiply", + "input": 333, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 1419, + 584, + 1418 + ] + }, + { + "kind": "multiply", + "input": 333, + "variable": 26 + }, + { + "kind": "multiply", + "input": 333, + "variable": 27 + }, + { + "kind": "multiply", + "input": 333, + "variable": 29 + }, + { + "kind": "multiply", + "input": 333, + "variable": 31 + }, + { + "kind": "multiply", + "input": 333, + "variable": 35 + }, + { + "kind": "multiply", + "input": 333, + "variable": 37 + }, + { + "kind": "multiply", + "input": 333, + "variable": 38 + }, + { + "kind": "multiply", + "input": 333, + "variable": 39 + }, + { + "kind": "multiply", + "input": 360, + "variable": 9 + }, + { + "kind": "multiply", + "input": 360, + "variable": 11 + }, + { + "kind": "multiply", + "input": 360, + "variable": 15 + }, + { + "kind": "multiply", + "input": 360, + "variable": 16 + }, + { + "kind": "multiply", + "input": 360, + "variable": 18 + }, + { + "kind": "multiply", + "input": 360, + "variable": 26 + }, + { + "kind": "multiply", + "input": 360, + "variable": 27 + }, + { + "kind": "multiply", + "input": 360, + "variable": 29 + }, + { + "kind": "multiply", + "input": 360, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1437, + 796, + 1436 + ] + }, + { + "kind": "multiply", + "input": 360, + "variable": 37 + }, + { + "kind": "multiply", + "input": 360, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1440, + 1177, + 1439 + ] + }, + { + "kind": "multiply", + "input": 373, + "variable": 9 + }, + { + "kind": "multiply", + "input": 373, + "variable": 10 + }, + { + "kind": "multiply", + "input": 373, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1444, + 1332, + 1443, + 231, + 92 + ] + }, + { + "kind": "multiply", + "input": 373, + "variable": 15 + }, + { + "kind": "multiply", + "input": 373, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 1447, + 1335, + 234, + 97 + ] + }, + { + "kind": "multiply", + "input": 373, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1449, + 479, + 1335, + 1446, + 234, + 97, + 1448 + ] + }, + { + "kind": "multiply", + "input": 373, + "variable": 29 + }, + { + "kind": "multiply", + "input": 373, + "variable": 37 + }, + { + "kind": "multiply", + "input": 373, + "variable": 38 + }, + { + "kind": "multiply", + "input": 388, + "variable": 9 + }, + { + "kind": "multiply", + "input": 388, + "variable": 10 + }, + { + "kind": "multiply", + "input": 388, + "variable": 11 + }, + { + "kind": "multiply", + "input": 388, + "variable": 26 + }, + { + "kind": "multiply", + "input": 388, + "variable": 27 + }, + { + "kind": "multiply", + "input": 388, + "variable": 28 + }, + { + "kind": "multiply", + "input": 388, + "variable": 29 + }, + { + "kind": "multiply", + "input": 388, + "variable": 30 + }, + { + "kind": "multiply", + "input": 388, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1462, + 783, + 1460, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 388, + "variable": 34 + }, + { + "kind": "multiply", + "input": 388, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1465, + 974, + 1464, + 80, + 79 + ] + }, + { + "kind": "multiply", + "input": 388, + "variable": 37 + }, + { + "kind": "multiply", + "input": 388, + "variable": 38 + }, + { + "kind": "multiply", + "input": 388, + "variable": 39 + }, + { + "kind": "multiply", + "input": 395, + "variable": 9 + }, + { + "kind": "multiply", + "input": 395, + "variable": 10 + }, + { + "kind": "multiply", + "input": 395, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1472, + 1320, + 1318, + 1317, + 1471, + 1470, + 457 + ] + }, + { + "kind": "multiply", + "input": 395, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1474, + 458, + 1320, + 1319, + 1317 + ] + }, + { + "kind": "multiply", + "input": 395, + "variable": 20 + }, + { + "kind": "multiply", + "input": 395, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 1477, + 1117, + 1116, + 1115 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 2 + }, + { + "kind": "multiply", + "input": 399, + "variable": 3 + }, + { + "kind": "multiply", + "input": 399, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 1481, + 430, + 455, + 429, + 428, + 453 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 13 + }, + { + "kind": "multiply", + "input": 399, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 1484, + 1380 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 19 + }, + { + "kind": "multiply", + "input": 399, + "variable": 20 + }, + { + "kind": "multiply", + "input": 399, + "variable": 21 + }, + { + "kind": "multiply", + "input": 399, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1489, + 575, + 1488 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 23 + }, + { + "kind": "multiply", + "input": 399, + "variable": 24 + }, + { + "kind": "multiply", + "input": 399, + "variable": 25 + }, + { + "kind": "multiply", + "input": 399, + "variable": 26 + }, + { + "kind": "multiply", + "input": 399, + "variable": 27 + }, + { + "kind": "multiply", + "input": 399, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1496, + 759, + 1495, + 1494, + 690 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 29 + }, + { + "kind": "multiply", + "input": 399, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1499, + 841, + 1498, + 822 + ] + }, + { + "kind": "multiply", + "input": 399, + "variable": 31 + }, + { + "kind": "multiply", + "input": 399, + "variable": 36 + }, + { + "kind": "multiply", + "input": 403, + "variable": 9 + }, + { + "kind": "multiply", + "input": 403, + "variable": 10 + }, + { + "kind": "multiply", + "input": 403, + "variable": 26 + }, + { + "kind": "multiply", + "input": 403, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1506, + 744, + 1505, + 413, + 411, + 322, + 320 + ] + }, + { + "kind": "multiply", + "input": 403, + "variable": 29 + }, + { + "kind": "multiply", + "input": 403, + "variable": 30 + }, + { + "kind": "multiply", + "input": 403, + "variable": 31 + }, + { + "kind": "multiply", + "input": 403, + "variable": 35 + }, + { + "kind": "multiply", + "input": 403, + "variable": 37 + }, + { + "kind": "multiply", + "input": 403, + "variable": 38 + }, + { + "kind": "multiply", + "input": 403, + "variable": 39 + }, + { + "kind": "multiply", + "input": 477, + "variable": 9 + }, + { + "kind": "multiply", + "input": 477, + "variable": 10 + }, + { + "kind": "multiply", + "input": 477, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1517, + 1293, + 1456 + ] + }, + { + "kind": "multiply", + "input": 477, + "variable": 27 + }, + { + "kind": "multiply", + "input": 477, + "variable": 29 + }, + { + "kind": "multiply", + "input": 477, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1521, + 784, + 1520, + 238, + 237, + 33 + ] + }, + { + "kind": "multiply", + "input": 477, + "variable": 34 + }, + { + "kind": "multiply", + "input": 477, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1524, + 975, + 1523, + 240, + 239 + ] + }, + { + "kind": "multiply", + "input": 477, + "variable": 37 + }, + { + "kind": "multiply", + "input": 477, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1527, + 1195, + 1526, + 1469, + 1468, + 1467 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 9 + }, + { + "kind": "multiply", + "input": 482, + "variable": 10 + }, + { + "kind": "multiply", + "input": 482, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1531, + 455 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1533, + 206, + 205, + 204, + 202, + 455, + 1532, + 1530, + 1529, + 432, + 1480 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 26 + }, + { + "kind": "multiply", + "input": 482, + "variable": 27 + }, + { + "kind": "multiply", + "input": 482, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1537, + 670, + 1536, + 1535, + 669, + 668, + 263, + 262, + 261, + 672 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 29 + }, + { + "kind": "multiply", + "input": 482, + "variable": 30 + }, + { + "kind": "multiply", + "input": 482, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1541, + 838 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1543, + 1037 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1545, + 991, + 1037, + 990, + 1544, + 989, + 268, + 267 + ] + }, + { + "kind": "multiply", + "input": 482, + "variable": 37 + }, + { + "kind": "multiply", + "input": 482, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1548, + 1199 + ] + }, + { + "kind": "multiply", + "input": 486, + "variable": 9 + }, + { + "kind": "multiply", + "input": 486, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 1551, + 1475 + ] + }, + { + "kind": "multiply", + "input": 486, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1553, + 1318, + 1317, + 275, + 1475, + 1552, + 274, + 1550, + 273 + ] + }, + { + "kind": "multiply", + "input": 486, + "variable": 20 + }, + { + "kind": "multiply", + "input": 493, + "variable": 9 + }, + { + "kind": "multiply", + "input": 493, + "variable": 10 + }, + { + "kind": "multiply", + "input": 493, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1558, + 1380, + 1485 + ] + }, + { + "kind": "multiply", + "input": 493, + "variable": 26 + }, + { + "kind": "multiply", + "input": 493, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1561, + 745, + 1560, + 500, + 498, + 381, + 380 + ] + }, + { + "kind": "multiply", + "input": 493, + "variable": 29 + }, + { + "kind": "multiply", + "input": 493, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1564, + 844, + 1563, + 1510, + 1509, + 1508 + ] + }, + { + "kind": "multiply", + "input": 493, + "variable": 31 + }, + { + "kind": "multiply", + "input": 493, + "variable": 37 + }, + { + "kind": "multiply", + "input": 493, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1568, + 1200, + 1567, + 1514, + 1513, + 1512 + ] + }, + { + "kind": "multiply", + "input": 510, + "variable": 29 + }, + { + "kind": "multiply", + "input": 510, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1571, + 786, + 1570, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 516, + "variable": 2 + }, + { + "kind": "multiply", + "input": 516, + "variable": 3 + }, + { + "kind": "multiply", + "input": 516, + "variable": 4 + }, + { + "kind": "multiply", + "input": 516, + "variable": 6 + }, + { + "kind": "multiply", + "input": 516, + "variable": 7 + }, + { + "kind": "multiply", + "input": 516, + "variable": 8 + }, + { + "kind": "multiply", + "input": 516, + "variable": 9 + }, + { + "kind": "multiply", + "input": 516, + "variable": 10 + }, + { + "kind": "multiply", + "input": 516, + "variable": 11 + }, + { + "kind": "multiply", + "input": 516, + "variable": 12 + }, + { + "kind": "multiply", + "input": 516, + "variable": 15 + }, + { + "kind": "multiply", + "input": 516, + "variable": 16 + }, + { + "kind": "multiply", + "input": 516, + "variable": 17 + }, + { + "kind": "multiply", + "input": 516, + "variable": 18 + }, + { + "kind": "multiply", + "input": 516, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 1587, + 653 + ] + }, + { + "kind": "multiply", + "input": 516, + "variable": 24 + }, + { + "kind": "multiply", + "input": 516, + "variable": 25 + }, + { + "kind": "multiply", + "input": 516, + "variable": 27 + }, + { + "kind": "multiply", + "input": 516, + "variable": 28 + }, + { + "kind": "multiply", + "input": 516, + "variable": 30 + }, + { + "kind": "multiply", + "input": 516, + "variable": 36 + }, + { + "kind": "multiply", + "input": 521, + "variable": 3 + }, + { + "kind": "multiply", + "input": 521, + "variable": 4 + }, + { + "kind": "multiply", + "input": 521, + "variable": 6 + }, + { + "kind": "multiply", + "input": 521, + "variable": 13 + }, + { + "kind": "multiply", + "input": 521, + "variable": 15 + }, + { + "kind": "multiply", + "input": 521, + "variable": 16 + }, + { + "kind": "multiply", + "input": 521, + "variable": 17 + }, + { + "kind": "multiply", + "input": 521, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1602, + 1487, + 1486, + 1599 + ] + }, + { + "kind": "multiply", + "input": 521, + "variable": 23 + }, + { + "kind": "multiply", + "input": 521, + "variable": 24 + }, + { + "kind": "multiply", + "input": 521, + "variable": 25 + }, + { + "kind": "multiply", + "input": 521, + "variable": 26 + }, + { + "kind": "multiply", + "input": 521, + "variable": 27 + }, + { + "kind": "multiply", + "input": 521, + "variable": 28 + }, + { + "kind": "multiply", + "input": 521, + "variable": 29 + }, + { + "kind": "multiply", + "input": 521, + "variable": 30 + }, + { + "kind": "multiply", + "input": 521, + "variable": 31 + }, + { + "kind": "multiply", + "input": 521, + "variable": 36 + }, + { + "kind": "multiply", + "input": 524, + "variable": 10 + }, + { + "kind": "multiply", + "input": 524, + "variable": 26 + }, + { + "kind": "multiply", + "input": 524, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1616, + 746, + 1615, + 535, + 533, + 322, + 320 + ] + }, + { + "kind": "multiply", + "input": 529, + "variable": 9 + }, + { + "kind": "multiply", + "input": 529, + "variable": 10 + }, + { + "kind": "multiply", + "input": 583, + "variable": 10 + }, + { + "kind": "multiply", + "input": 583, + "variable": 20 + }, + { + "kind": "multiply", + "input": 583, + "variable": 29 + }, + { + "kind": "multiply", + "input": 583, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1623, + 787, + 1622, + 78, + 77 + ] + }, + { + "kind": "multiply", + "input": 589, + "variable": 2 + }, + { + "kind": "multiply", + "input": 589, + "variable": 4 + }, + { + "kind": "multiply", + "input": 589, + "variable": 6 + }, + { + "kind": "multiply", + "input": 589, + "variable": 7 + }, + { + "kind": "multiply", + "input": 589, + "variable": 8 + }, + { + "kind": "multiply", + "input": 589, + "variable": 9 + }, + { + "kind": "multiply", + "input": 589, + "variable": 10 + }, + { + "kind": "multiply", + "input": 589, + "variable": 11 + }, + { + "kind": "multiply", + "input": 589, + "variable": 12 + }, + { + "kind": "multiply", + "input": 589, + "variable": 15 + }, + { + "kind": "multiply", + "input": 589, + "variable": 16 + }, + { + "kind": "multiply", + "input": 589, + "variable": 17 + }, + { + "kind": "multiply", + "input": 589, + "variable": 18 + }, + { + "kind": "multiply", + "input": 589, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 1638, + 1588, + 651 + ] + }, + { + "kind": "multiply", + "input": 589, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 1640, + 653, + 651, + 602, + 150, + 24, + 604 + ] + }, + { + "kind": "multiply", + "input": 589, + "variable": 26 + }, + { + "kind": "multiply", + "input": 589, + "variable": 27 + }, + { + "kind": "multiply", + "input": 589, + "variable": 28 + }, + { + "kind": "multiply", + "input": 589, + "variable": 29 + }, + { + "kind": "multiply", + "input": 589, + "variable": 30 + }, + { + "kind": "multiply", + "input": 589, + "variable": 31 + }, + { + "kind": "multiply", + "input": 594, + "variable": 3 + }, + { + "kind": "multiply", + "input": 594, + "variable": 13 + }, + { + "kind": "multiply", + "input": 594, + "variable": 15 + }, + { + "kind": "multiply", + "input": 594, + "variable": 16 + }, + { + "kind": "multiply", + "input": 594, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1652, + 465, + 464, + 1651, + 1650, + 1493, + 1492, + 1491 + ] + }, + { + "kind": "multiply", + "input": 594, + "variable": 19 + }, + { + "kind": "multiply", + "input": 594, + "variable": 20 + }, + { + "kind": "multiply", + "input": 594, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1656, + 657, + 577, + 576, + 1655 + ] + }, + { + "kind": "multiply", + "input": 594, + "variable": 26 + }, + { + "kind": "multiply", + "input": 594, + "variable": 27 + }, + { + "kind": "multiply", + "input": 594, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1660, + 696, + 1659, + 1658, + 695 + ] + }, + { + "kind": "multiply", + "input": 594, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 1662, + 1143, + 1142, + 1168, + 1167 + ] + }, + { + "kind": "multiply", + "input": 596, + "variable": 10 + }, + { + "kind": "multiply", + "input": 596, + "variable": 20 + }, + { + "kind": "multiply", + "input": 596, + "variable": 26 + }, + { + "kind": "multiply", + "input": 596, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1667, + 747, + 1666, + 608, + 606, + 322, + 320 + ] + }, + { + "kind": "multiply", + "input": 600, + "variable": 10 + }, + { + "kind": "multiply", + "input": 604, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 1670, + 1639, + 530, + 601, + 153, + 149, + 587, + 514, + 24, + 1641 + ] + }, + { + "kind": "multiply", + "input": 604, + "variable": 10 + }, + { + "kind": "multiply", + "input": 604, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 1673, + 1174, + 1172 + ] + }, + { + "kind": "multiply", + "input": 615, + "variable": 2 + }, + { + "kind": "multiply", + "input": 615, + "variable": 4 + }, + { + "kind": "multiply", + "input": 615, + "variable": 6 + }, + { + "kind": "multiply", + "input": 615, + "variable": 9 + }, + { + "kind": "multiply", + "input": 615, + "variable": 10 + }, + { + "kind": "multiply", + "input": 615, + "variable": 19 + }, + { + "kind": "multiply", + "input": 615, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 1681, + 655, + 630, + 651, + 602, + 650, + 601, + 150, + 541, + 1176, + 1641, + 1671, + 615, + 19, + 1151, + 1146 + ] + }, + { + "kind": "multiply", + "input": 615, + "variable": 26 + }, + { + "kind": "multiply", + "input": 615, + "variable": 27 + }, + { + "kind": "multiply", + "input": 615, + "variable": 28 + }, + { + "kind": "multiply", + "input": 615, + "variable": 29 + }, + { + "kind": "multiply", + "input": 615, + "variable": 30 + }, + { + "kind": "multiply", + "input": 615, + "variable": 31 + }, + { + "kind": "multiply", + "input": 615, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 1689, + 1123, + 1165, + 612, + 1099, + 162, + 1080 + ] + }, + { + "kind": "multiply", + "input": 647, + "variable": 9 + }, + { + "kind": "multiply", + "input": 647, + "variable": 10 + }, + { + "kind": "multiply", + "input": 647, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1693, + 1492, + 1491, + 1653 + ] + }, + { + "kind": "multiply", + "input": 647, + "variable": 20 + }, + { + "kind": "multiply", + "input": 716, + "variable": 2 + }, + { + "kind": "multiply", + "input": 716, + "variable": 3 + }, + { + "kind": "multiply", + "input": 716, + "variable": 9 + }, + { + "kind": "multiply", + "input": 716, + "variable": 10 + }, + { + "kind": "multiply", + "input": 716, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1700, + 690 + ] + }, + { + "kind": "multiply", + "input": 716, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1702, + 688, + 687, + 686, + 761, + 684, + 490, + 759, + 1701, + 489, + 758 + ] + }, + { + "kind": "multiply", + "input": 716, + "variable": 33 + }, + { + "kind": "xor", + "inputs": [ + 1704, + 1063 + ] + }, + { + "kind": "multiply", + "input": 716, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1706, + 1048, + 1061 + ] + }, + { + "kind": "multiply", + "input": 716, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 1708, + 1220 + ] + }, + { + "kind": "multiply", + "input": 716, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1710, + 1204 + ] + }, + { + "kind": "multiply", + "input": 724, + "variable": 9 + }, + { + "kind": "multiply", + "input": 724, + "variable": 10 + }, + { + "kind": "multiply", + "input": 724, + "variable": 11 + }, + { + "kind": "multiply", + "input": 724, + "variable": 15 + }, + { + "kind": "multiply", + "input": 724, + "variable": 16 + }, + { + "kind": "multiply", + "input": 724, + "variable": 29 + }, + { + "kind": "multiply", + "input": 724, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1718, + 789, + 1717, + 296, + 294 + ] + }, + { + "kind": "multiply", + "input": 724, + "variable": 34 + }, + { + "kind": "multiply", + "input": 724, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1721, + 976, + 1720, + 299, + 298 + ] + }, + { + "kind": "multiply", + "input": 724, + "variable": 37 + }, + { + "kind": "multiply", + "input": 724, + "variable": 38 + }, + { + "kind": "multiply", + "input": 724, + "variable": 39 + }, + { + "kind": "multiply", + "input": 726, + "variable": 10 + }, + { + "kind": "multiply", + "input": 728, + "variable": 9 + }, + { + "kind": "multiply", + "input": 728, + "variable": 10 + }, + { + "kind": "multiply", + "input": 728, + "variable": 11 + }, + { + "kind": "multiply", + "input": 728, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1730, + 680 + ] + }, + { + "kind": "multiply", + "input": 728, + "variable": 14 + }, + { + "kind": "xor", + "inputs": [ + 1732, + 667, + 25, + 11 + ] + }, + { + "kind": "multiply", + "input": 728, + "variable": 15 + }, + { + "kind": "multiply", + "input": 728, + "variable": 16 + }, + { + "kind": "multiply", + "input": 728, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1736, + 1696 + ] + }, + { + "kind": "multiply", + "input": 728, + "variable": 29 + }, + { + "kind": "multiply", + "input": 728, + "variable": 30 + }, + { + "kind": "multiply", + "input": 728, + "variable": 33 + }, + { + "kind": "multiply", + "input": 728, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1741, + 1052, + 1740 + ] + }, + { + "kind": "multiply", + "input": 728, + "variable": 35 + }, + { + "kind": "multiply", + "input": 728, + "variable": 37 + }, + { + "kind": "multiply", + "input": 728, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1745, + 1208, + 1744 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 9 + }, + { + "kind": "multiply", + "input": 731, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 1748, + 683, + 336 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 11 + }, + { + "kind": "multiply", + "input": 731, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1751, + 214, + 203, + 1750, + 683, + 336, + 1747, + 1749 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 15 + }, + { + "kind": "multiply", + "input": 731, + "variable": 16 + }, + { + "kind": "multiply", + "input": 731, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1755, + 1536, + 1754, + 1753, + 344, + 343, + 342, + 262 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 29 + }, + { + "kind": "multiply", + "input": 731, + "variable": 30 + }, + { + "kind": "multiply", + "input": 731, + "variable": 31 + }, + { + "kind": "multiply", + "input": 731, + "variable": 32 + }, + { + "kind": "xor", + "inputs": [ + 1760, + 938 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1762, + 1054, + 994 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 1764, + 995, + 1054, + 994, + 1763, + 354, + 353 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 37 + }, + { + "kind": "multiply", + "input": 731, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1767, + 1211 + ] + }, + { + "kind": "multiply", + "input": 731, + "variable": 39 + }, + { + "kind": "multiply", + "input": 733, + "variable": 9 + }, + { + "kind": "multiply", + "input": 733, + "variable": 10 + }, + { + "kind": "multiply", + "input": 733, + "variable": 11 + }, + { + "kind": "multiply", + "input": 733, + "variable": 15 + }, + { + "kind": "multiply", + "input": 733, + "variable": 16 + }, + { + "kind": "multiply", + "input": 733, + "variable": 29 + }, + { + "kind": "multiply", + "input": 733, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 1776, + 805, + 1775, + 369, + 368 + ] + }, + { + "kind": "multiply", + "input": 733, + "variable": 37 + }, + { + "kind": "multiply", + "input": 733, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1779, + 1179, + 1778, + 371, + 370, + 1228 + ] + }, + { + "kind": "multiply", + "input": 741, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 1781, + 712, + 375, + 708 + ] + }, + { + "kind": "multiply", + "input": 771, + "variable": 9 + }, + { + "kind": "multiply", + "input": 771, + "variable": 10 + }, + { + "kind": "multiply", + "input": 771, + "variable": 12 + }, + { + "kind": "multiply", + "input": 771, + "variable": 15 + }, + { + "kind": "multiply", + "input": 771, + "variable": 17 + }, + { + "kind": "multiply", + "input": 771, + "variable": 20 + }, + { + "kind": "multiply", + "input": 774, + "variable": 9 + }, + { + "kind": "multiply", + "input": 774, + "variable": 10 + }, + { + "kind": "multiply", + "input": 774, + "variable": 11 + }, + { + "kind": "multiply", + "input": 774, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1792, + 218, + 216, + 1791, + 1790, + 1789, + 813 + ] + }, + { + "kind": "multiply", + "input": 774, + "variable": 15 + }, + { + "kind": "multiply", + "input": 774, + "variable": 16 + }, + { + "kind": "multiply", + "input": 774, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1796, + 838, + 1539, + 1795, + 1794, + 1542, + 266, + 264 + ] + }, + { + "kind": "multiply", + "input": 774, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1798, + 442, + 440, + 838, + 1539, + 1542, + 266, + 264 + ] + }, + { + "kind": "multiply", + "input": 774, + "variable": 26 + }, + { + "kind": "multiply", + "input": 774, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1801, + 1759, + 1757, + 351, + 349 + ] + }, + { + "kind": "multiply", + "input": 774, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 1803, + 674, + 673, + 1759, + 1757, + 1800, + 351, + 349 + ] + }, + { + "kind": "multiply", + "input": 776, + "variable": 11 + }, + { + "kind": "multiply", + "input": 776, + "variable": 16 + }, + { + "kind": "multiply", + "input": 776, + "variable": 37 + }, + { + "kind": "multiply", + "input": 776, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1808, + 1181, + 1807, + 794, + 793, + 133, + 132, + 1183 + ] + }, + { + "kind": "multiply", + "input": 852, + "variable": 9 + }, + { + "kind": "multiply", + "input": 852, + "variable": 10 + }, + { + "kind": "multiply", + "input": 852, + "variable": 11 + }, + { + "kind": "multiply", + "input": 852, + "variable": 15 + }, + { + "kind": "multiply", + "input": 852, + "variable": 16 + }, + { + "kind": "multiply", + "input": 852, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 1815, + 1761, + 352, + 937 + ] + }, + { + "kind": "multiply", + "input": 852, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1817, + 938, + 1761, + 352, + 937, + 1816, + 859, + 858, + 106, + 105, + 852, + 25, + 731 + ] + }, + { + "kind": "multiply", + "input": 852, + "variable": 37 + }, + { + "kind": "multiply", + "input": 852, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1820, + 1225, + 1819, + 864, + 863, + 117, + 115 + ] + }, + { + "kind": "multiply", + "input": 862, + "variable": 9 + }, + { + "kind": "multiply", + "input": 862, + "variable": 11 + }, + { + "kind": "multiply", + "input": 862, + "variable": 15 + }, + { + "kind": "multiply", + "input": 862, + "variable": 16 + }, + { + "kind": "multiply", + "input": 862, + "variable": 26 + }, + { + "kind": "multiply", + "input": 862, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1827, + 954, + 1826, + 859, + 789, + 858, + 788, + 862 + ] + }, + { + "kind": "multiply", + "input": 862, + "variable": 37 + }, + { + "kind": "multiply", + "input": 862, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1830, + 1231, + 1829, + 864, + 863, + 795, + 793 + ] + }, + { + "kind": "multiply", + "input": 868, + "variable": 26 + }, + { + "kind": "multiply", + "input": 868, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1833, + 941, + 1832, + 887, + 886, + 157, + 156, + 868 + ] + }, + { + "kind": "multiply", + "input": 872, + "variable": 26 + }, + { + "kind": "multiply", + "input": 872, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1836, + 945, + 1835, + 887, + 886, + 186, + 185, + 872, + 26, + 1387 + ] + }, + { + "kind": "multiply", + "input": 872, + "variable": 33 + }, + { + "kind": "multiply", + "input": 872, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1839, + 1067, + 1838, + 891, + 890, + 193, + 192, + 42, + 1309, + 872 + ] + }, + { + "kind": "multiply", + "input": 878, + "variable": 26 + }, + { + "kind": "multiply", + "input": 878, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1842, + 950, + 1841, + 887, + 886, + 412, + 411, + 878, + 716, + 1507 + ] + }, + { + "kind": "multiply", + "input": 878, + "variable": 33 + }, + { + "kind": "multiply", + "input": 878, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1845, + 1070, + 1844, + 891, + 890, + 419, + 418, + 1025, + 1466, + 878 + ] + }, + { + "kind": "multiply", + "input": 882, + "variable": 26 + }, + { + "kind": "multiply", + "input": 882, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1848, + 952, + 1847, + 887, + 886, + 534, + 533, + 882 + ] + }, + { + "kind": "multiply", + "input": 885, + "variable": 26 + }, + { + "kind": "multiply", + "input": 885, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1851, + 953, + 1850, + 887, + 886, + 607, + 606, + 885 + ] + }, + { + "kind": "multiply", + "input": 905, + "variable": 26 + }, + { + "kind": "multiply", + "input": 905, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1854, + 955, + 1853, + 902, + 805, + 901, + 804, + 905 + ] + }, + { + "kind": "multiply", + "input": 913, + "variable": 26 + }, + { + "kind": "multiply", + "input": 913, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1857, + 951, + 1856, + 915, + 914, + 499, + 498, + 913, + 29, + 1562 + ] + }, + { + "kind": "multiply", + "input": 913, + "variable": 33 + }, + { + "kind": "multiply", + "input": 913, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1860, + 1071, + 1859, + 917, + 916, + 505, + 504, + 44 + ] + }, + { + "kind": "multiply", + "input": 921, + "variable": 9 + }, + { + "kind": "multiply", + "input": 921, + "variable": 11 + }, + { + "kind": "multiply", + "input": 921, + "variable": 15 + }, + { + "kind": "multiply", + "input": 921, + "variable": 16 + }, + { + "kind": "multiply", + "input": 921, + "variable": 26 + }, + { + "kind": "multiply", + "input": 921, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1867, + 936, + 1866, + 921, + 728 + ] + }, + { + "kind": "multiply", + "input": 921, + "variable": 37 + }, + { + "kind": "multiply", + "input": 921, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1870, + 1224, + 1869 + ] + }, + { + "kind": "multiply", + "input": 929, + "variable": 9 + }, + { + "kind": "multiply", + "input": 929, + "variable": 10 + }, + { + "kind": "multiply", + "input": 929, + "variable": 11 + }, + { + "kind": "multiply", + "input": 929, + "variable": 15 + }, + { + "kind": "multiply", + "input": 929, + "variable": 16 + }, + { + "kind": "multiply", + "input": 929, + "variable": 33 + }, + { + "kind": "multiply", + "input": 929, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 1878, + 1072, + 1877, + 931, + 930, + 750, + 749, + 46, + 45, + 1076, + 39 + ] + }, + { + "kind": "multiply", + "input": 929, + "variable": 37 + }, + { + "kind": "multiply", + "input": 929, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 1881, + 1226, + 1880, + 933, + 932, + 752, + 751, + 56, + 55, + 1228, + 1230, + 39 + ] + }, + { + "kind": "multiply", + "input": 935, + "variable": 10 + }, + { + "kind": "multiply", + "input": 935, + "variable": 20 + }, + { + "kind": "multiply", + "input": 940, + "variable": 11 + }, + { + "kind": "multiply", + "input": 940, + "variable": 15 + }, + { + "kind": "multiply", + "input": 940, + "variable": 16 + }, + { + "kind": "multiply", + "input": 940, + "variable": 37 + }, + { + "kind": "multiply", + "input": 940, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 1889, + 1180, + 1888, + 55 + ] + }, + { + "kind": "multiply", + "input": 947, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 1891, + 1782, + 374, + 27, + 26 + ] + }, + { + "kind": "multiply", + "input": 947, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 1893, + 763, + 377, + 716, + 27 + ] + }, + { + "kind": "multiply", + "input": 963, + "variable": 12 + }, + { + "kind": "multiply", + "input": 963, + "variable": 17 + }, + { + "kind": "multiply", + "input": 966, + "variable": 9 + }, + { + "kind": "multiply", + "input": 966, + "variable": 10 + }, + { + "kind": "multiply", + "input": 966, + "variable": 11 + }, + { + "kind": "multiply", + "input": 966, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1900, + 1000 + ] + }, + { + "kind": "multiply", + "input": 966, + "variable": 15 + }, + { + "kind": "multiply", + "input": 966, + "variable": 16 + }, + { + "kind": "multiply", + "input": 966, + "variable": 17 + }, + { + "kind": "multiply", + "input": 966, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1905, + 1035, + 993, + 1904 + ] + }, + { + "kind": "multiply", + "input": 971, + "variable": 12 + }, + { + "kind": "multiply", + "input": 971, + "variable": 15 + }, + { + "kind": "multiply", + "input": 971, + "variable": 16 + }, + { + "kind": "multiply", + "input": 979, + "variable": 9 + }, + { + "kind": "multiply", + "input": 979, + "variable": 10 + }, + { + "kind": "multiply", + "input": 979, + "variable": 11 + }, + { + "kind": "multiply", + "input": 979, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1913, + 830, + 1011 + ] + }, + { + "kind": "multiply", + "input": 981, + "variable": 9 + }, + { + "kind": "multiply", + "input": 981, + "variable": 10 + }, + { + "kind": "multiply", + "input": 981, + "variable": 11 + }, + { + "kind": "multiply", + "input": 981, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1918, + 986, + 1899, + 1917, + 1916, + 1915 + ] + }, + { + "kind": "multiply", + "input": 981, + "variable": 15 + }, + { + "kind": "multiply", + "input": 981, + "variable": 16 + }, + { + "kind": "multiply", + "input": 981, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1922, + 1546, + 1903, + 1921, + 1920 + ] + }, + { + "kind": "multiply", + "input": 981, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1924, + 1765, + 1743, + 1052, + 1740 + ] + }, + { + "kind": "multiply", + "input": 1025, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1025, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1025, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1025, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 1929, + 1042 + ] + }, + { + "kind": "multiply", + "input": 1025, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1025, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 1932, + 1705 + ] + }, + { + "kind": "multiply", + "input": 1025, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 1934, + 1051 + ] + }, + { + "kind": "multiply", + "input": 1066, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1936, + 998, + 1895, + 873, + 194, + 193, + 192, + 969, + 64 + ] + }, + { + "kind": "multiply", + "input": 1066, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1938, + 1034, + 1896, + 876, + 974, + 67, + 44, + 1025 + ] + }, + { + "kind": "multiply", + "input": 1069, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1940, + 1020, + 1907, + 909, + 1018, + 1017, + 1016, + 969, + 232, + 43, + 42 + ] + }, + { + "kind": "multiply", + "input": 1069, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1069, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 1943, + 1044, + 1909, + 911, + 1942, + 1908, + 910, + 973, + 972, + 234, + 233, + 1861, + 1525, + 913, + 1069, + 971, + 1448, + 1894, + 15, + 7, + 40, + 477 + ] + }, + { + "kind": "multiply", + "input": 1074, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1074, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1074, + "variable": 12 + }, + { + "kind": "multiply", + "input": 1074, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1074, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1074, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 1951, + 1742, + 936 + ] + }, + { + "kind": "multiply", + "input": 1076, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 1956, + 1007, + 1947, + 1059, + 1009, + 1057, + 1955, + 1946, + 1055, + 1954, + 943 + ] + }, + { + "kind": "multiply", + "input": 1076, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1076, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1960, + 1705, + 1950, + 1707, + 1959, + 1949, + 1060, + 1958, + 1948 + ] + }, + { + "kind": "multiply", + "input": 1082, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 1966, + 1328, + 1129, + 195, + 1084, + 162, + 141, + 49, + 48, + 171 + ] + }, + { + "kind": "multiply", + "input": 1082, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 1971, + 1149, + 1147 + ] + }, + { + "kind": "multiply", + "input": 1082, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 1973, + 1594, + 1149, + 1147, + 538, + 1095, + 162, + 150, + 50, + 48, + 19 + ] + }, + { + "kind": "multiply", + "input": 1082, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 1975, + 1165, + 1163 + ] + }, + { + "kind": "multiply", + "input": 1082, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1082, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 13 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 1983, + 1136, + 1982 + ] + }, + { + "kind": "multiply", + "input": 1086, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 1985, + 1502, + 1981, + 1984 + ] + }, + { + "kind": "multiply", + "input": 1086, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 1987, + 1155, + 1153, + 1152 + ] + }, + { + "kind": "multiply", + "input": 1086, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 1989, + 1613, + 1155, + 1153 + ] + }, + { + "kind": "multiply", + "input": 1086, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1086, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1992, + 1140, + 1991, + 1153, + 1988, + 1098, + 538, + 1095, + 181, + 180, + 178, + 1097, + 1086, + 521 + ] + }, + { + "kind": "multiply", + "input": 1093, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 1994, + 1986, + 1091, + 195, + 177, + 176, + 175, + 174, + 1084, + 397, + 1093, + 49, + 16, + 1086, + 399 + ] + }, + { + "kind": "multiply", + "input": 1093, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1093, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1093, + "variable": 22 + }, + { + "kind": "xor", + "inputs": [ + 1998, + 1158, + 1997, + 1996, + 1098, + 538, + 1095, + 407, + 406, + 404, + 50, + 1097, + 1093 + ] + }, + { + "kind": "multiply", + "input": 1097, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 2000, + 1972, + 1094, + 149, + 1080, + 514, + 50, + 1097 + ] + }, + { + "kind": "multiply", + "input": 1097, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2002, + 1988, + 1094, + 178, + 1083, + 518, + 50, + 1097, + 2001, + 49, + 20, + 1086, + 521, + 1993 + ] + }, + { + "kind": "multiply", + "input": 1097, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2004, + 1990, + 1152, + 538, + 1095, + 195, + 179, + 1084, + 519, + 50, + 49, + 20, + 1993, + 2003 + ] + }, + { + "kind": "multiply", + "input": 1097, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2006, + 1174, + 1172, + 1171 + ] + }, + { + "kind": "multiply", + "input": 1101, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1101, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2009, + 1663, + 1166, + 612, + 195, + 1084, + 592, + 51, + 49, + 594 + ] + }, + { + "kind": "multiply", + "input": 1101, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2011, + 2007, + 1099, + 530, + 1094, + 601, + 51, + 1101, + 1690, + 50, + 24, + 1097, + 1641, + 1671, + 2001, + 48, + 615, + 1082, + 47 + ] + }, + { + "kind": "multiply", + "input": 1101, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2013, + 1674, + 1171, + 612, + 538, + 1095, + 602, + 51, + 50, + 24, + 604, + 1641, + 22, + 19, + 589, + 1974, + 21, + 3 + ] + }, + { + "kind": "multiply", + "input": 1128, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 13 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2018, + 451 + ] + }, + { + "kind": "multiply", + "input": 1128, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2020, + 567, + 518 + ] + }, + { + "kind": "multiply", + "input": 1128, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1128, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 4 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2028, + 1552, + 274, + 1550, + 273, + 457, + 1554 + ] + }, + { + "kind": "multiply", + "input": 1132, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2030, + 1475, + 1550, + 273, + 457, + 1554, + 2029 + ] + }, + { + "kind": "multiply", + "input": 1132, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2032, + 1326, + 548 + ] + }, + { + "kind": "multiply", + "input": 1132, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 2035, + 549, + 2034, + 1326, + 548, + 2033 + ] + }, + { + "kind": "multiply", + "input": 1132, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2037, + 1679, + 1631 + ] + }, + { + "kind": "multiply", + "input": 1132, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 28 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1132, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1146, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1146, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 2044, + 541, + 19, + 1151 + ] + }, + { + "kind": "multiply", + "input": 1146, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2046, + 2021, + 20, + 1157 + ] + }, + { + "kind": "multiply", + "input": 1146, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2048, + 650, + 601, + 24 + ] + }, + { + "kind": "multiply", + "input": 1146, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1146, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1146, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 4 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 2056, + 1578 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2058, + 2033, + 2036, + 1324 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2060, + 1322, + 2034, + 2033, + 1582 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2063, + 1555, + 2062, + 279, + 1586 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2065, + 655, + 630, + 653 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2067, + 631, + 655, + 630, + 1590, + 1589, + 653 + ] + }, + { + "kind": "multiply", + "input": 1151, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 28 + }, + { + "kind": "multiply", + "input": 1151, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 2073, + 209 + ] + }, + { + "kind": "multiply", + "input": 1157, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 13 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2079, + 462, + 2078, + 2077, + 1601 + ] + }, + { + "kind": "multiply", + "input": 1157, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2081, + 1657, + 1654 + ] + }, + { + "kind": "multiply", + "input": 1157, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2083, + 1655, + 1657, + 1654, + 2082, + 1606, + 1605, + 1604 + ] + }, + { + "kind": "multiply", + "input": 1157, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2087, + 692, + 2086, + 2085 + ] + }, + { + "kind": "multiply", + "input": 1157, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1157, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2091, + 824, + 2090, + 2089 + ] + }, + { + "kind": "multiply", + "input": 1170, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 4 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 2096, + 2038, + 2023, + 2015, + 1170 + ] + }, + { + "kind": "multiply", + "input": 1170, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 28 + }, + { + "kind": "multiply", + "input": 1170, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 4 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 2109, + 2066, + 2049, + 604, + 615, + 1151, + 2045, + 589, + 516, + 1682 + ] + }, + { + "kind": "multiply", + "input": 1176, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1176, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 2115, + 1746 + ] + }, + { + "kind": "multiply", + "input": 1228, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 2118, + 1769, + 1766, + 938 + ] + }, + { + "kind": "multiply", + "input": 1228, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 2123, + 1191, + 1216, + 945, + 1190, + 1214, + 2122 + ] + }, + { + "kind": "multiply", + "input": 1228, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1228, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 2129, + 2116, + 936 + ] + }, + { + "kind": "multiply", + "input": 1230, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 2134, + 1216, + 1214, + 2133, + 1213, + 2121, + 2132, + 943 + ] + }, + { + "kind": "multiply", + "input": 1230, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 2138, + 1709, + 1218, + 1711, + 2137, + 1217, + 2136 + ] + }, + { + "kind": "multiply", + "input": 1230, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1230, + "variable": 32 + }, + { + "kind": "xor", + "inputs": [ + 2141, + 960 + ] + }, + { + "kind": "multiply", + "input": 1234, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1234, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2144, + 2027 + ] + }, + { + "kind": "multiply", + "input": 1234, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2146, + 1314, + 2027, + 2143, + 201 + ] + }, + { + "kind": "multiply", + "input": 1234, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2148, + 2054, + 1575 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2151, + 1532, + 248, + 1530 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2154, + 430, + 455, + 1532, + 248, + 429, + 1530, + 247, + 428, + 1529, + 246, + 453, + 432 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2157, + 1596, + 2156 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2163, + 1750, + 337, + 683, + 1747, + 1749, + 335 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2165, + 663, + 1750, + 2162, + 337, + 662, + 683, + 661, + 1747, + 1749, + 335, + 681, + 2164 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2169, + 1791, + 2167, + 1790, + 1789, + 813 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 2171, + 1002, + 1000, + 1901, + 986, + 1899, + 1917, + 1898, + 1897 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2173, + 1188 + ] + }, + { + "kind": "multiply", + "input": 1238, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1238, + "variable": 39 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2178, + 2152 + ] + }, + { + "kind": "multiply", + "input": 1242, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2181, + 1754, + 1753, + 343, + 342, + 262 + ] + }, + { + "kind": "multiply", + "input": 1242, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2183, + 669, + 1754, + 2180, + 668, + 1753, + 343, + 342, + 263, + 261, + 1697, + 2182 + ] + }, + { + "kind": "multiply", + "input": 1242, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 30 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2187, + 1795, + 2185, + 1794, + 266, + 264, + 1797 + ] + }, + { + "kind": "multiply", + "input": 1242, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 2189, + 1544, + 1035, + 1906, + 1903, + 1921, + 1902 + ] + }, + { + "kind": "multiply", + "input": 1242, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1242, + "variable": 39 + }, + { + "kind": "multiply", + "input": 1249, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2193, + 2095 + ] + }, + { + "kind": "multiply", + "input": 1249, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2195, + 2108 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2197, + 815, + 1258, + 813, + 1793 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1272, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2200, + 2167, + 2199, + 815, + 1260, + 1259, + 813 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2202, + 1542, + 266, + 1261, + 836 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2204, + 2185, + 1542, + 266, + 264, + 1262, + 836 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2206, + 440, + 1539, + 264, + 427, + 1263, + 1262, + 1261, + 836, + 1797, + 2203 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1272, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2209, + 1757, + 349, + 1267 + ] + }, + { + "kind": "multiply", + "input": 1272, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2211, + 673, + 1757, + 2208, + 349, + 660, + 1267 + ] + }, + { + "kind": "multiply", + "input": 1275, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1275, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1275, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2215, + 2176, + 2214, + 2213, + 1260, + 1259, + 1258, + 1186 + ] + }, + { + "kind": "multiply", + "input": 1275, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1275, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2218, + 2192, + 2217, + 272, + 1262, + 1261 + ] + }, + { + "kind": "multiply", + "input": 1275, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 2220, + 2119 + ] + }, + { + "kind": "multiply", + "input": 1275, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2222, + 1769, + 357, + 1267, + 2117 + ] + }, + { + "kind": "multiply", + "input": 1275, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2224, + 678, + 1769, + 2119, + 2221, + 357, + 660, + 1267, + 1209 + ] + }, + { + "kind": "multiply", + "input": 1287, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1287, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1287, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1287, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2229, + 2071, + 1593 + ] + }, + { + "kind": "multiply", + "input": 1287, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 2231, + 564, + 2071, + 2228 + ] + }, + { + "kind": "multiply", + "input": 1287, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2233, + 1687 + ] + }, + { + "kind": "multiply", + "input": 1287, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2235, + 639, + 1687 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2240, + 843 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2242, + 470, + 843, + 2241, + 2239, + 841, + 1498, + 822 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2245, + 2090, + 1611 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2250, + 698, + 2249, + 2248 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 2252, + 1914, + 1912, + 1911, + 1910 + ] + }, + { + "kind": "multiply", + "input": 1304, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1304, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2256, + 1194, + 2255, + 2254 + ] + }, + { + "kind": "multiply", + "input": 1309, + "variable": 2 + }, + { + "kind": "multiply", + "input": 1309, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1309, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2260, + 1059, + 1006, + 2259, + 1009, + 1057, + 1946, + 944, + 1055, + 1957, + 1953, + 942, + 1297, + 1296, + 75, + 74, + 1076, + 39, + 42, + 1309, + 1387, + 1837 + ] + }, + { + "kind": "multiply", + "input": 1309, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2262, + 700, + 1059, + 1006, + 1009, + 1955, + 944 + ] + }, + { + "kind": "multiply", + "input": 1309, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1337, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1337, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2266, + 1482 + ] + }, + { + "kind": "multiply", + "input": 1337, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2268, + 1480, + 1534, + 1479 + ] + }, + { + "kind": "multiply", + "input": 1337, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1337, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1337, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2272, + 1197, + 2271, + 2219 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1353, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1353, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2276, + 1752, + 680, + 1345, + 1729 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1353, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2279, + 1756, + 436, + 1696, + 1735 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1353, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 2282, + 2210, + 2281, + 1355, + 1354, + 1739 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 33 + }, + { + "kind": "xor", + "inputs": [ + 2284, + 1765, + 988, + 1743, + 1052 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2286, + 2223, + 937 + ] + }, + { + "kind": "multiply", + "input": 1353, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2288, + 2131 + ] + }, + { + "kind": "multiply", + "input": 1361, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2290, + 2026 + ] + }, + { + "kind": "multiply", + "input": 1361, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2292, + 2053, + 1573 + ] + }, + { + "kind": "multiply", + "input": 1374, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1374, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1374, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2296, + 2039, + 1364 + ] + }, + { + "kind": "multiply", + "input": 1374, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1374, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2299, + 2069, + 1366, + 1591 + ] + }, + { + "kind": "multiply", + "input": 1374, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 2301, + 561, + 2069, + 2298, + 552, + 1366 + ] + }, + { + "kind": "multiply", + "input": 1374, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2303, + 1684, + 1369 + ] + }, + { + "kind": "multiply", + "input": 1374, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2305, + 636, + 1684, + 625, + 1369 + ] + }, + { + "kind": "multiply", + "input": 1376, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2309, + 452, + 2308, + 2307, + 1479 + ] + }, + { + "kind": "multiply", + "input": 1376, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2312, + 1731, + 1729 + ] + }, + { + "kind": "multiply", + "input": 1376, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2315, + 812, + 2237, + 2314 + ] + }, + { + "kind": "multiply", + "input": 1376, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 2317, + 999, + 2258, + 1919, + 2172 + ] + }, + { + "kind": "multiply", + "input": 1376, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1376, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2321, + 1185, + 2320, + 2319 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2323, + 2086, + 1382, + 1608 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1387, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2326, + 1659, + 2325, + 1384, + 1383 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1387, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2329, + 827, + 2249, + 2328, + 817, + 1389 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 2331, + 1007, + 1059, + 1006, + 2259, + 1004, + 1392, + 1009, + 1057, + 1955, + 1946 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1387, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2334, + 1216 + ] + }, + { + "kind": "multiply", + "input": 1387, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2336, + 1191, + 1216, + 2333, + 2335, + 1189, + 2122, + 2133, + 2124 + ] + }, + { + "kind": "multiply", + "input": 1404, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1404, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1404, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1404, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1404, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2342, + 835 + ] + }, + { + "kind": "multiply", + "input": 1407, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2348, + 1737, + 1735 + ] + }, + { + "kind": "multiply", + "input": 1413, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 2352, + 1926, + 2344, + 1923, + 2190 + ] + }, + { + "kind": "multiply", + "input": 1413, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1413, + "variable": 39 + }, + { + "kind": "multiply", + "input": 1417, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1420, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2358, + 2093 + ] + }, + { + "kind": "multiply", + "input": 1420, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2360, + 2107 + ] + }, + { + "kind": "multiply", + "input": 1438, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1438, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1438, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1438, + "variable": 18 + }, + { + "kind": "multiply", + "input": 1438, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1438, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1441, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1441, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1441, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2370, + 2322 + ] + }, + { + "kind": "multiply", + "input": 1441, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1441, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1441, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2374, + 1746, + 2116 + ] + }, + { + "kind": "multiply", + "input": 1445, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 2376, + 172, + 2016 + ] + }, + { + "kind": "multiply", + "input": 1445, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 2382, + 489, + 2381, + 2380, + 254, + 253, + 252, + 206, + 205, + 204, + 399 + ] + }, + { + "kind": "multiply", + "input": 1445, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2385, + 1598, + 2384 + ] + }, + { + "kind": "multiply", + "input": 1445, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 22 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1445, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 2393, + 1980 + ] + }, + { + "kind": "multiply", + "input": 1448, + "variable": 1 + }, + { + "kind": "multiply", + "input": 1448, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1448, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1448, + "variable": 12 + }, + { + "kind": "multiply", + "input": 1450, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1450, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1450, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2401, + 2343, + 2351, + 2341, + 2350, + 2364, + 2340 + ] + }, + { + "kind": "multiply", + "input": 1450, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1450, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2404, + 1196, + 2403, + 2356, + 2355, + 2354, + 2373 + ] + }, + { + "kind": "multiply", + "input": 1463, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 34 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 38 + }, + { + "kind": "multiply", + "input": 1463, + "variable": 39 + }, + { + "kind": "multiply", + "input": 1466, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1466, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2414, + 1933, + 1931, + 2413, + 1707, + 1949, + 949, + 1060, + 1948, + 948, + 1961, + 1028, + 1027, + 499, + 498, + 1458, + 1457, + 75, + 74, + 1076, + 39, + 1025, + 1466, + 1507, + 1843 + ] + }, + { + "kind": "multiply", + "input": 1466, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2416, + 1063, + 1705, + 1933, + 1931, + 1959, + 949, + 1958, + 948 + ] + }, + { + "kind": "multiply", + "input": 1507, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1507, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1507, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1507, + "variable": 35 + }, + { + "kind": "xor", + "inputs": [ + 2421, + 1705, + 1931, + 2413, + 1707, + 1959, + 1949 + ] + }, + { + "kind": "multiply", + "input": 1507, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1507, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2424, + 1709 + ] + }, + { + "kind": "multiply", + "input": 1507, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2426, + 2127, + 2423, + 950 + ] + }, + { + "kind": "multiply", + "input": 1522, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1522, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1522, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2430, + 1498, + 822, + 1500 + ] + }, + { + "kind": "multiply", + "input": 1522, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1522, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1522, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2434, + 1205, + 2433, + 1207, + 2412, + 2411, + 2410 + ] + }, + { + "kind": "multiply", + "input": 1562, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1562, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2437, + 1703, + 1699, + 1557, + 712, + 375, + 757 + ] + }, + { + "kind": "multiply", + "input": 1562, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2439, + 1495 + ] + }, + { + "kind": "multiply", + "input": 1562, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2441, + 2432, + 2420, + 2408, + 2419 + ] + }, + { + "kind": "multiply", + "input": 1562, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2443, + 1222, + 1201 + ] + }, + { + "kind": "multiply", + "input": 1562, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2445, + 1202, + 1222, + 1201, + 2444, + 2127, + 1709, + 950, + 2427, + 2425, + 2126, + 2137 + ] + }, + { + "kind": "multiply", + "input": 1572, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1617, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1624, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2449, + 2106 + ] + }, + { + "kind": "multiply", + "input": 1624, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2451, + 2114 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 2453, + 2361, + 616, + 542, + 1625, + 2293, + 316, + 150, + 1415 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 2455, + 2196, + 617, + 544, + 1626, + 2149 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 2458, + 1589, + 653 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 8 + }, + { + "kind": "xor", + "inputs": [ + 2460, + 631, + 620, + 547, + 1590, + 653, + 2068, + 2459, + 619, + 1629, + 546, + 2057, + 1628, + 1577, + 2066, + 2457, + 618, + 545, + 2055, + 1627, + 1576, + 1641, + 1151 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2464, + 1605, + 1604 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 2466, + 1655, + 1606, + 2084, + 2465, + 656, + 2102, + 1672, + 2101, + 2463, + 2100, + 2462, + 624, + 551, + 623, + 550, + 622, + 549, + 621, + 548, + 1633, + 2061, + 1632, + 1581, + 1631, + 2036, + 1324, + 1580, + 1630, + 2059, + 1579, + 179, + 592, + 519, + 150, + 1641, + 594, + 20 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2471, + 1695, + 2470, + 2112, + 2469, + 2111, + 2468, + 648, + 494, + 629, + 556, + 628, + 555, + 627, + 554, + 626, + 553, + 1637, + 2064, + 1636, + 1585, + 1635, + 1584, + 1634, + 1583, + 602, + 150, + 1176, + 1641, + 647 + ] + }, + { + "kind": "multiply", + "input": 1641, + "variable": 27 + }, + { + "kind": "multiply", + "input": 1641, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 2474, + 2452, + 639, + 564, + 1646, + 2230, + 1621, + 1279 + ] + }, + { + "kind": "multiply", + "input": 1668, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2476, + 2104 + ] + }, + { + "kind": "multiply", + "input": 1668, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2478, + 2113, + 2473, + 1665, + 636, + 561, + 1643, + 2300, + 602, + 150 + ] + }, + { + "kind": "multiply", + "input": 1671, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1671, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1671, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1671, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2483, + 1604 + ] + }, + { + "kind": "multiply", + "input": 1671, + "variable": 12 + }, + { + "kind": "xor", + "inputs": [ + 2485, + 1657, + 1654, + 2082, + 1604, + 2484 + ] + }, + { + "kind": "multiply", + "input": 1671, + "variable": 36 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2492, + 1852 + ] + }, + { + "kind": "multiply", + "input": 1682, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1682, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1690, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1690, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1690, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1690, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2499, + 2487, + 631, + 655, + 630, + 1165, + 1594, + 1163, + 651, + 612, + 1095, + 650, + 601, + 162, + 541, + 51, + 1690, + 1176, + 1641, + 2001, + 1151, + 1082, + 1974 + ] + }, + { + "kind": "multiply", + "input": 1719, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 37 + }, + { + "kind": "multiply", + "input": 1719, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2507, + 2140 + ] + }, + { + "kind": "multiply", + "input": 1719, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2509, + 2128, + 2506, + 954 + ] + }, + { + "kind": "multiply", + "input": 1722, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1722, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1733, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1733, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1733, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2515, + 2313, + 1728, + 1727, + 2513, + 2277, + 321, + 186, + 287, + 92 + ] + }, + { + "kind": "multiply", + "input": 1733, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1733, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2518, + 2349, + 1734, + 2517, + 2280, + 1349, + 1422, + 290, + 97 + ] + }, + { + "kind": "multiply", + "input": 1733, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1777, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1777, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2522, + 829, + 2502 + ] + }, + { + "kind": "multiply", + "input": 1777, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2524, + 2330, + 2503 + ] + }, + { + "kind": "multiply", + "input": 1777, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1777, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2527, + 2442, + 2505 + ] + }, + { + "kind": "multiply", + "input": 1780, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2529, + 2124, + 2337 + ] + }, + { + "kind": "multiply", + "input": 1780, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1780, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2532, + 2446 + ] + }, + { + "kind": "multiply", + "input": 1809, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1809, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1809, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2536, + 2257 + ] + }, + { + "kind": "multiply", + "input": 1809, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1809, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2539, + 2435 + ] + }, + { + "kind": "multiply", + "input": 1818, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2541, + 1749, + 335, + 681, + 665 + ] + }, + { + "kind": "multiply", + "input": 1818, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1818, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2544, + 2162, + 337, + 2543, + 336, + 1749, + 681 + ] + }, + { + "kind": "multiply", + "input": 1818, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2546, + 756, + 342, + 754, + 672, + 2184, + 2278, + 1347, + 707, + 480, + 753, + 1538, + 1696, + 1737, + 1734, + 2280, + 1349, + 706, + 479, + 659, + 1253, + 856, + 290, + 289, + 107, + 106, + 105, + 97, + 76, + 75, + 74, + 29, + 716, + 2415, + 2519 + ] + }, + { + "kind": "multiply", + "input": 1818, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2548, + 2180, + 756, + 343, + 261, + 754 + ] + }, + { + "kind": "multiply", + "input": 1821, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1821, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1821, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2552, + 2175, + 1812, + 2551, + 1811, + 2550, + 1810, + 2216 + ] + }, + { + "kind": "multiply", + "input": 1821, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1821, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2555, + 2191, + 1814, + 2554, + 1813, + 271, + 2273 + ] + }, + { + "kind": "multiply", + "input": 1828, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1828, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1828, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2559, + 2251, + 2503 + ] + }, + { + "kind": "multiply", + "input": 1831, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1831, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1831, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2563, + 2537, + 1823, + 2535, + 2562 + ] + }, + { + "kind": "multiply", + "input": 1831, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1831, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2566, + 2540, + 1825, + 2538, + 2565 + ] + }, + { + "kind": "multiply", + "input": 1834, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1834, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1834, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1834, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2571, + 2070, + 1592 + ] + }, + { + "kind": "multiply", + "input": 1834, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 2573, + 562, + 2070, + 2570 + ] + }, + { + "kind": "multiply", + "input": 1834, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2575, + 1685 + ] + }, + { + "kind": "multiply", + "input": 1834, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2577, + 637, + 1685 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 2579, + 2545, + 1346, + 665, + 1752, + 339 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2581, + 761, + 1377, + 759, + 690, + 1701, + 710, + 489, + 758, + 1699, + 2418 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1837, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2584, + 2085, + 1382, + 1609, + 1608 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1837, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2587, + 1658, + 2586, + 1384, + 1383 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1837, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2590, + 826, + 2248, + 2589, + 817, + 1389 + ] + }, + { + "kind": "multiply", + "input": 1837, + "variable": 38 + }, + { + "kind": "xor", + "inputs": [ + 2592, + 2335, + 1214 + ] + }, + { + "kind": "multiply", + "input": 1840, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 2594, + 1899, + 1917, + 1898, + 1916, + 1897, + 1915, + 1919, + 2172, + 2318, + 326, + 194, + 865, + 167, + 93, + 92, + 91, + 90, + 1840, + 5, + 1238, + 966, + 981 + ] + }, + { + "kind": "multiply", + "input": 1840, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2596, + 1040, + 1042, + 1930, + 1018, + 489, + 1039, + 1928, + 1017, + 488, + 1038, + 1927, + 1016, + 487, + 417, + 875, + 874, + 177, + 449, + 1290, + 1289, + 1293, + 68, + 44, + 1025, + 878, + 43, + 17, + 16 + ] + }, + { + "kind": "multiply", + "input": 1840, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1840, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1843, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 2600, + 2549, + 672, + 1756, + 2184, + 1350, + 753, + 1538, + 1737, + 2347 + ] + }, + { + "kind": "multiply", + "input": 1843, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1843, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1846, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 2604, + 1903, + 1921, + 1902, + 1920, + 1015, + 480, + 1923, + 2190, + 2353, + 1014, + 479, + 865, + 391, + 1425, + 98, + 97, + 96, + 1846, + 43, + 17, + 482, + 1242, + 966, + 981 + ] + }, + { + "kind": "multiply", + "input": 1846, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1846, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1849, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2608, + 2088, + 2448 + ] + }, + { + "kind": "multiply", + "input": 1852, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1852, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2611, + 2105 + ] + }, + { + "kind": "multiply", + "input": 1855, + "variable": 3 + }, + { + "kind": "xor", + "inputs": [ + 2613, + 1804, + 2212 + ] + }, + { + "kind": "multiply", + "input": 1855, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1855, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1855, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2617, + 2591 + ] + }, + { + "kind": "multiply", + "input": 1855, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1855, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1858, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2621, + 2438, + 1556, + 906, + 374, + 29, + 716, + 27, + 17 + ] + }, + { + "kind": "multiply", + "input": 1858, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1858, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2624, + 1494, + 690, + 1701, + 1497, + 1380, + 1485, + 1559, + 908, + 710, + 489, + 376, + 758, + 1703, + 2623 + ] + }, + { + "kind": "multiply", + "input": 1858, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2626, + 2444, + 1204, + 2127, + 1709, + 950, + 1218, + 2126, + 2446 + ] + }, + { + "kind": "multiply", + "input": 1868, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2628, + 2277, + 287, + 92, + 2516, + 728, + 1733 + ] + }, + { + "kind": "multiply", + "input": 1868, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1868, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1868, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2632, + 2280, + 1349, + 706, + 479, + 290, + 97, + 2519, + 728, + 1733 + ] + }, + { + "kind": "multiply", + "input": 1868, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2634, + 2601, + 2280, + 1349, + 659, + 1250, + 865, + 1253, + 391, + 1421, + 857, + 291, + 290, + 107, + 106, + 98, + 76, + 75, + 29, + 716, + 1843, + 2415 + ] + }, + { + "kind": "multiply", + "input": 1871, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1871, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1871, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2638, + 2371, + 1863, + 2369, + 2637 + ] + }, + { + "kind": "multiply", + "input": 1871, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1871, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2641, + 2405, + 1865, + 2372, + 2640 + ] + }, + { + "kind": "multiply", + "input": 1879, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2643, + 2332 + ] + }, + { + "kind": "multiply", + "input": 1879, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2645, + 2417, + 1961, + 1875, + 925, + 742, + 720, + 719, + 1028, + 1027, + 505, + 504, + 499, + 498, + 1459, + 76, + 45, + 1074, + 39, + 44, + 29, + 1025, + 1507, + 1843 + ] + }, + { + "kind": "multiply", + "input": 1879, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2647, + 2422 + ] + }, + { + "kind": "multiply", + "input": 1882, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1882, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1882, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2651, + 2530, + 1874, + 1398, + 924, + 737, + 2121, + 2132, + 943, + 2135, + 2650, + 1873, + 923, + 736, + 1212, + 2120, + 942, + 2649, + 1872, + 922, + 735, + 1772, + 363, + 329, + 328, + 327, + 198, + 197, + 196, + 55, + 1228, + 39 + ] + }, + { + "kind": "multiply", + "input": 1882, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1882, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2654, + 2533, + 1876, + 2125, + 2136, + 948, + 2139, + 2653, + 1875, + 1200, + 1569, + 926, + 743, + 925, + 742, + 722, + 721, + 508, + 507, + 386, + 385, + 1774, + 365, + 424, + 423, + 422, + 329, + 328, + 327, + 55, + 1228, + 39, + 2652, + 1562, + 716, + 1507, + 2519 + ] + }, + { + "kind": "multiply", + "input": 1890, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2656, + 1193, + 2122, + 2133, + 2124, + 1213, + 2121, + 2132, + 943, + 2650, + 1873, + 923, + 736, + 1212, + 2120, + 942, + 2649, + 1872, + 922, + 735, + 1885, + 55, + 1228, + 39, + 2261, + 2516 + ] + }, + { + "kind": "multiply", + "input": 1890, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1890, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2659, + 1711, + 2126, + 2137, + 2446, + 2627, + 1217, + 2125, + 948, + 2653, + 1875, + 925, + 742, + 918, + 722, + 721, + 508, + 1887, + 55, + 1228, + 39, + 1562, + 1858, + 716, + 2415, + 2519, + 2635 + ] + }, + { + "kind": "multiply", + "input": 1892, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 2661, + 2377, + 243, + 199, + 1941, + 1445, + 1892, + 7, + 5 + ] + }, + { + "kind": "multiply", + "input": 1892, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1892, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 2671, + 2394, + 269, + 222, + 1088, + 172 + ] + }, + { + "kind": "multiply", + "input": 1894, + "variable": 1 + }, + { + "kind": "multiply", + "input": 1894, + "variable": 10 + }, + { + "kind": "multiply", + "input": 1894, + "variable": 12 + }, + { + "kind": "multiply", + "input": 1937, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1937, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2677, + 831, + 1914, + 2676, + 2599, + 1013, + 1912, + 2598, + 1911, + 1910 + ] + }, + { + "kind": "multiply", + "input": 1939, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2679, + 505, + 1023, + 1044, + 1022, + 1021, + 491, + 401, + 478, + 2395, + 2673, + 392, + 426, + 243, + 1025, + 1939, + 43, + 1448, + 1894, + 15, + 7 + ] + }, + { + "kind": "multiply", + "input": 1939, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1939, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2682, + 1935, + 2409, + 2681, + 2607, + 2606 + ] + }, + { + "kind": "multiply", + "input": 1941, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1941, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 2685, + 1316, + 2379 + ] + }, + { + "kind": "multiply", + "input": 1941, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2687, + 459, + 2398, + 2675, + 1483, + 489, + 2381, + 2380, + 488, + 2397, + 2674, + 487, + 2396, + 2665, + 253, + 252, + 207, + 206, + 202, + 430, + 248, + 432, + 250, + 401, + 172, + 17, + 1448, + 1894, + 16, + 1941, + 2383 + ] + }, + { + "kind": "multiply", + "input": 1941, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2689, + 2076, + 1598, + 2384 + ] + }, + { + "kind": "multiply", + "input": 1941, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1941, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2692, + 1649, + 2691, + 643, + 2390, + 2389, + 642 + ] + }, + { + "kind": "multiply", + "input": 1944, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1944, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1944, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2696, + 1522 + ] + }, + { + "kind": "multiply", + "input": 1967, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2699, + 2686, + 2664, + 2684, + 2378, + 2663, + 245, + 201, + 244, + 200, + 1941, + 1445, + 1892, + 8, + 171 + ] + }, + { + "kind": "multiply", + "input": 1967, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2705, + 1580, + 2704 + ] + }, + { + "kind": "multiply", + "input": 1967, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1967, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 7 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 9 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 11 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 17 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2715, + 1588, + 651, + 2457, + 618, + 545, + 1627, + 2710, + 530, + 153, + 514, + 138, + 24, + 604, + 1671, + 22, + 19 + ] + }, + { + "kind": "multiply", + "input": 1974, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2717, + 2459, + 619, + 546, + 1628, + 2711, + 651, + 531, + 154, + 151, + 150, + 149, + 139, + 514, + 24, + 604, + 1641, + 1671, + 19 + ] + }, + { + "kind": "multiply", + "input": 1974, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1974, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 6 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 15 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 16 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 2726, + 2080, + 1600, + 2725, + 1619, + 1603 + ] + }, + { + "kind": "multiply", + "input": 1993, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2728, + 1486, + 2724, + 1619, + 2727 + ] + }, + { + "kind": "multiply", + "input": 1993, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2730, + 2484, + 2486, + 1633, + 1582, + 2075, + 1597, + 2723, + 1099, + 182, + 1080, + 169 + ] + }, + { + "kind": "multiply", + "input": 1993, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2732, + 2465, + 2484, + 656, + 2486, + 2102, + 1672, + 2101, + 2463, + 2100, + 2462, + 623, + 550, + 622, + 549, + 621, + 548, + 1633, + 1582, + 1632, + 2713, + 1631, + 2704, + 1630, + 2712, + 2075, + 1597, + 2723, + 2706, + 612, + 1099, + 183, + 180, + 178, + 592, + 150, + 142, + 140, + 1080, + 169, + 51, + 1101, + 1641, + 2731, + 20 + ] + }, + { + "kind": "multiply", + "input": 1993, + "variable": 26 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1993, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 3 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 19 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 20 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 21 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 23 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 24 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 2743, + 2603, + 2582 + ] + }, + { + "kind": "multiply", + "input": 1995, + "variable": 29 + }, + { + "kind": "multiply", + "input": 1995, + "variable": 31 + }, + { + "kind": "multiply", + "input": 1999, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2001, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2001, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2001, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2750, + 1155, + 1153, + 1152, + 1988, + 2749, + 1113, + 550, + 1111, + 548, + 1968, + 1581, + 2713, + 1965, + 1579, + 2712, + 1979, + 1597, + 2723 + ] + }, + { + "kind": "multiply", + "input": 2001, + "variable": 13 + }, + { + "kind": "multiply", + "input": 2001, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2753, + 2498, + 1123, + 557, + 630, + 1680, + 1165, + 653, + 1163, + 1976, + 2496, + 651, + 2457, + 2480, + 2748, + 1110, + 1677, + 1964, + 530, + 1094, + 601, + 153, + 149, + 1080, + 587, + 514, + 1690, + 24, + 604, + 2001, + 48, + 615, + 1082, + 589, + 1974, + 2716 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 2 + }, + { + "kind": "xor", + "inputs": [ + 2755, + 2357 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2003, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 2758, + 2074, + 2158 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 6 + }, + { + "kind": "xor", + "inputs": [ + 2760, + 2751, + 2706 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2762, + 2690 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2003, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2003, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2766, + 1619, + 2727, + 2729 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 23 + }, + { + "kind": "xor", + "inputs": [ + 2768, + 2486, + 1672, + 2463 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 2770, + 2609 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2772, + 2448 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2774, + 2088, + 2448, + 2609 + ] + }, + { + "kind": "multiply", + "input": 2003, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 2776, + 2447 + ] + }, + { + "kind": "multiply", + "input": 2005, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2778, + 2763, + 2668, + 256, + 208, + 1088, + 172 + ] + }, + { + "kind": "multiply", + "input": 2005, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2005, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 2781, + 2767, + 2764 + ] + }, + { + "kind": "multiply", + "input": 2005, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2005, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2784, + 2769, + 2008, + 2462, + 2481, + 640, + 558, + 557, + 622, + 549, + 621, + 548, + 1125, + 1977, + 1165, + 1589, + 653, + 2459, + 1633, + 1582, + 1632, + 1581, + 1631, + 2704, + 1579, + 2712, + 619, + 546, + 1628, + 2711, + 1163, + 2075, + 2751, + 2706, + 531, + 1094, + 179, + 178, + 592, + 519, + 1083, + 591, + 518, + 154, + 151, + 149, + 140, + 139, + 514, + 51, + 1101, + 1690, + 1641, + 1671, + 2001, + 2731, + 1086 + ] + }, + { + "kind": "multiply", + "input": 2005, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2005, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2005, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2790, + 2693, + 641, + 2670, + 2669, + 260, + 259, + 212, + 211, + 23 + ] + }, + { + "kind": "multiply", + "input": 2010, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2794, + 2769, + 2783, + 2481, + 622, + 549, + 1633, + 1582, + 1632, + 1581, + 1631, + 2704, + 1630, + 1579, + 2075, + 2751, + 2706, + 1099, + 530, + 1094, + 601, + 179, + 592, + 519, + 150, + 1671, + 2001, + 2731, + 1086, + 2785, + 2010, + 2005 + ] + }, + { + "kind": "multiply", + "input": 2010, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2010, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 4 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2802, + 2672, + 2791 + ] + }, + { + "kind": "multiply", + "input": 2012, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2012, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2014, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2047, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2047, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2047, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2047, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 2815, + 2583, + 1381, + 1607, + 2585, + 2609, + 2775, + 2786, + 1614 + ] + }, + { + "kind": "multiply", + "input": 2047, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2047, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2818, + 823, + 2244, + 2817, + 1612, + 1610, + 2246, + 2447, + 2788, + 2777, + 2787 + ] + }, + { + "kind": "multiply", + "input": 2097, + "variable": 2 + }, + { + "kind": "multiply", + "input": 2097, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2097, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2097, + "variable": 18 + }, + { + "kind": "multiply", + "input": 2097, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2824, + 2783, + 2497, + 2481, + 1123, + 557, + 1326, + 621, + 1678, + 548, + 2033, + 1165, + 653, + 1630, + 1579, + 1163, + 1976, + 2496, + 651, + 2457, + 2480, + 2761, + 1110, + 1677, + 1964, + 530, + 1094, + 179, + 519, + 567, + 1083, + 591, + 518, + 2021, + 153, + 150, + 149, + 141, + 140, + 587, + 24, + 604, + 1671, + 2001, + 1086, + 521, + 1993, + 2097, + 2003 + ] + }, + { + "kind": "multiply", + "input": 2097, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2826, + 2482, + 2034, + 1631, + 1580, + 2022, + 2097, + 2005, + 2801, + 2795, + 2825, + 48, + 615, + 19, + 1082, + 2718, + 1967, + 2500, + 2716, + 2754, + 18, + 1146, + 2012, + 1682, + 2110 + ] + }, + { + "kind": "multiply", + "input": 2097, + "variable": 27 + }, + { + "kind": "multiply", + "input": 2097, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 4 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 13 + }, + { + "kind": "xor", + "inputs": [ + 2831, + 2803, + 2779 + ] + }, + { + "kind": "multiply", + "input": 2110, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2110, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2142, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2142, + "variable": 10 + }, + { + "kind": "multiply", + "input": 2142, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2840, + 2593, + 2133, + 1213, + 2839, + 2121, + 943, + 2135, + 2650, + 1873, + 923, + 736, + 2838, + 2649, + 1872, + 922, + 735, + 893, + 197, + 2142 + ] + }, + { + "kind": "multiply", + "input": 2261, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2261, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2843, + 1701, + 1497, + 710, + 489, + 758, + 1699, + 2582, + 1504, + 2602 + ] + }, + { + "kind": "multiply", + "input": 2261, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2261, + "variable": 17 + }, + { + "kind": "xor", + "inputs": [ + 2846, + 690, + 2845, + 1703, + 1699, + 2418, + 2582, + 709, + 712, + 876, + 875, + 874, + 312, + 176, + 175, + 1291, + 1290, + 67, + 66, + 26 + ] + }, + { + "kind": "multiply", + "input": 2261, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2848, + 2585, + 2734, + 2771, + 2775, + 1614, + 2816 + ] + }, + { + "kind": "multiply", + "input": 2261, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2261, + "variable": 24 + }, + { + "kind": "multiply", + "input": 2261, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2852, + 2618, + 2330, + 2503, + 2525, + 2560 + ] + }, + { + "kind": "multiply", + "input": 2261, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2854, + 2591, + 2618, + 2330, + 2503, + 2525 + ] + }, + { + "kind": "multiply", + "input": 2383, + "variable": 1 + }, + { + "kind": "xor", + "inputs": [ + 2856, + 174, + 172, + 397, + 2017, + 2016, + 396, + 2377, + 243, + 199, + 389, + 165, + 2847, + 2261, + 2383, + 1445, + 1995 + ] + }, + { + "kind": "multiply", + "input": 2383, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 7 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2860, + 2724, + 2384, + 2727, + 2729, + 2740, + 2739, + 2738, + 2765, + 2767, + 2780, + 2782 + ] + }, + { + "kind": "multiply", + "input": 2383, + "variable": 20 + }, + { + "kind": "xor", + "inputs": [ + 2862, + 1599, + 2724, + 1598, + 2384 + ] + }, + { + "kind": "multiply", + "input": 2383, + "variable": 21 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 22 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 24 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2383, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2869, + 1500, + 2868, + 2392, + 2391 + ] + }, + { + "kind": "multiply", + "input": 2383, + "variable": 36 + }, + { + "kind": "xor", + "inputs": [ + 2871, + 1981, + 1980, + 1984, + 1986, + 2782, + 2861 + ] + }, + { + "kind": "multiply", + "input": 2415, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2873, + 2844, + 1503, + 1016, + 487, + 413, + 412, + 411, + 312, + 187, + 186, + 185, + 174, + 397, + 309, + 396, + 308, + 1289, + 1454, + 65, + 61, + 16, + 2847, + 2261, + 399, + 2857, + 7, + 5, + 47 + ] + }, + { + "kind": "multiply", + "input": 2415, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2875, + 2620, + 2442, + 2505, + 2528 + ] + }, + { + "kind": "multiply", + "input": 2415, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2877, + 1711, + 2658, + 2125, + 2136, + 2531, + 2653, + 1875, + 925, + 742, + 1031, + 722, + 721, + 508, + 1886, + 1773, + 364, + 892, + 422, + 1467, + 81, + 1890, + 1228, + 1230, + 1780, + 2652, + 1882 + ] + }, + { + "kind": "multiply", + "input": 2454, + "variable": 7 + }, + { + "kind": "multiply", + "input": 2454, + "variable": 11 + }, + { + "kind": "multiply", + "input": 2456, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2456, + "variable": 7 + }, + { + "kind": "multiply", + "input": 2456, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2456, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2884, + 2194, + 2158 + ] + }, + { + "kind": "multiply", + "input": 2456, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2886, + 2161, + 2160, + 2159, + 2156, + 2194, + 2158, + 2885, + 2883, + 2147, + 2145, + 200, + 1648, + 568, + 2072 + ] + }, + { + "kind": "multiply", + "input": 2461, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2888, + 2306 + ] + }, + { + "kind": "multiply", + "input": 2461, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2890, + 2578 + ] + }, + { + "kind": "multiply", + "input": 2461, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 2892, + 2236 + ] + }, + { + "kind": "multiply", + "input": 2467, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2894, + 1694, + 2865, + 2864, + 643, + 2388, + 2387, + 489, + 1692, + 1619, + 1603, + 2863, + 2740, + 2739, + 2738, + 2099 + ] + }, + { + "kind": "multiply", + "input": 2467, + "variable": 18 + }, + { + "kind": "xor", + "inputs": [ + 2896, + 1493, + 1492, + 1491, + 575, + 1490, + 1694, + 2865, + 2864, + 643, + 2388, + 2387, + 489, + 1669, + 1603, + 2863, + 2727, + 2729, + 2740, + 2739, + 2738, + 2765, + 2767, + 2780, + 2386, + 2782, + 1691, + 1618, + 2872 + ] + }, + { + "kind": "multiply", + "input": 2467, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 2898, + 2588, + 2851 + ] + }, + { + "kind": "multiply", + "input": 2467, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 2900, + 2327 + ] + }, + { + "kind": "multiply", + "input": 2467, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2902, + 1661, + 2327, + 2588, + 2851, + 2901, + 2899, + 694, + 2105, + 2104, + 2103, + 2477, + 2088 + ] + }, + { + "kind": "multiply", + "input": 2479, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2479, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2479, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2906, + 2477, + 2903 + ] + }, + { + "kind": "multiply", + "input": 2488, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2908, + 2094, + 2757 + ] + }, + { + "kind": "multiply", + "input": 2489, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2489, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2489, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 2912, + 2610 + ] + }, + { + "kind": "multiply", + "input": 2500, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 4 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 18 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2500, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2516, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2924, + 2440, + 1380, + 1485, + 1559, + 489, + 376, + 1703, + 1699, + 2625 + ] + }, + { + "kind": "multiply", + "input": 2516, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2516, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2927, + 2525, + 1391, + 829 + ] + }, + { + "kind": "multiply", + "input": 2516, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 2929, + 1946, + 2511, + 944, + 2644, + 1874, + 1394, + 924, + 737, + 1055, + 1954, + 943, + 2263, + 1957, + 1953, + 942, + 1054, + 994, + 1763, + 353, + 1052, + 1740, + 1742, + 1945, + 1925, + 936, + 2285, + 1952, + 1357, + 326, + 194, + 976, + 297, + 679, + 1297, + 1299, + 1714, + 287, + 112, + 76, + 74, + 1076, + 39, + 1879 + ] + }, + { + "kind": "multiply", + "input": 2519, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2519, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2932, + 2625, + 2925 + ] + }, + { + "kind": "multiply", + "input": 2519, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2934, + 2528, + 2526, + 2504, + 1563, + 1510, + 1508, + 501, + 382, + 1774, + 1773, + 365, + 364, + 1757, + 349, + 1738, + 2520, + 416, + 414, + 325, + 323, + 1519, + 1458, + 1716, + 1715, + 290, + 289, + 236, + 75, + 1777, + 1719 + ] + }, + { + "kind": "multiply", + "input": 2519, + "variable": 34 + }, + { + "kind": "xor", + "inputs": [ + 2936, + 1949, + 2512, + 949, + 2648, + 1876, + 1060, + 1958, + 1948, + 2417, + 1961, + 1511, + 926, + 743, + 1028, + 499, + 1054, + 994, + 1763, + 353, + 1052, + 1740, + 1742, + 1945, + 1925, + 936, + 2285, + 1952, + 1357, + 420, + 326, + 976, + 1459, + 1457, + 1716, + 297, + 290, + 112, + 76, + 74, + 1076, + 39, + 1879, + 2930, + 44, + 29, + 1466, + 716, + 1507, + 2415, + 2519, + 2646 + ] + }, + { + "kind": "multiply", + "input": 2547, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2938, + 2744, + 2933, + 1017, + 712, + 2436, + 2438, + 1698, + 2602, + 2931, + 1556, + 1503, + 487, + 374, + 1753, + 342, + 683, + 429, + 1530, + 2152, + 1747, + 1749, + 1529, + 2177, + 335, + 453, + 2155, + 2166, + 2275, + 1482, + 2267, + 1343, + 1330, + 2542, + 2274, + 2265, + 1342, + 1329, + 1734, + 2517, + 1731, + 2308, + 1479, + 2310, + 1728, + 2513, + 2277, + 2399, + 2345, + 1442, + 1102, + 412, + 411, + 874, + 314, + 186, + 177, + 174, + 869, + 308, + 659, + 392, + 1240, + 1235, + 1253, + 1408, + 287, + 1455, + 286, + 230, + 853, + 285, + 229, + 107, + 106, + 105, + 97, + 92, + 76, + 75, + 74, + 66, + 62, + 61, + 29, + 1562, + 716, + 2415, + 2519, + 2547 + ] + }, + { + "kind": "multiply", + "input": 2547, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2940, + 1701, + 1018, + 710, + 1703, + 2582, + 2625, + 2925, + 2744, + 1504, + 2436, + 2438, + 2844, + 2931 + ] + }, + { + "kind": "multiply", + "input": 2547, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2942, + 2619, + 2526, + 1030, + 502, + 899, + 802, + 1773, + 364, + 442, + 838, + 1795, + 2185, + 264, + 1804, + 2212, + 1802, + 2210, + 836, + 1797, + 2188, + 2203, + 1269, + 2367, + 1435, + 889, + 416, + 1254, + 783, + 1460, + 128, + 127, + 126, + 123, + 110, + 107, + 106, + 105, + 96, + 78, + 77, + 1855, + 1777 + ] + }, + { + "kind": "multiply", + "input": 2547, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2944, + 2658, + 2125, + 2136, + 2531, + 2139, + 1031, + 722, + 721, + 508, + 1886, + 1773, + 364, + 446, + 1547, + 1549, + 272, + 270, + 2225, + 2117, + 2131, + 2223, + 1197, + 2556, + 1340, + 1339, + 1269, + 1208, + 1746, + 2375, + 936, + 2130, + 1435, + 892, + 422, + 1257, + 1256, + 1467, + 857, + 856, + 242, + 241, + 128, + 127, + 126, + 124, + 123, + 117, + 115, + 107, + 106, + 105, + 83, + 82, + 81, + 1890, + 1228, + 1230, + 1780, + 2652, + 1882, + 2878, + 54, + 29, + 716, + 2660, + 37, + 17, + 1821 + ] + }, + { + "kind": "multiply", + "input": 2547, + "variable": 39 + }, + { + "kind": "xor", + "inputs": [ + 2946, + 1217, + 2658, + 2125, + 2531, + 1032, + 508, + 1886, + 1773, + 364, + 448, + 1199, + 2192, + 1549, + 2217, + 1261, + 1209, + 2225, + 2117, + 2223, + 1269, + 1746, + 2116, + 2375, + 1435, + 894, + 424, + 1257, + 1469, + 128, + 127, + 126, + 123, + 117, + 107, + 106, + 105, + 96, + 55, + 1890, + 1228, + 1780, + 2652, + 1882, + 2878, + 54, + 29, + 2660, + 2547, + 43, + 37, + 27, + 17, + 1275, + 731, + 1818, + 1242, + 7, + 120, + 1353 + ] + }, + { + "kind": "multiply", + "input": 2595, + "variable": 7 + }, + { + "kind": "multiply", + "input": 2595, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 2949, + 2155, + 1480, + 1534, + 250, + 1482, + 2737 + ] + }, + { + "kind": "multiply", + "input": 2595, + "variable": 21 + }, + { + "kind": "xor", + "inputs": [ + 2951, + 568, + 2072, + 2812 + ] + }, + { + "kind": "multiply", + "input": 2595, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2595, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2954, + 1648, + 2953, + 2887, + 2952, + 1595, + 2722, + 2789, + 2757, + 2909 + ] + }, + { + "kind": "multiply", + "input": 2595, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2956, + 2201, + 1793 + ] + }, + { + "kind": "multiply", + "input": 2595, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2958, + 813, + 2170, + 2201, + 1793, + 2198 + ] + }, + { + "kind": "multiply", + "input": 2597, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2597, + "variable": 7 + }, + { + "kind": "xor", + "inputs": [ + 2961, + 1554, + 2859, + 2379, + 2031, + 2703, + 2702, + 2701 + ] + }, + { + "kind": "multiply", + "input": 2597, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 2963, + 2814, + 2813, + 1486, + 2080, + 1599, + 2724, + 1619, + 1603, + 2727, + 2729, + 2740, + 2739, + 2765, + 2767, + 2780, + 2782, + 2897, + 2747 + ] + }, + { + "kind": "multiply", + "input": 2597, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2597, + "variable": 24 + }, + { + "kind": "xor", + "inputs": [ + 2966, + 1651, + 2965, + 1650, + 1492, + 1491, + 1653, + 1694, + 2867, + 2866, + 643, + 2390, + 2389, + 489, + 2742, + 2741, + 2099, + 2793, + 2098, + 2792 + ] + }, + { + "kind": "multiply", + "input": 2597, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2968, + 2241, + 818, + 2239 + ] + }, + { + "kind": "multiply", + "input": 2597, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2970, + 819, + 843, + 2969, + 1501, + 1498, + 822, + 2243, + 2431, + 2429 + ] + }, + { + "kind": "multiply", + "input": 2605, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2972, + 2950, + 2308, + 2310, + 2346, + 2345, + 874, + 314, + 312, + 177, + 869, + 396, + 1240, + 168, + 1235, + 1078, + 391, + 390, + 166, + 1409, + 1408, + 97, + 96, + 66, + 61, + 2597, + 2847, + 2261, + 399, + 2857, + 482, + 1242, + 7, + 5, + 2605, + 2595, + 1413, + 1376, + 47, + 14, + 2874, + 10, + 333 + ] + }, + { + "kind": "multiply", + "input": 2605, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2974, + 1797, + 2188, + 2205, + 2203 + ] + }, + { + "kind": "multiply", + "input": 2622, + "variable": 6 + }, + { + "kind": "multiply", + "input": 2622, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2622, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2978, + 2428 + ] + }, + { + "kind": "multiply", + "input": 2622, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2629, + "variable": 16 + }, + { + "kind": "multiply", + "input": 2629, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2629, + "variable": 37 + }, + { + "kind": "multiply", + "input": 2633, + "variable": 10 + }, + { + "kind": "multiply", + "input": 2633, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 2985, + 2269, + 1332 + ] + }, + { + "kind": "multiply", + "input": 2633, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2633, + "variable": 37 + }, + { + "kind": "xor", + "inputs": [ + 2988, + 2642, + 1864, + 1453, + 1452, + 1432, + 1431, + 1428, + 1427, + 1426, + 1441, + 1871 + ] + }, + { + "kind": "multiply", + "input": 2635, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 2990, + 2941, + 1556, + 1503, + 1016, + 374, + 1753, + 342, + 430, + 455, + 2153, + 1532, + 248, + 2152, + 247, + 1747, + 1749, + 428, + 335, + 681, + 453, + 432, + 2155, + 1480, + 1534, + 250, + 1482, + 2737, + 2950, + 1734, + 2517, + 680, + 452, + 2308, + 1729, + 2313, + 2310, + 2269, + 1332, + 1728, + 2277, + 2399, + 2345, + 2981, + 1442, + 1102, + 413, + 874, + 321, + 314, + 191, + 187, + 186, + 185, + 175, + 396, + 308, + 1240, + 1408, + 1289, + 1456, + 287, + 231, + 1454, + 97, + 96, + 66, + 65, + 63, + 61, + 29, + 1562, + 2415, + 2519, + 2939, + 43, + 27, + 872, + 16, + 2261 + ] + }, + { + "kind": "multiply", + "input": 2635, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 2992, + 2925, + 2744, + 2933, + 1557, + 1017, + 907, + 712, + 375, + 757, + 2438, + 1698, + 2602, + 1503, + 683, + 2543, + 429, + 1530, + 2179, + 336, + 247, + 1749, + 1529, + 2177, + 453, + 2155, + 2166, + 2580, + 1482, + 680, + 1731, + 2311, + 452, + 2308, + 2631, + 2310, + 1728, + 2514, + 2630, + 2986, + 2984, + 2277, + 2399, + 2345, + 2981, + 1442, + 1102, + 413, + 412, + 411, + 874, + 320, + 314, + 187, + 186, + 185, + 177, + 174, + 870, + 397, + 869, + 308, + 659, + 1250, + 1240, + 168, + 1236, + 1235, + 865, + 1253, + 167, + 1408, + 288, + 855, + 287, + 231, + 1455, + 107, + 106, + 97, + 93, + 92, + 91, + 90, + 76, + 75, + 66, + 61, + 1858, + 2415, + 2635, + 493, + 37, + 13, + 26, + 1837, + 16, + 2597 + ] + }, + { + "kind": "multiply", + "input": 2635, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 2994, + 2876, + 900, + 803, + 1774, + 365, + 1800, + 2208, + 442, + 838, + 1794, + 1266, + 2614, + 836, + 2203, + 2975, + 895, + 797, + 1269, + 2366, + 2364, + 1434, + 1432, + 128, + 124, + 110, + 107, + 97, + 1855 + ] + }, + { + "kind": "multiply", + "input": 2646, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 2996, + 2683 + ] + }, + { + "kind": "multiply", + "input": 2652, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 2998, + 2119, + 1768, + 357, + 356, + 355, + 215, + 213, + 2213 + ] + }, + { + "kind": "multiply", + "input": 2652, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 3000, + 2510, + 2508, + 698, + 2249, + 2503, + 2534 + ] + }, + { + "kind": "multiply", + "input": 2655, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 3002, + 2538, + 2567, + 1824, + 844, + 1563, + 1510, + 1508, + 1565, + 718, + 383, + 698, + 2249, + 2503, + 2534, + 3001, + 803, + 1806, + 1758, + 350, + 1739, + 2283, + 415, + 324, + 1725, + 1724, + 1723, + 789, + 1195, + 1528, + 857, + 856, + 782, + 302, + 301, + 300, + 295, + 294, + 242, + 241, + 127, + 124, + 109, + 108, + 83, + 82, + 81, + 1809, + 1831 + ] + }, + { + "kind": "multiply", + "input": 2657, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 3004, + 1497, + 758, + 1703, + 1699, + 2625, + 2925, + 2744, + 2436, + 2438, + 2602, + 2931, + 2941 + ] + }, + { + "kind": "multiply", + "input": 2657, + "variable": 23 + }, + { + "kind": "multiply", + "input": 2657, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3007, + 2853, + 1391, + 2616, + 2558 + ] + }, + { + "kind": "multiply", + "input": 2660, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 3009, + 3005, + 906, + 708, + 1753, + 342, + 430, + 455, + 2153, + 1532, + 248, + 2152, + 247, + 1747, + 1749, + 428, + 335, + 681, + 453, + 432, + 2155, + 1480, + 1534, + 250, + 1482, + 2737, + 2950, + 1734, + 2517, + 680, + 452, + 2308, + 1729, + 2313, + 2310, + 2269, + 1332, + 1728, + 2277, + 2399, + 2345, + 2981, + 1442, + 874, + 321, + 314, + 312, + 191, + 186, + 175, + 174, + 870, + 397, + 1240, + 1408, + 1456, + 287, + 231, + 97, + 96, + 66, + 63, + 872, + 26, + 2597, + 2847, + 2261, + 2516, + 399, + 2383, + 1445, + 1995, + 2857, + 5 + ] + }, + { + "kind": "multiply", + "input": 2662, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2672, + "variable": 19 + }, + { + "kind": "xor", + "inputs": [ + 3012, + 2752, + 1155, + 2384, + 1153, + 2763, + 1152, + 1988, + 2394, + 2668, + 2667, + 2666, + 269, + 222, + 1094, + 178, + 2001, + 2779, + 2832, + 594, + 1157, + 1941, + 521, + 2010, + 2003 + ] + }, + { + "kind": "multiply", + "input": 2680, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2688, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3015, + 2429, + 2746, + 2407, + 2745 + ] + }, + { + "kind": "multiply", + "input": 2700, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2716, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2718, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2718, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2718, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2731, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2731, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3023, + 825, + 2247, + 3022, + 824, + 2090, + 823, + 2244 + ] + }, + { + "kind": "multiply", + "input": 2733, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 3025, + 2867, + 2866, + 2864, + 2390, + 2389, + 2387, + 1692, + 1603, + 2863, + 2742, + 2741, + 2099, + 2895, + 2098, + 2792, + 2764, + 2780, + 1618, + 2967, + 2897, + 2964, + 2911 + ] + }, + { + "kind": "multiply", + "input": 2754, + "variable": 4 + }, + { + "kind": "multiply", + "input": 2754, + "variable": 28 + }, + { + "kind": "multiply", + "input": 2754, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2754, + "variable": 31 + }, + { + "kind": "multiply", + "input": 2785, + "variable": 2 + }, + { + "kind": "multiply", + "input": 2785, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 3032, + 2160, + 2156, + 2194, + 2759, + 2883 + ] + }, + { + "kind": "multiply", + "input": 2785, + "variable": 15 + }, + { + "kind": "xor", + "inputs": [ + 3034, + 2866, + 2724, + 2389, + 2823, + 2822, + 2792, + 2764, + 2977 + ] + }, + { + "kind": "multiply", + "input": 2785, + "variable": 26 + }, + { + "kind": "xor", + "inputs": [ + 3036, + 3006, + 2734, + 2796, + 2829, + 2609, + 2771, + 2907 + ] + }, + { + "kind": "multiply", + "input": 2785, + "variable": 27 + }, + { + "kind": "xor", + "inputs": [ + 3038, + 2926, + 2324, + 2477, + 2828, + 2448, + 2773, + 1664, + 2905 + ] + }, + { + "kind": "multiply", + "input": 2785, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 3040, + 2850, + 2926, + 3006, + 2585, + 2324, + 2612, + 2829, + 2448, + 2609, + 2775, + 2913, + 3037, + 3039 + ] + }, + { + "kind": "multiply", + "input": 2785, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2785, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2785, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3044, + 3024, + 3043, + 3042, + 1612, + 1610, + 2736, + 2735, + 2798, + 2450, + 2797, + 2092, + 2819 + ] + }, + { + "kind": "multiply", + "input": 2795, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2799, + "variable": 9 + }, + { + "kind": "multiply", + "input": 2800, + "variable": 9 + }, + { + "kind": "xor", + "inputs": [ + 3048, + 2759, + 2883 + ] + }, + { + "kind": "multiply", + "input": 2801, + "variable": 15 + }, + { + "kind": "multiply", + "input": 2801, + "variable": 16 + }, + { + "kind": "xor", + "inputs": [ + 3051, + 2964, + 3026, + 3035, + 3050, + 2910, + 3046, + 2394, + 641, + 487, + 1117, + 629, + 1476, + 1116, + 554, + 1555, + 2062, + 279, + 1471, + 1552, + 274, + 1478, + 1637, + 2064, + 1970, + 1585, + 2714, + 1969, + 1634, + 1583, + 1473, + 2859, + 2379, + 2031, + 2703, + 2962, + 2918, + 2917, + 2916, + 456, + 2960, + 2858, + 2378, + 2976, + 269, + 259, + 258, + 257, + 256, + 222, + 211, + 210, + 209, + 208, + 244, + 200, + 538, + 410, + 408, + 407, + 406, + 405, + 1091, + 527, + 1090, + 598, + 526, + 1089, + 597, + 400, + 184, + 182, + 181, + 178, + 176, + 174, + 519, + 2017, + 2019, + 162, + 150, + 147, + 146, + 145, + 143, + 393, + 169, + 50, + 1097, + 2695, + 529, + 2472, + 2694, + 1093, + 2805, + 2490, + 2804, + 2811, + 2833, + 23, + 2803, + 2779, + 2832, + 17, + 16, + 2467, + 2733, + 2785, + 2383, + 1445, + 2010, + 2003, + 2005, + 2688, + 2991 + ] + }, + { + "kind": "multiply", + "input": 2801, + "variable": 26 + }, + { + "kind": "multiply", + "input": 2801, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 3054, + 2816, + 3053, + 2913, + 2907 + ] + }, + { + "kind": "multiply", + "input": 2801, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2801, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2801, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3058, + 2819, + 3057, + 3056, + 3045 + ] + }, + { + "kind": "multiply", + "input": 2825, + "variable": 4 + }, + { + "kind": "xor", + "inputs": [ + 3060, + 3049, + 3033, + 1676, + 2027, + 2882, + 2149, + 2915, + 2881, + 3027, + 2150, + 2953, + 2812, + 1595, + 2722, + 2821, + 2757, + 3047, + 2955, + 1109, + 543, + 1963, + 1574, + 2709, + 2948, + 2698, + 2914, + 2880, + 3031, + 2359, + 2820, + 2756, + 1108, + 616, + 1675, + 2026, + 1962, + 2879, + 1573, + 2291, + 611, + 883, + 537, + 880, + 879, + 183, + 180, + 309, + 161, + 142, + 140, + 866, + 169, + 1079, + 586, + 168, + 585, + 512, + 2043, + 136, + 1077, + 511, + 166, + 1409, + 104, + 102, + 88, + 885, + 882, + 2733, + 2785, + 1993, + 1170, + 2010, + 2801, + 2825, + 868, + 22, + 615, + 19, + 171, + 1132, + 2718, + 2500, + 2716, + 2754, + 2800, + 1249, + 2456, + 2830, + 1246, + 1238, + 3010, + 1234, + 2799, + 2488, + 2595, + 1450, + 1413 + ] + }, + { + "kind": "multiply", + "input": 2825, + "variable": 28 + }, + { + "kind": "xor", + "inputs": [ + 3062, + 3055, + 3041, + 2849, + 1126, + 636, + 635, + 1685, + 1684, + 1683, + 560, + 2040, + 2039, + 1978, + 2891, + 2889, + 3019, + 1644, + 1643, + 1642, + 2574, + 2302, + 1592, + 2572, + 2719, + 1371, + 1368, + 2297, + 2707, + 2569, + 2295, + 1363, + 2920, + 2919, + 2576, + 2304, + 2904, + 3028, + 2842, + 2568, + 2294, + 1362, + 1104, + 1103, + 1102, + 611, + 608, + 606, + 883, + 537, + 534, + 1884, + 2050, + 879, + 319, + 318, + 317, + 315, + 187, + 186, + 185, + 182, + 178, + 870, + 1883, + 1726, + 519, + 161, + 156, + 150, + 144, + 141, + 866, + 169, + 1295, + 1294, + 1288, + 72, + 69, + 59, + 2807, + 2806, + 885, + 1852, + 2491, + 2493, + 2834, + 882, + 2261, + 2785, + 2993 + ] + }, + { + "kind": "multiply", + "input": 2825, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2825, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3065, + 3059, + 3064, + 638, + 1688, + 1687, + 1686, + 563, + 2042, + 2041, + 3021, + 2893, + 3020, + 1647, + 1646, + 1645, + 2232, + 1593, + 2721, + 2230, + 2720, + 2708, + 2227, + 2923, + 2922, + 2921, + 2234, + 3018, + 3030, + 3029, + 816, + 2238, + 2226, + 1106, + 610, + 609, + 536, + 2052, + 1788, + 2051, + 190, + 189, + 2025, + 1784, + 160, + 159, + 785, + 1295, + 1294, + 779, + 1620, + 613, + 539, + 1284, + 1281, + 1277, + 1288, + 1276, + 73, + 71, + 60, + 2810, + 2809, + 2808, + 2495, + 1624, + 2494, + 2475, + 2837, + 2836, + 1572, + 32, + 1304, + 2731, + 1157, + 2785, + 521, + 1993 + ] + }, + { + "kind": "multiply", + "input": 2827, + "variable": 2 + }, + { + "kind": "multiply", + "input": 2827, + "variable": 3 + }, + { + "kind": "multiply", + "input": 2827, + "variable": 27 + }, + { + "kind": "multiply", + "input": 2827, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2827, + "variable": 30 + }, + { + "kind": "multiply", + "input": 2841, + "variable": 29 + }, + { + "kind": "multiply", + "input": 2847, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3073, + 2969, + 2618, + 2330, + 2503, + 2525, + 2560, + 2853, + 841, + 1498, + 2243, + 1500, + 2431, + 2429, + 2971 + ] + }, + { + "kind": "multiply", + "input": 2847, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3075, + 818, + 2239, + 2969, + 2591, + 2618, + 2330, + 2503, + 2525, + 2855, + 841, + 1498, + 2243, + 3016 + ] + }, + { + "kind": "multiply", + "input": 2857, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3077, + 3074, + 264, + 216, + 1105, + 416, + 415 + ] + }, + { + "kind": "multiply", + "input": 2857, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3079, + 2979, + 2406, + 3074 + ] + }, + { + "kind": "multiply", + "input": 2935, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3081, + 2523, + 1703, + 1699, + 2418, + 2625, + 2925, + 1504, + 2928, + 2521, + 2501, + 2436, + 2931, + 1556, + 487, + 374, + 1772, + 363, + 1770, + 361, + 1757, + 1753, + 349, + 342, + 1747, + 335, + 1738, + 2520, + 1734, + 2517, + 1727, + 2513, + 412, + 325, + 323, + 190, + 188, + 186, + 397, + 309, + 1297, + 1714, + 287, + 1712, + 285, + 75, + 1777, + 1719, + 2935, + 1507, + 403, + 1387, + 311, + 3069, + 14, + 4 + ] + }, + { + "kind": "multiply", + "input": 2937, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3083, + 2997, + 1508, + 1030, + 1029, + 502, + 501, + 1010, + 2264, + 2328, + 1388, + 2618, + 2330, + 2503, + 2560, + 2853, + 1391, + 829, + 2678, + 2253, + 2928, + 834, + 1787, + 3014, + 3078, + 3011, + 811, + 1785, + 190, + 2025, + 2024, + 1464, + 997, + 1305, + 968, + 1307, + 67, + 64, + 44, + 1939 + ] + }, + { + "kind": "multiply", + "input": 2939, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3085, + 2526, + 1566, + 502, + 384, + 471, + 819, + 843, + 2969, + 1501, + 1498, + 822, + 2243, + 2431, + 2616 + ] + }, + { + "kind": "multiply", + "input": 2943, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3087, + 3086, + 2870, + 840, + 2746, + 2745, + 3016 + ] + }, + { + "kind": "multiply", + "input": 2943, + "variable": 11 + }, + { + "kind": "xor", + "inputs": [ + 3089, + 2855, + 2243, + 2868, + 2391, + 2616, + 3086, + 2870, + 2429, + 2407, + 3016 + ] + }, + { + "kind": "multiply", + "input": 2945, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3091, + 2174, + 1811, + 683, + 2543, + 1530, + 2179, + 336, + 247, + 2999, + 1747, + 1529, + 2177, + 335, + 1258, + 1209, + 2117, + 937, + 2287, + 2289, + 1359, + 1358, + 1186, + 2553, + 2164, + 453, + 2155, + 1752, + 339, + 2275, + 2580, + 2737, + 1343, + 2542, + 2274, + 2265, + 1342, + 1329, + 1208, + 1746, + 2311, + 2308, + 1729, + 2631, + 1479, + 2310, + 1728, + 2630, + 2346, + 2986, + 2984, + 1727, + 2277, + 2345, + 2981, + 320, + 314, + 312, + 185, + 177, + 174, + 870, + 397, + 1257, + 1256, + 1255, + 1251, + 1250, + 392, + 1240, + 1236, + 1235, + 1078, + 865, + 391, + 167, + 390, + 166, + 1409, + 1408, + 301, + 300, + 288, + 287, + 231, + 286, + 285, + 229, + 127, + 122, + 121, + 117, + 105, + 97, + 93, + 92, + 91, + 90, + 83, + 82, + 81, + 75, + 74, + 66, + 62, + 61, + 55, + 1230, + 1837, + 2597, + 2847, + 2261, + 2516, + 2657, + 399, + 2383, + 1445, + 2993, + 3063, + 2010, + 2688, + 2991, + 3052, + 2841 + ] + }, + { + "kind": "multiply", + "input": 2947, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3093, + 2580, + 2267, + 1343, + 1330, + 2542, + 2274, + 2265, + 1342, + 1329, + 680, + 2311, + 452, + 2631, + 1479, + 1728, + 2630, + 2986, + 2984, + 1727, + 2981, + 320, + 185, + 1250, + 392, + 168, + 1236, + 865, + 167, + 288, + 855, + 231, + 1455, + 286, + 230, + 853, + 285, + 229, + 121, + 105, + 93, + 90, + 74, + 1837, + 16, + 2516, + 2657, + 2383, + 1445, + 2993, + 3063, + 2010, + 2688, + 3052, + 2841, + 3092, + 2857, + 1275, + 1821, + 2945, + 25, + 1818, + 1242, + 11, + 1238, + 3010, + 120, + 2947, + 2605, + 282, + 2595, + 3068, + 728, + 1450, + 3061, + 1376, + 47, + 1146, + 2874, + 10, + 1128, + 85, + 333, + 9, + 164, + 1, + 2012, + 1682, + 2110, + 2973, + 2827 + ] + }, + { + "kind": "multiply", + "input": 2973, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3095, + 2697, + 1463, + 3084, + 1846, + 2995 + ] + }, + { + "kind": "multiply", + "input": 2989, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3097, + 2639, + 2400, + 2346, + 2986, + 1443, + 2368, + 2636, + 2983, + 1862, + 2399, + 2981, + 1442, + 1430, + 1429, + 329, + 328, + 327, + 198, + 197, + 196, + 390, + 166, + 1409, + 231, + 92, + 399, + 2383, + 1445, + 15, + 482, + 5, + 1441, + 1871, + 2989, + 1413, + 1376, + 3067, + 10, + 4, + 333 + ] + }, + { + "kind": "multiply", + "input": 2991, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3099, + 2971, + 2428, + 440, + 2185, + 264, + 216, + 2270, + 1338 + ] + }, + { + "kind": "multiply", + "input": 2991, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 3101, + 3090, + 3076, + 2615, + 2979, + 2406, + 3074 + ] + }, + { + "kind": "multiply", + "input": 2991, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3103, + 3016, + 3090, + 2971, + 2615, + 2406, + 3080, + 3102, + 442, + 441, + 1795, + 2186, + 2185, + 1794, + 266, + 265, + 264, + 217, + 1799, + 2270, + 1797, + 2188, + 1338, + 2959, + 2957, + 3100 + ] + }, + { + "kind": "multiply", + "input": 2993, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3105, + 3008, + 2429, + 2746, + 2407, + 2745, + 3016, + 2971, + 3088, + 3072, + 2615, + 2557, + 2928, + 2521, + 839, + 1773, + 364, + 898, + 801, + 897, + 800, + 1771, + 362, + 896, + 799, + 1770, + 361, + 442, + 440, + 1539, + 1795, + 2185, + 1794, + 266, + 264, + 218, + 2167, + 2199, + 1259, + 1799, + 836, + 2188, + 2203, + 2207, + 2957 + ] + }, + { + "kind": "multiply", + "input": 2993, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 3107, + 2558, + 840, + 2429, + 3090, + 3076, + 2615, + 2979, + 2406, + 3074, + 3102, + 1540, + 2186, + 2168 + ] + }, + { + "kind": "multiply", + "input": 2993, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3109, + 2616, + 2870, + 840, + 2429, + 2746, + 2407, + 2745, + 3090, + 3088, + 2615, + 2521, + 2980, + 2406, + 3080, + 3102, + 1773, + 364, + 897, + 800, + 1771, + 362, + 1770, + 361, + 441, + 838, + 1795, + 2186, + 2185, + 1794, + 1542, + 265, + 264, + 217, + 1791, + 2167, + 2199, + 1789, + 1259, + 1799, + 2270, + 1797, + 2188, + 1338, + 813, + 2170, + 2959, + 2957, + 3100, + 3104, + 416, + 190, + 783, + 1460, + 781, + 1300, + 121, + 91, + 1777, + 2943, + 1304 + ] + }, + { + "kind": "multiply", + "input": 3003, + "variable": 10 + }, + { + "kind": "xor", + "inputs": [ + 3111, + 2564, + 2502, + 840, + 2429, + 2407, + 3090, + 3076, + 2534, + 2561, + 3001, + 1822, + 2615, + 2979, + 2406, + 3074, + 3102, + 801, + 1805, + 441, + 2186, + 265, + 217, + 683, + 1749, + 836, + 2270, + 1797, + 2203, + 2207, + 1338, + 2957, + 3100, + 2275, + 1343, + 3106, + 2365, + 2343, + 2341, + 2364, + 2402, + 2363, + 2987, + 1451, + 812, + 2237, + 2316, + 2339, + 2338, + 2362, + 2982, + 1433, + 1431, + 1429, + 889, + 888, + 414, + 325, + 323, + 188, + 1424, + 1423, + 1725, + 1724, + 1723, + 784, + 1461, + 1460, + 302, + 301, + 300, + 1184, + 810, + 1300, + 679, + 1296, + 449, + 1290, + 1289, + 1313, + 1302, + 1299, + 1714, + 1456, + 1518, + 287, + 231, + 854, + 1713, + 1455, + 1515, + 229, + 122, + 121, + 99, + 91, + 1401, + 1400, + 1399, + 83, + 82, + 81, + 76, + 75, + 68, + 62, + 1809, + 1831, + 3003, + 1828, + 2935, + 2943, + 1562, + 2697, + 1463, + 1507, + 2995, + 3096, + 2519, + 2939, + 403, + 42, + 1937, + 1304, + 26, + 1387, + 1837, + 16, + 1840, + 2261, + 2516, + 2657, + 2383, + 1445, + 3066, + 3071, + 3063, + 2688, + 2991, + 3052, + 2841, + 2801, + 3110, + 3092, + 2825, + 2622, + 2857, + 1287, + 615, + 1132, + 2718, + 589, + 1974, + 2500, + 2716, + 2754, + 1275, + 1821, + 2945, + 774, + 25, + 731, + 482, + 1242, + 11, + 7, + 5, + 1238, + 120, + 2605, + 2595, + 3068, + 1438 + ] + }, + { + "kind": "multiply", + "input": 3010, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3113, + 2199, + 1259, + 2957, + 3106, + 1265, + 2365, + 2351, + 2363, + 812, + 2237, + 2314, + 2316, + 2362, + 1433, + 1431, + 1429, + 889, + 888, + 416, + 415, + 3078, + 325, + 1424, + 679, + 1297, + 1296, + 855, + 780, + 1299, + 854, + 779, + 853, + 778, + 125, + 99, + 76, + 1828, + 2935, + 2943, + 33, + 1562, + 2697, + 3084, + 1507, + 1846, + 2995, + 3096, + 2519, + 2939, + 403, + 32, + 26, + 1387, + 1837, + 16, + 2597, + 2261, + 2516, + 2657, + 3066, + 3071, + 3070, + 3063, + 2991, + 3052, + 3013, + 2841, + 2801, + 3110, + 3092, + 2825, + 2622, + 2857, + 1287, + 615, + 1132, + 2718, + 589, + 1974, + 2700, + 1967, + 2500, + 2716, + 2754, + 1275, + 1821, + 2945, + 774, + 1272, + 25, + 1242, + 7, + 5, + 1238, + 3010, + 1353, + 1337, + 2605, + 282, + 228, + 2595, + 1438, + 1733, + 1450, + 2633, + 373, + 2629, + 360, + 771, + 18, + 1146, + 14, + 10, + 4, + 1128, + 3, + 85, + 34, + 724, + 583, + 510, + 6, + 135, + 1, + 0 + ] + }, + { + "kind": "multiply", + "input": 3010, + "variable": 30 + }, + { + "kind": "xor", + "inputs": [ + 3115, + 3108, + 836, + 2270, + 1797, + 2203, + 2207, + 1338, + 2957, + 3100, + 3106, + 2365, + 2343, + 2341, + 2364, + 2402, + 2363, + 2987, + 1451, + 812, + 2237, + 2316, + 2339, + 2338, + 2362, + 2982, + 1433, + 1431, + 1429, + 889, + 888, + 414, + 1786, + 325, + 323, + 188, + 1784, + 1783, + 1424, + 1423, + 784, + 1461, + 1460, + 782, + 810, + 1300, + 679, + 1297, + 1296, + 449, + 1290, + 1289, + 855, + 1302, + 1299, + 1456, + 1518, + 231, + 853, + 1515, + 229, + 121, + 99, + 1401, + 1400, + 1399, + 76, + 68, + 65, + 62, + 61, + 1719, + 2935, + 2943, + 1562, + 2697, + 1463, + 1507, + 2995, + 3096, + 2519, + 2939, + 403, + 42, + 1937, + 1304, + 26, + 1387, + 1837, + 16, + 1840, + 2261, + 2516, + 2657, + 2383, + 1445, + 3066, + 3063, + 2688, + 2991, + 3052, + 2841, + 2801, + 3110, + 3092, + 2825, + 2622, + 2857, + 1287, + 615, + 1132, + 2718, + 589, + 1974, + 2500, + 2716, + 2754, + 1275, + 1821, + 2945, + 774, + 25, + 482, + 1242, + 7, + 5, + 1238, + 120, + 1353, + 2605, + 282, + 2595, + 3068, + 1438, + 3112, + 771, + 34, + 724, + 1, + 0 + ] + }, + { + "kind": "multiply", + "input": 3010, + "variable": 31 + }, + { + "kind": "xor", + "inputs": [ + 3117, + 1790, + 2199, + 1259, + 2959, + 3104, + 3106, + 1265, + 2343, + 2351, + 2341, + 2364, + 2402, + 2987, + 1451, + 2314, + 2339, + 2338, + 2982, + 1107, + 889, + 888, + 416, + 415, + 414, + 323, + 190, + 189, + 188, + 1423, + 784, + 783, + 1461, + 781, + 810, + 679, + 1297, + 1296, + 449, + 1290, + 855, + 1302, + 1299, + 1293, + 854, + 853, + 778, + 1515, + 1454, + 229, + 125, + 91, + 1401, + 1400, + 1399, + 76, + 68, + 65, + 61, + 1828, + 2935, + 2943, + 33, + 1562, + 3084, + 1507, + 1846, + 2519, + 2939, + 403, + 42, + 1937, + 32, + 1304, + 26, + 1387, + 1837, + 16, + 2847, + 1840, + 2516, + 2657, + 3071, + 3070, + 3063, + 2010, + 3052, + 3013, + 2841, + 3110, + 3092, + 2700, + 1967, + 1275, + 1821, + 2945, + 1272, + 25, + 482, + 5, + 1238, + 1353, + 1337, + 2605, + 282, + 228, + 2595, + 3112, + 3061, + 2633, + 373, + 1376, + 2629, + 360, + 35, + 771, + 18, + 10, + 3, + 333, + 30, + 583, + 510, + 9, + 6, + 164, + 135, + 2, + 0, + 2012, + 3114, + 3116, + 3082, + 1682, + 2110, + 2973, + 2827 + ] + }, + { + "kind": "multiply", + "input": 3013, + "variable": 29 + }, + { + "kind": "xor", + "inputs": [ + 3119, + 3088, + 2521, + 839, + 2979, + 3017, + 2708, + 1773, + 364, + 1771, + 362, + 1770, + 361, + 442, + 440, + 1795, + 2185, + 1794, + 266, + 218, + 1799, + 836, + 2188, + 2203, + 2207, + 1265, + 2365, + 2351, + 2363, + 812, + 2237, + 2314, + 2316, + 2362, + 1433, + 1431, + 1429, + 1105, + 414, + 325, + 190, + 1424, + 449, + 1290, + 1289, + 1456, + 1518, + 231, + 1516, + 230, + 1515, + 229, + 125, + 99, + 68, + 2808, + 1855, + 2943, + 2835, + 33, + 1522, + 2697, + 3084, + 1846, + 2995, + 3096, + 16, + 2597, + 399, + 2383, + 1445, + 3066, + 3071, + 3070, + 2010, + 2688, + 3013, + 2801, + 3110, + 2825, + 1287, + 615, + 1132, + 2718, + 589, + 1974, + 2700, + 1967, + 2500, + 2716, + 2754, + 36, + 31, + 733, + 12, + 774, + 1272, + 15, + 7, + 120, + 1438, + 360, + 47, + 771, + 18, + 1146, + 14, + 4, + 1128, + 3, + 30, + 583, + 510, + 477, + 6, + 164, + 135, + 2, + 1, + 0, + 3114, + 3082, + 2827, + 3118, + 3094, + 3098 + ] + } + ], + "final": 3120, + "full_matrix_rank": 10472 +} diff --git a/research/turyn-profile-parity-lift/algebraic/PROOF.md b/research/turyn-profile-parity-lift/algebraic/PROOF.md new file mode 100644 index 0000000000..cfd7a1997d --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/PROOF.md @@ -0,0 +1,136 @@ +# A characteristic-two symmetric fitting-rank obstruction + +## Precise finite theorem + +Let G be the 24-vertex graph specified by the integer coordinates in the +unchanged `research/turyn-profile-cnf/WITNESS.json`. An edge means that the product +of its three integer block inner products is nonzero. Let Gc retain all +21 anchor-clique edges and 79 anchor-to-variable edges, but only the 57 +listed core variable-to-variable edges. + +For every field K of characteristic two, the minimum rank of a **symmetric** +24-by-24 matrix M over K with Mvv = 1 and Mvw = 0 on graph edges is exactly +nine, for both G and Gc. The 57 core variable edges are inclusion-minimal +for this rank-nine obstruction with all anchor constraints fixed. This +is not a minimum edge-count claim and does not address nonsymmetric +fitting matrices, arbitrary global 25-dimensional Turyn labelings, or kappa. + +## Reduction from symmetric rank at most eight + +Suppose such a symmetric fitting M has rank at most eight. Put its seven +anchor vertices first. They form a clique, so their principal block is I7: + + M = [ I7 A ] + [ Aᵀ D ]. + +Congruence by elementary block operations gives + + rank(M) = 7 + rank(S), S = D + Aᵀ A. + +Consequently rank(S) is at most one. For each of the seventeen remaining +vertices put c_v = 1 + sum_k A_kv. Since M has diagonal one and K has +characteristic two, + + S_vv = 1 + sum_k A_kv² = c_v². + +Every two-by-two minor of S vanishes. Since S is symmetric this gives + + S_vw² = S_vv S_ww = (c_v c_w)². + +Squaring is injective in **every field** of characteristic two: if x²=y², +then (x+y)²=0, hence x=y. Thus S_vw=c_v c_w, including cases with zero +diagonal entries. No perfectness or algebraic-closure assumption is used. +It follows that the vectors + + p(anchor k) = e_k, + p(v) = (A_1v, ..., A_7v, c_v) + +form an eight-dimensional standard-dot fitting of M. In particular, +A_kv=0 on all anchor-to-variable edges. These zero constraints leave +exactly 119-79=40 free scalar coordinates. The last coordinate of each +p(v) is forced to be one plus the sum of its first seven. + +Conversely, an eight-dimensional standard-dot fitting gives a symmetric +fitting matrix of rank at most eight by taking its Gram matrix. Thus the +finite obstruction below is exactly the required rank obstruction, not +merely a restriction to arbitrary chosen labels. + +## Ordinary-polynomial certificate + +Use an indeterminate for each of the 40 allowed anchor coordinates. +For every core variable edge vw let + + f_vw = sum_{k=1}^7 A_kv A_kw + + (1 + sum_k A_kv)(1 + sum_k A_kw). + +All 57 f_vw must vanish in a fitting. They are polynomials in +F2[x_0,...,x_39]. The independently checked `ORDINARY-PC-PROOF.json` is a +straight-line derivation of the constant polynomial one from these +polynomials. It uses only: + +1. An original edge polynomial +2. Addition of previously derived polynomials +3. Multiplication of a previously derived polynomial by one indeterminate + +These rules preserve the ideal generated by the f_vw. If all f_vw vanished +at a point over K, every derived polynomial would vanish there, contrary +to the final value one. A polynomial identity with coefficients in F2 +remains an identity over every characteristic-two field. + +Crucially, **there is no rule x²=x, no finite-field relation, and no +multilinear reduction** in this certificate. The verifier represents a +monomial by a sorted tuple with repetitions retained: `(i,i,j)` is x_i²x_j, +not x_ix_j. Every ordinary intermediate polynomial has total degree at +most three. The proof has 3,121 steps: 57 edge axioms, 2,389 variable +multiplications, and 675 additions. Every source edge is used. + +The all-field assertion follows from these ordinary polynomial rules; +no search over a finite extension field is used to infer it. + +## Sharpness and minimality + +The unchanged baseline supplies an explicit nine-dimensional fitting with +coordinates in F2 for all 171 edges of G. It remains a fitting over every +characteristic-two field. Therefore both G and its subgraph Gc have +symmetric fitting rank at most nine. The obstruction proves equality. + +For each of the 57 core variable edges the baseline also supplies an +explicit F2 eight-dimensional fitting after that edge is deleted from +Gc. These assignments remain valid over every characteristic-two field. +They retain all anchor constraints, and each violates the omitted edge. +Thus the core is inclusion-minimal in the stated edge class over every +such field. The positive controls do not have to satisfy the fourteen +variable edges discarded from G before obtaining Gc. + +## Degree boundary of this normalized equation system + +The homogeneous quadratic parts of the 57 f_vw are linearly independent +already over F2. `QUADRATIC-RANK.json` supplies 57 quadratic monomial +columns on which the coefficient matrix has rank 57. The same nonzero +binary minor remains invertible over every characteristic-two field. +Hence no nonzero affine polynomial can be a constant-linear combination +of these 57 equations. + +In ordinary polynomial calculus with just these edge axioms, a derivation +whose every polynomial has degree at most two can only take such linear +combinations: a nonzero quadratic multiplied by an indeterminate has +degree three; no nonzero affine polynomial has first been derived to +multiply instead. Induction on the derivation therefore excludes a +degree-two refutation. Combined with the checked degree-three refutation, +the minimum proof degree is exactly three **for this normalized equation +system and these proof rules**. Auxiliary equations, new variables, +Boolean axioms, division rules, or a different encoding are outside this +statement. + +## Limits + +This appendix is independent corroboration on the earlier, different +24-port graph. The main twenty-port parity lift gives an asymmetric +block result; that theorem is not being asserted for this 57-edge core. + +This is a finite, exact, computer-assisted algebraic result. It is not a +Lean formalization or a formal proof of integer multiplication. It gives +no new kappa, no general global sum-of-profile dimension bound, no +nonsymmetric minrank claim, and no Hermitian-form claim. The inherited +physical/compiler, precision, tape, hosting and analytic assumptions of +the multiplication framework are untouched. diff --git a/research/turyn-profile-parity-lift/algebraic/QUADRATIC-RANK.json b/research/turyn-profile-parity-lift/algebraic/QUADRATIC-RANK.json new file mode 100644 index 0000000000..fcd707339c --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/QUADRATIC-RANK.json @@ -0,0 +1,237 @@ +{ + "status": "INDEPENDENT_QUADRATIC_PARTS", + "rows": 57, + "all_quadratic_monomials": 263, + "pivot_monomials": [ + [ + 0, + 1 + ], + [ + 0, + 2 + ], + [ + 0, + 5 + ], + [ + 0, + 13 + ], + [ + 0, + 14 + ], + [ + 0, + 29 + ], + [ + 0, + 32 + ], + [ + 0, + 34 + ], + [ + 1, + 6 + ], + [ + 1, + 9 + ], + [ + 1, + 14 + ], + [ + 1, + 15 + ], + [ + 1, + 19 + ], + [ + 1, + 23 + ], + [ + 1, + 32 + ], + [ + 1, + 36 + ], + [ + 2, + 9 + ], + [ + 2, + 13 + ], + [ + 2, + 15 + ], + [ + 2, + 26 + ], + [ + 2, + 33 + ], + [ + 3, + 14 + ], + [ + 5, + 14 + ], + [ + 5, + 29 + ], + [ + 5, + 32 + ], + [ + 5, + 37 + ], + [ + 6, + 13 + ], + [ + 6, + 20 + ], + [ + 6, + 24 + ], + [ + 6, + 36 + ], + [ + 9, + 16 + ], + [ + 9, + 20 + ], + [ + 9, + 27 + ], + [ + 9, + 30 + ], + [ + 9, + 33 + ], + [ + 9, + 36 + ], + [ + 9, + 37 + ], + [ + 13, + 14 + ], + [ + 13, + 15 + ], + [ + 13, + 23 + ], + [ + 13, + 26 + ], + [ + 13, + 32 + ], + [ + 13, + 33 + ], + [ + 14, + 26 + ], + [ + 14, + 32 + ], + [ + 15, + 27 + ], + [ + 15, + 30 + ], + [ + 15, + 33 + ], + [ + 15, + 37 + ], + [ + 19, + 24 + ], + [ + 19, + 36 + ], + [ + 23, + 36 + ], + [ + 26, + 32 + ], + [ + 26, + 33 + ], + [ + 26, + 37 + ], + [ + 32, + 33 + ], + [ + 32, + 37 + ] + ], + "rank": 57, + "scope": "No nonzero affine polynomial lies in the constant-linear-combination span of the 57 normalized edge equations." +} diff --git a/research/turyn-profile-parity-lift/algebraic/SOURCES.json b/research/turyn-profile-parity-lift/algebraic/SOURCES.json new file mode 100644 index 0000000000..bb26b25f9e --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/SOURCES.json @@ -0,0 +1,7 @@ +{ + "baseline_files": { + "verify.py": "48e7abec3ab7f9d372bdd8d0e0732536b57f3bd22acdaa22d40f1f0e9dd034c4", + "WITNESS.json": "ac57ced1b5b7489025d8d518bc6ac2ed06f55c1c863d288e4f248f0b67b3a74b", + "CONTROLS.json": "2f3cff3d74f305c170edd2cbc7fddd8aa9f5a68b83ffe781067a6c9177202f7f" + } +} diff --git a/research/turyn-profile-parity-lift/algebraic/build.py b/research/turyn-profile-parity-lift/algebraic/build.py new file mode 100644 index 0000000000..8c022807b9 --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/build.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python3 +"""Reproduce the appendix using ordinary (not Boolean-quotient) polynomials. + +Packed coefficient rows are a producer implementation separate from the +checker's tuple-set polynomial representation. Only standard library used. +""" +from collections import deque +from itertools import combinations_with_replacement +from pathlib import Path +import argparse +import hashlib +import json + +HERE = Path(__file__).resolve().parent +BASELINE = HERE.parents[1]/'turyn-profile-cnf' + + +def require(value, message): + if not value: + raise ValueError(message) + + +def encode(): + sources = json.loads((HERE/'SOURCES.json').read_text()) + for name, digest in sources['baseline_files'].items(): + require(hashlib.sha256((BASELINE/name).read_bytes()).hexdigest() == digest, + 'Pinned baseline mismatch: '+name) + witness = json.loads((BASELINE/'WITNESS.json').read_text()) + coordinates = witness['coordinates'] + names = [] + labels = [] + for vertex in range(7, 24): + row = [[] for _ in range(8)] + for k in range(7): + adjacent = all(sum(coordinates[vertex][8*b+i]*coordinates[k][8*b+i] + for i in range(8)) for b in range(3)) + if not adjacent: + row[k] = [(len(names),)] + names.append([vertex-7, k]) + row[7] = [()] + [m for polynomial in row[:7] for m in polynomial] + labels.append(row) + monomials = [m for degree in range(4) + for m in combinations_with_replacement(range(len(names)), degree)] + column = {m: i for i, m in enumerate(monomials)} + equations = [] + for a, b in witness['core_variable_edges']: + packed = 0 + for k in range(8): + for x in labels[a][k]: + for y in labels[b][k]: + packed ^= 1 << column[tuple(sorted(x+y))] + equations.append(packed) + return witness, names, monomials, column, equations + + +def quadratic_minor(monomials, equations): + support = sorted({m for row in equations for i, m in enumerate(monomials) + if len(m) == 2 and row >> i & 1}) + columns = {m: i for i, m in enumerate(monomials)} + # Eliminate the transpose to select independent original columns. + basis = {} + selected = [] + for monomial in support: + row = sum(((equation >> columns[monomial]) & 1) << i for i, equation in enumerate(equations)) + while row: + pivot = row.bit_length()-1 + if pivot in basis: + row ^= basis[pivot] + else: + basis[pivot] = row + selected.append(list(monomial)) + break + require(len(basis) == 57, 'Independent homogeneous quadratic parts') + return {'status': 'INDEPENDENT_QUADRATIC_PARTS', 'rows': 57, + 'all_quadratic_monomials': len(support), 'pivot_monomials': selected, + 'rank': 57, + 'scope': 'No nonzero affine polynomial lies in the constant-linear-combination span of the 57 normalized edge equations.'} + + +def refutation(witness, names, monomials, column, equations): + threshold = sum(len(m) <= 2 for m in monomials) + basis = {} + nodes = [] + queue = deque() + + def node(kind, **kwargs): + nodes.append({'kind': kind, **kwargs}) + return len(nodes)-1 + + def insert(row, source): + used = [source] + while row: + pivot = row.bit_length()-1 + if pivot not in basis: + if len(used) > 1: + source = node('xor', inputs=used) + basis[pivot] = row, source + if pivot < threshold: + queue.append((row, source)) + return source if row == 1 else None + other, index = basis[pivot] + row ^= other + used.append(index) + return None + + def certificate(final): + used = set() + pending = [final] + while pending: + i = pending.pop() + if i in used: + continue + used.add(i) + rule = nodes[i] + if rule['kind'] == 'xor': + pending.extend(rule['inputs']) + if rule['kind'] == 'multiply': + pending.append(rule['input']) + keep = sorted(used) + mapping = {old: new for new, old in enumerate(keep)} + proof = [] + for old in keep: + rule = nodes[old].copy() + if rule['kind'] == 'xor': + rule['inputs'] = [mapping[x] for x in rule['inputs']] + if rule['kind'] == 'multiply': + rule['input'] = mapping[rule['input']] + proof.append(rule) + return {'status': 'ORDINARY_CHAR2_PC_REFUTATION', 'degree_bound': 3, + 'variables': names, 'core_variable_edges': witness['core_variable_edges'], + 'steps': proof, 'final': mapping[final], 'full_matrix_rank': len(basis)} + + for i, equation in enumerate(equations): + final = insert(equation, node('axiom', edge=i)) + if final is not None: + return certificate(final) + while queue: + row, index = queue.popleft() + terms = [] + remaining = row + while remaining: + bit = remaining & -remaining + remaining -= bit + terms.append(monomials[bit.bit_length()-1]) + for variable in range(len(names)): + multiplied = 0 + for monomial in terms: + multiplied ^= 1 << column[tuple(sorted(monomial+(variable,)))] + final = insert(multiplied, node('multiply', input=index, variable=variable)) + if final is not None: + return certificate(final) + raise ValueError('Expected ordinary degree-three refutation was not found') + + +def build(): + witness, names, monomials, columns, equations = encode() + return {'ORDINARY-PC-PROOF.json': refutation(witness, names, monomials, columns, equations), + 'QUADRATIC-RANK.json': quadratic_minor(monomials, equations)} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--output', required=True, type=Path) + args = parser.parse_args() + args.output.mkdir(parents=True, exist_ok=True) + for name, data in build().items(): + (args.output/name).write_text(json.dumps(data, indent=2)+'\n') + print(name) + + +if __name__ == '__main__': + main() diff --git a/research/turyn-profile-parity-lift/algebraic/test_verify.py b/research/turyn-profile-parity-lift/algebraic/test_verify.py new file mode 100644 index 0000000000..cf90805572 --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/test_verify.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +"""Regression controls for the independent ordinary-polynomial checker.""" +from pathlib import Path +import copy +import importlib.util +import json +import unittest + +HERE = Path(__file__).resolve().parent + +def module(name): + spec = importlib.util.spec_from_file_location('ordinary_' + name, HERE/(name+'.py')) + result = importlib.util.module_from_spec(spec) + spec.loader.exec_module(result) + return result + +V = module('verify') + + +class AlgebraicTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + witness = json.loads((V.BASELINE/'WITNESS.json').read_text()) + cls.variables, cls.forms, cls.equations = V.encode(witness) + cls.proof = json.loads((HERE/'ORDINARY-PC-PROOF.json').read_text()) + cls.minor = json.loads((HERE/'QUADRATIC-RANK.json').read_text()) + + def test_expected_receipt_and_57_deletion_assignments(self): + self.assertEqual(V.run(), json.loads((HERE/'EXPECTED.json').read_text())) + + def test_ordinary_repeated_variables_are_retained(self): + x = frozenset({(0,)}) + self.assertEqual(V.product(x, x), frozenset({(0, 0)})) + self.assertEqual(V.product(x, V.product(x, x)), frozenset({(0, 0, 0)})) + self.assertEqual(V.product(frozenset({(), (0,)}), frozenset({(), (0,)})), + frozenset({(), (0, 0)})) + self.assertNotEqual(V.product(x, x), x) + + def test_ordinary_degree_four_multiplication_is_rejected(self): + equation = frozenset({(0, 0, 0)}) + proof = {'steps': [{'kind': 'axiom', 'edge': 0}, + {'kind': 'multiply', 'input': 0, 'variable': 0}], + 'final': 1, 'degree_bound': 3} + with self.assertRaisesRegex(ValueError, 'total degree at most three'): + V.verify_steps(proof, [equation], 1) + + def test_no_boolean_or_unrecognized_rules(self): + for kind in ('boolean_reduce', 'field_relation', 'divide', 'trust_solver'): + wrong = copy.deepcopy(self.proof) + wrong['steps'][0] = {'kind': kind} + with self.subTest(kind=kind), self.assertRaisesRegex(ValueError, 'Unknown proof rule'): + V.verify_steps(wrong, self.equations, len(self.variables)) + + def test_proof_mutation_controls(self): + self.assertEqual(len(V.check_controls(self.proof, self.equations, len(self.variables))), 4) + + def test_quadratic_minor_rank_and_corruptions(self): + self.assertEqual(V.check_quadratic_minor(self.equations, self.minor)['rank'], 57) + repeated = copy.deepcopy(self.minor) + repeated['pivot_monomials'][0] = repeated['pivot_monomials'][1] + with self.assertRaisesRegex(ValueError, 'square 57-column minor'): + V.check_quadratic_minor(self.equations, repeated) + singular = copy.deepcopy(self.minor) + singular['pivot_monomials'][0] = [0, 0] + with self.assertRaisesRegex(ValueError, 'invertible'): + V.check_quadratic_minor(self.equations, singular) + bad_count = copy.deepcopy(self.minor) + bad_count['all_quadratic_monomials'] -= 1 + with self.assertRaisesRegex(ValueError, 'quadratic support'): + V.check_quadratic_minor(self.equations, bad_count) + + def test_distinct_producer_encoding_and_reproduction(self): + builder = module('build') + witness, variables, monomials, columns, packed = builder.encode() + self.assertEqual(variables, self.variables) + decoded = [frozenset(m for i, m in enumerate(monomials) if row >> i & 1) for row in packed] + self.assertEqual(decoded, self.equations) + outputs = builder.build() + for name, data in outputs.items(): + with self.subTest(name=name): + self.assertEqual(data, json.loads((HERE/name).read_text())) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/research/turyn-profile-parity-lift/algebraic/verify.py b/research/turyn-profile-parity-lift/algebraic/verify.py new file mode 100644 index 0000000000..5eacffc3cd --- /dev/null +++ b/research/turyn-profile-parity-lift/algebraic/verify.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3 +"""Independent local-rule checker for a degree-three ordinary characteristic-two PC refutation. + +Tuple monomials and parity dictionaries are deliberately different from the +producer's packed coefficient rows and monomial bit masks. +""" +from collections import Counter +from pathlib import Path +import argparse +import copy +import hashlib +import importlib.util +import json + +HERE=Path(__file__).resolve().parent +BASELINE=HERE.parents[1]/'turyn-profile-cnf' + +def require(value,message): + if not value: raise ValueError(message) + +def add(polynomials): + parity=Counter() + for polynomial in polynomials: parity.update(polynomial) + return frozenset(term for term,count in parity.items() if count%2) + +def product(first,second): + parity=Counter(tuple(sorted(a+b)) for a in first for b in second) + return frozenset(term for term,count in parity.items() if count%2) + +def encode(witness): + coordinates=witness['coordinates'] + def edge(a,b): + return all(sum(coordinates[a][8*k+i]*coordinates[b][8*k+i] for i in range(8))!=0 for k in range(3)) + variables=[];forms=[] + for v in range(17): + free=[k for k in range(8) if k==7 or not edge(v+7,k)] + coordinate=[frozenset() for _ in range(8)] + for k in free[:-1]: + variables.append([v,k]);coordinate[k]=frozenset({(len(variables)-1,)}) + coordinate[free[-1]]=add([frozenset({()}),*(coordinate[k] for k in free[:-1])]) + forms.append(coordinate) + equations=[add(product(forms[a][k],forms[b][k]) for k in range(8)) for a,b in witness['core_variable_edges']] + return variables,forms,equations + +def verify_steps(proof,equations,n): + outputs=[];statistics=Counter();used_axioms=set() + for i,step in enumerate(proof['steps']): + kind=step['kind'] + if kind=='axiom': + require(set(step)=={'kind','edge'},'Axiom schema') + edge=step['edge'];require(type(edge) is int and 0<=edge1,'Final addition is nontrivial') + last['inputs'].pop();check('omitted_final_summand',missing) + sign=copy.deepcopy(proof) + index=next(i for i,s in enumerate(sign['steps']) if s['kind']=='multiply') + sign['steps'][index]['variable']=(sign['steps'][index]['variable']+1)%n + check('wrong_multiplier',sign) + return rejected + +def check_quadratic_minor(equations, certificate): + columns = [tuple(m) for m in certificate['pivot_monomials']] + require(len(columns) == len(set(columns)) == len(equations) == 57, + 'A square 57-column minor') + require(all(len(m) == 2 and tuple(sorted(m)) == m and + all(type(i) is int and 0 <= i < 40 for i in m) for m in columns), + 'Ordinary quadratic monomial columns') + all_columns = {m for polynomial in equations for m in polynomial if len(m) == 2} + require(len(all_columns) == certificate['all_quadratic_monomials'] == 263, + 'Exact full quadratic support') + matrix = [[int(m in polynomial) for m in columns] for polynomial in equations] + for pivot in range(57): + selected = next((i for i in range(pivot, 57) if matrix[i][pivot]), None) + require(selected is not None, 'Quadratic minor is invertible') + matrix[pivot], matrix[selected] = matrix[selected], matrix[pivot] + for i in range(57): + if i != pivot and matrix[i][pivot]: + matrix[i] = [a ^ b for a, b in zip(matrix[i], matrix[pivot])] + require(certificate['rank'] == certificate['rows'] == 57, 'Rank claim matches checked minor') + return {'rows': 57, 'selected_columns': 57, 'full_quadratic_support': 263, 'rank': 57} + + +def run(): + sources = json.loads((HERE/'SOURCES.json').read_text()) + for name, digest in sources['baseline_files'].items(): + require(hashlib.sha256((BASELINE/name).read_bytes()).hexdigest() == digest, + 'Pinned baseline mismatch: ' + name) + witness=json.loads((BASELINE/'WITNESS.json').read_text()) + proof=json.loads((HERE/'ORDINARY-PC-PROOF.json').read_text()) + spec=importlib.util.spec_from_file_location('baseline_geometry',BASELINE/'verify.py') + geometry=importlib.util.module_from_spec(spec);spec.loader.exec_module(geometry) + geometry.check_sources();geometry.geometry(witness) + variables,forms,equations=encode(witness) + require(proof['variables']==variables,'Exact field-coordinate variable map (no Boolean restriction)') + require(proof['core_variable_edges']==witness['core_variable_edges'],'Exact core edges') + statistics,outputs=verify_steps(proof,equations,len(variables)) + rejected=check_controls(proof,equations,len(variables)) + controls=json.loads((BASELINE/'CONTROLS.json').read_text()) + for control in controls['core_single_edge_deletions']: + values=[(control['labels'][v]>>k)&1 for v,k in variables] + expected=witness['core_variable_edges'].index(control['removed_edge']) + for i,eq in enumerate(equations): + value=sum(all(values[x] for x in term) for term in eq)%2 + require(value==(i==expected),'Polynomial encoding agrees with each exact deletion fitting') + quadratic = check_quadratic_minor(equations, json.loads((HERE/'QUADRATIC-RANK.json').read_text())) + return {'quadratic_minor': quadratic, 'status':'PASS_TURYN_ALL_CHAR2_PC_DEGREE_3','free_coordinates':len(variables),'statistics':statistics,'corruption_controls':rejected,'edge_deletion_assignment_controls':len(controls['core_single_edge_deletions'])} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--write', type=Path) + args = parser.parse_args() + report = run() + if args.write: + args.write.write_text(json.dumps(report, indent=2, sort_keys=True)+'\n') + else: + require(report == json.loads((HERE/'EXPECTED.json').read_text()), 'Exact algebraic receipt') + print(json.dumps(report, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/turyn-profile-parity-lift/build.py b/research/turyn-profile-parity-lift/build.py new file mode 100644 index 0000000000..3fad064b69 --- /dev/null +++ b/research/turyn-profile-parity-lift/build.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python3 +"""Rebuild the actual-port parity lift and explicit binary labels. + +Only the earlier new standard-library geometry producer is imported, at a +verified hash. No predecessor executable source is imported or executed. +""" +from collections import Counter, defaultdict, deque +from itertools import combinations +from pathlib import Path +import argparse +import hashlib +import importlib.util +import json + +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] + +def require(ok,message): + if not ok: raise ValueError(message) + +def active(first,second): + return all(sum(x*y for x,y in zip(first[k:k+8],second[k:k+8])) for k in (0,8,16)) + +def rank(rows): + pivots={} + for row in rows: + while row: + pivot=row.bit_length()-1 + if pivot not in pivots: + pivots[pivot]=row + break + row^=pivots[pivot] + return len(pivots) + +def labels_from_roots(coordinates,profile): + low=(profile+1)%3 + gram=[] + for a in coordinates: + row=[] + for b in coordinates: + dot=sum(a[8*low+i]*b[8*low+i] for i in range(8)) + require(dot%4==0,'Integral low-root pairing') + row.append((1+dot//4)%2) + gram.append(row) + selected=[];rows=[] + for index,row in enumerate(gram): + packed=sum(x<len(rows): + rows.append(packed);selected.append(index) + require(len(selected)==9,'Low-root Gram rank nine') + h=[[gram[a][b] for b in selected] for a in selected] + def dot(a,b): + return sum(h[i][j] for i in range(9) if a>>i&1 for j in range(9) if b>>j&1)%2 + remaining=[1<>k&1)%2)<>a&1 and compatibility[i,j][a]&domains[j]) + if keep!=domains[i]: + if not keep: + statistics['empty_domains']+=1 + return None + domains[i]=keep + queue.extend((k,i) for k in neighbors[i] if k!=j) + unresolved=[i for i,d in enumerate(domains) if d.bit_count()>1] + if not unresolved: + return [d.bit_length()-1 for d in domains] + vertex=min(unresolved,key=lambda i:(domains[i].bit_count(),-len(neighbors[i]),i)) + for choice in range(8): + if domains[vertex]>>choice&1: + child=domains.copy();child[vertex]=1<>= 1 + a <<= 1 + if a & 4: + a ^= 7 + return value + + +def rank4(matrix): + matrix = [row[:] for row in matrix] + rank = 0 + for column in range(len(matrix[0])): + pivot = next((i for i in range(rank, len(matrix)) if matrix[i][column]), None) + if pivot is None: + continue + matrix[rank], matrix[pivot] = matrix[pivot], matrix[rank] + inverse = next(x for x in range(1, 4) if gf4mul(matrix[rank][column], x) == 1) + matrix[rank] = [gf4mul(x, inverse) for x in matrix[rank]] + for i, row in enumerate(matrix): + if i != rank and row[column]: + factor = row[column] + matrix[i] = [x ^ gf4mul(factor, y) for x, y in zip(row, matrix[rank])] + rank += 1 + return rank + + +class VerificationTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.data = V.load('CERTIFICATE.json') + cls.code = V.turyn_code() + cls.quotient = json.loads((V.ROOT/'research/turyn-code-space/evidence/PARITY-CERTIFICATE.json').read_text())['cliques'] + + def test_exact_positive_receipt(self): + self.assertEqual(V.run(), V.load('EXPECTED.json')) + + def test_all_required_corruption_controls(self): + result = V.corruption_controls(self.data['profiles'][0], self.code, self.quotient) + self.assertEqual(len(result), 7) + self.assertIn('valid_same_class_port_breaks_actual_clique', result) + + def test_valid_same_class_geometry_is_not_enough(self): + control = V.load('SAME-CLASS-CONTROL.json') + V.actual_port(control['replacement_coordinates'], 0, self.code) + changed = copy.deepcopy(self.data['profiles'][0]) + changed['coordinates'][control['position']] = control['replacement_coordinates'] + with self.assertRaisesRegex(ValueError, 'actual active port edge'): + V.verify_profile(changed, self.code, self.quotient) + + def test_controls_cannot_silently_disappear(self): + original = V.load + for missing in ('SAME-CLASS-CONTROL.json', 'GLOBAL-SCOPE-CONTROL.json'): + def absent(name, missing=missing): + if name == missing: + raise FileNotFoundError(name) + return original(name) + with self.subTest(missing=missing), patch.object(V, 'load', absent): + with self.assertRaises(FileNotFoundError): + V.run() + + def test_global_cross_profile_failure_is_exact(self): + control = V.load('GLOBAL-SCOPE-CONTROL.json') + report = V.global_scope_check(self.data['profiles'], self.quotient, control) + self.assertEqual([r['missing_cross_profile_edges'] for r in report], + [138, 150, 128, 116, 108, 98, 142, 146, 140]) + for mode in ('count', 'dot', 'missing'): + bad = copy.deepcopy(control) + if mode == 'count': + bad['cliques'][0]['missing_cross_profile_edges'] -= 1 + elif mode == 'dot': + bad['cliques'][0]['first_missing_edge']['integer_block_dots'][0] = 1 + else: + bad['cliques'].pop() + with self.subTest(mode=mode), self.assertRaises(ValueError): + V.global_scope_check(self.data['profiles'], self.quotient, bad) + + def test_profile_geometry_and_membership_mutations(self): + row = self.data['profiles'][0]['coordinates'][0] + for mutation in (row[:-1], [0]*24, [True]+row[1:], [-x for x in row]): + with self.subTest(mutation=mutation[:3]), self.assertRaises(ValueError): + V.actual_port(mutation, 0, self.code) + with self.assertRaises(ValueError): + V.actual_port(row, 1, self.code) + + def test_incidence_and_provenance_mutations(self): + source = self.data['profiles'][0] + for key, value in (('profile', True), ('cliques', source['cliques'][:-1]), + ('classes', [0]*20), ('selected_ports', [0]*20), + ('all_ports_sha256', '0'*64), ('nine_bit_labels', [1]*20)): + changed = copy.deepcopy(source) + changed[key] = value + with self.subTest(key=key), self.assertRaises(ValueError): + V.verify_profile(changed, self.code, self.quotient) + + def test_source_pin_corruption(self): + original = V.load + def corrupt(name): + value = original(name) + if name == 'SOURCES.json': + key = next(iter(value['files'])) + value['files'][key] = '0'*64 + return value + with patch.object(V, 'load', corrupt), self.assertRaisesRegex(ValueError, 'Pinned source mismatch'): + V.source_check() + + def test_binary_rank_against_span_enumeration(self): + for a in range(16): + for b in range(16): + for c in range(16): + span = {0, a, b, c, a^b, a^c, b^c, a^b^c} + self.assertEqual(1 << V.binary_rank([a, b, c]), len(span)) + + def test_asymmetric_extension_field_block_upper_bounds(self): + # Vertex-dependent nonzero F4 row/column gauges make these actual + # fitting matrices nonsymmetric while preserving rank and blocks. + for record in self.data['profiles']: + labels = record['nine_bit_labels'] + gram = [[(a&b).bit_count()%2 for b in labels] for a in labels] + for d in (1, 2, 3): + scales = [1+(i%3) for i in range(20*d)] + inverses = [next(x for x in range(1, 4) if gf4mul(x, s) == 1) for s in scales] + fitting = [[gf4mul(scales[i], inverses[j]) if i%d == j%d and gram[i//d][j//d] else 0 + for j in range(20*d)] for i in range(20*d)] + self.assertEqual(rank4(fitting), 9*d) + for v in range(20): + self.assertEqual([row[v*d:(v+1)*d] for row in fitting[v*d:(v+1)*d]], + [[int(i == j) for j in range(d)] for i in range(d)]) + for a in range(20): + for b in range(a): + if V.active(record['coordinates'][a], record['coordinates'][b]): + self.assertFalse(any(fitting[a*d+i][b*d+j] for i in range(d) for j in range(d))) + if d < 3: + self.assertTrue(any(fitting[i][j] != fitting[j][i] for i in range(20*d) for j in range(i))) + + def test_complete_producer_replay_binds_literal_port_ids(self): + generated = module('build').build() + self.assertEqual(set(generated), {'CERTIFICATE.json', 'BUILD.json', 'FULL-PROFILE-UPPER.json', + 'SAME-CLASS-CONTROL.json', 'GLOBAL-SCOPE-CONTROL.json'}) + for name, data in generated.items(): + with self.subTest(name=name): + self.assertEqual(data, V.load(name)) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/research/turyn-profile-parity-lift/verify.py b/research/turyn-profile-parity-lift/verify.py new file mode 100644 index 0000000000..e777ff5b69 --- /dev/null +++ b/research/turyn-profile-parity-lift/verify.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +"""Direct integer checker for actual-port characteristic-two parity covers. + +No producer, predecessor geometry module, or numerical package is imported. +""" +from collections import Counter +from pathlib import Path +import argparse +import copy +import hashlib +import json + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def require(value, message): + if not value: + raise ValueError(message) + + +def load(name): + return json.loads((HERE/name).read_text()) + + +def source_check(): + source = load('SOURCES.json') + for name, expected in source['files'].items(): + require(hashlib.sha256((ROOT/name).read_bytes()).hexdigest() == expected, + 'Pinned source mismatch: '+name) + return source + + +def turyn_code(): + generators = [] + for word in (255, 170, 204, 240): + generators += [word | (word << 16), (word << 8) | (word << 16)] + permutation = (0, 1, 2, 4, 3, 6, 7, 5) + for word in (255, 170, 204, 240): + other = sum(((word >> permutation[i]) & 1) << i for i in range(8)) + generators.append(other | (other << 8) | (other << 16)) + code = {0} + for row in generators: + code |= {word ^ row for word in code} + require(len(code) == 4096, 'Turyn code dimension 12') + require(Counter(word.bit_count() for word in code) == + {0: 1, 8: 759, 12: 2576, 16: 759, 24: 1}, 'Turyn code weights') + return code + + +def actual_port(row, profile, code): + require(len(row) == 24 and all(type(x) is int for x in row), 'Integer 24-vector') + require(sum(x*x for x in row) == 32, 'Integer squared norm 32') + require(all((x-row[0]) % 2 == 0 for x in row), 'Common coordinate parity') + require((sum(row)-4*row[0]) % 8 == 0, 'Leech sum condition') + magnitudes = Counter(map(abs, row)) + if magnitudes == {0: 16, 2: 8}: + support = sum(1 << i for i, x in enumerate(row) if x) + require(support in code and sum(x < 0 for x in row) % 2 == 0, + 'Octad shell family with even minus signs') + elif magnitudes == {1: 23, 3: 1}: + signs = [-x//3 if abs(x) == 3 else x for x in row] + word = sum(1 << i for i, x in enumerate(signs) if x == -1) + require(word in code, 'Exceptional-coordinate shell family') + else: + raise ValueError('Not a full-port shell vector') + for residue in range(4): + word = sum(1 << i for i, x in enumerate(row) if x % 4 == residue) + require(word in code, 'Residue code condition') + norms = [sum(row[8*k+i]**2 for i in range(8)) for k in range(3)] + require(norms == [16 if k == profile else 8 for k in range(3)], 'Exact profile') + require(all(next(x for x in row[8*k:8*k+8] if x) > 0 for k in range(3)), + 'Canonical block signs') + + +def active(a, b): + return all(sum(a[8*k+i]*b[8*k+i] for i in range(8)) != 0 for k in range(3)) + + +def binary_rank(rows): + remaining = [list((row >> k) & 1 for k in range(9)) for row in rows] + pivot = 0 + for column in range(9): + selected = next((i for i in range(pivot, len(remaining)) if remaining[i][column]), None) + if selected is None: + continue + remaining[pivot], remaining[selected] = remaining[selected], remaining[pivot] + for i in range(len(remaining)): + if i != pivot and remaining[i][column]: + remaining[i] = [x ^ y for x, y in zip(remaining[i], remaining[pivot])] + pivot += 1 + return pivot + + +def verify_profile(record, code, quotient_cliques): + profile = record['profile'] + require(type(profile) is int and profile in (0, 1, 2), 'Profile range') + coordinates = record['coordinates'] + require(len(coordinates) == 20 and len({tuple(row) for row in coordinates}) == 20, + 'Twenty distinct actual ports') + for row in coordinates: + actual_port(row, profile, code) + graph = {(i, j) for i in range(20) for j in range(i) if active(coordinates[i], coordinates[j])} + cliques = record['cliques'] + require(len(cliques) == 9, 'Nine cliques') + incidences = Counter() + clique_edges = set() + for clique in cliques: + require(len(clique) == 8 and len(set(clique)) == 8, 'Eight distinct clique vertices') + require(all(type(v) is int and 0 <= v < 20 for v in clique), 'Clique vertex range') + incidences.update(clique) + for i, a in enumerate(clique): + for b in clique[:i]: + edge = (max(a, b), min(a, b)) + require(edge in graph, 'Clique pair is an actual active port edge') + clique_edges.add(edge) + require(set(incidences) == set(range(20)), 'Every supplied port is used') + require(Counter(incidences.values()) == {2: 12, 6: 8}, 'Exact even incidence histogram') + require(clique_edges == graph and len(graph) == 124, 'All 124 actual edges are covered') + labels = record['nine_bit_labels'] + require(len(labels) == 20 and all(type(x) is int and 0 <= x < 512 for x in labels), + 'Twenty nine-bit labels') + require(all(x.bit_count() % 2 == 1 for x in labels), 'Odd label diagonals') + require(all((labels[a] & labels[b]).bit_count() % 2 == 0 for a, b in graph), + 'Nine-bit fitting on every actual graph edge') + require(binary_rank(labels) == 9, 'Explicit label rank nine') + classes = record['classes'] + require(len(classes) == len(set(classes)) == 20 and classes == sorted(classes), + 'Twenty ordered source class IDs') + require(all(type(c) is int and c//960 == profile for c in classes), 'Source class profiles') + inherited = [[c for c in clique if c//960 == profile] for clique in quotient_cliques] + require(record['clique_classes'] == inherited, 'Exact inherited quotient restrictions') + require([[classes[v] for v in clique] for clique in cliques] == inherited, + 'Literal local-index to source-clique correspondence') + require(len(record['selected_ports']) == len(set(record['selected_ports'])) == 20, + 'Twenty distinct recorded source port IDs') + require(all(type(v) is int and 0 <= v < 23040 for v in record['selected_ports']), + 'Recorded source port ID range') + reference = json.loads((ROOT/'research/leech-lattice/evidence/TURYN-GEOMETRY.json').read_text()) + require(record['all_ports_sha256'] == reference['integer_representatives_sha256'], + 'Generation receipt full-array hash') + return {'profile': profile, 'ports': 20, 'cliques': 9, 'clique_size': 8, + 'ordered_clique_edge_checks': 9*8*7, 'distinct_actual_edges': len(graph), + 'incidence_histogram': {'2': 12, '6': 8}, 'explicit_binary_label_rank': 9, + 'block_rank_lower_bound_per_d': 9, 'scalar_and_normalized_block_rank': 9} + + +def corruption_controls(record, code, quotient): + rejected = [] + def rejection(name, altered): + try: + verify_profile(altered, code, quotient) + except (ValueError, IndexError, KeyError, TypeError): + rejected.append(name) + else: + raise ValueError('Accepted corruption: '+name) + missing = copy.deepcopy(record) + missing['cliques'].pop() + rejection('missing_clique', missing) + duplicated = copy.deepcopy(record) + duplicated['cliques'][0][0] = duplicated['cliques'][0][1] + rejection('repeated_clique_vertex', duplicated) + coordinate = copy.deepcopy(record) + coordinate['coordinates'][0][0] += 1 + rejection('changed_coordinate', coordinate) + even = copy.deepcopy(record) + even['nine_bit_labels'][0] = 0 + rejection('even_diagonal_label', even) + collision = copy.deepcopy(record) + a, b = collision['cliques'][0][:2] + collision['nine_bit_labels'][a] = collision['nine_bit_labels'][b] + rejection('equal_labels_on_clique_edge', collision) + wrong_source = copy.deepcopy(record) + wrong_source['clique_classes'][0][0] += 1 + rejection('changed_source_clique', wrong_source) + control = load('SAME-CLASS-CONTROL.json') + require(control['profile'] == record['profile'], 'Same-class control profile') + actual_port(control['replacement_coordinates'], record['profile'], code) + position = control['position'] + require(type(position) is int and 0 <= position < 20, 'Same-class replacement position') + require(control['source_class'] == record['classes'][position], 'Same source class ID') + require(control['original_port'] == record['selected_ports'][position], 'Original source port ID') + require(all(control['replacement_coordinates'][8*k:8*k+8] == + record['coordinates'][position][8*k:8*k+8] + for k in range(3) if k != record['profile']), 'Identical two low roots') + a, b = control['broken_required_edge'] + require(a == position and type(b) is int and 0 <= b < 20 and a != b, + 'Broken-edge control endpoints') + require(any(a in clique and b in clique for clique in record['cliques']), + 'Control edge is required by a literal clique') + require(not active(control['replacement_coordinates'], record['coordinates'][b]), + 'Valid same-class replacement loses the required actual edge') + replaced = copy.deepcopy(record) + replaced['coordinates'][position] = control['replacement_coordinates'] + rejection('valid_same_class_port_breaks_actual_clique', replaced) + return rejected + + +def global_scope_check(profiles, quotient, control): + chosen = {c: row for record in profiles + for c, row in zip(record['classes'], record['coordinates'])} + reports = [] + require(len(control['cliques']) == 9, 'Nine global scope controls') + for index, clique in enumerate(quotient): + missing = [] + for i, a in enumerate(clique): + for b in clique[i+1:]: + if a//960 == b//960: + continue + dots = [sum(chosen[a][8*k+j]*chosen[b][8*k+j] for j in range(8)) + for k in range(3)] + if any(dot == 0 for dot in dots): + missing.append({'classes': [a, b], 'integer_block_dots': dots}) + require(missing, 'These specific profile choices fail a global required edge') + report = {'clique_index': index, 'missing_cross_profile_edges': len(missing), + 'first_missing_edge': missing[0]} + require(report == control['cliques'][index], 'Exact global scope control') + reports.append(report) + return reports + + +def run(): + source = source_check() + data = load('CERTIFICATE.json') + require([r['profile'] for r in data['profiles']] == [0, 1, 2], 'Exactly all three profiles') + quotient = json.loads((ROOT/'research/turyn-code-space/evidence/PARITY-CERTIFICATE.json').read_text())['cliques'] + code = turyn_code() + reports = [verify_profile(r, code, quotient) for r in data['profiles']] + controls = corruption_controls(data['profiles'][0], code, quotient) + global_scope = global_scope_check(data['profiles'], quotient, load('GLOBAL-SCOPE-CONTROL.json')) + return {'status': 'PASS_ACTUAL_TURYN_PROFILE_BLOCK_RANK_9', 'base_commit': source['base_commit'], + 'profiles': reports, 'corruption_controls': controls, + 'global_scope_controls': global_scope, + 'scope': 'Each 20-port witness has rank exactly 9d for minimum-rank asymmetric d-block fittings over every characteristic-two field. No global 27-dimensional or new-kappa claim.'} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--write', type=Path) + args = parser.parse_args() + report = run() + if args.write: + args.write.write_text(json.dumps(report, indent=2, sort_keys=True)+'\n') + else: + require(report == load('EXPECTED.json'), 'Exact deterministic receipt') + print(json.dumps(report, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/turyn-profile-parity-lift/verify_full_profiles.py b/research/turyn-profile-parity-lift/verify_full_profiles.py new file mode 100644 index 0000000000..551880a099 --- /dev/null +++ b/research/turyn-profile-parity-lift/verify_full_profiles.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +"""Independently enumerate all actual ports and verify full-profile upper fits. + +No geometry producer is imported. This uses the checker's binary code span, +canonical sign enumeration, exact integers, and a complete fiber partition. +""" +from collections import Counter, defaultdict +from itertools import combinations +from pathlib import Path +import argparse +import hashlib +import importlib.util +import json + +HERE = Path(__file__).resolve().parent +spec = importlib.util.spec_from_file_location('independent_parity_checker', HERE/'verify.py') +V = importlib.util.module_from_spec(spec) +spec.loader.exec_module(V) + + +def enumerate_ports(code): + ports = set() + for word in sorted(code): + if word.bit_count() == 8: + support = [i for i in range(24) if word >> i & 1] + blocks = [[i for i in support if i//8 == k] for k in range(3)] + if all(blocks): + # First nonzero coordinate in each block is positive. Of + # the five remaining signs, exactly an even number are minus. + free = [i for block in blocks for i in block[1:]] + for mask in range(1 << len(free)): + if mask.bit_count() % 2: + continue + row = [2 if i in support else 0 for i in range(24)] + for j, i in enumerate(free): + if mask >> j & 1: + row[i] = -2 + ports.add(tuple(row)) + for exceptional in range(24): + row = [1-2*((word >> i) & 1) for i in range(24)] + row[exceptional] *= -3 + for start in (0, 8, 16): + if row[start] < 0: + row[start:start+8] = [-x for x in row[start:start+8]] + ports.add(tuple(row)) + ordered = sorted(ports) + V.require(len(ordered) == 23040, 'Complete canonical port count') + digest = hashlib.sha256(bytes(x % 256 for row in ordered for x in row)).hexdigest() + reference = json.loads((V.ROOT/'research/leech-lattice/evidence/TURYN-GEOMETRY.json').read_text()) + V.require(digest == reference['integer_representatives_sha256'], 'Independent complete coordinate-array digest') + return ordered, digest + + +def upper_bound(ports, certificate, code): + V.require(certificate['selected_low_block'] == '(profile+1) mod 3', 'Declared low-block convention') + roots = certificate['roots'] + labels = certificate['nine_bit_labels'] + V.require(len(roots) == len({tuple(r) for r in roots}) == 120, 'All 120 distinct low roots') + V.require(roots == sorted(roots), 'Canonical root order') + V.require(all(len(r) == 8 and all(type(x) is int for x in r) and + sum(x*x for x in r) == 8 and next(x for x in r if x) > 0 for r in roots), + 'Canonical exact norm-eight roots') + V.require(len(labels) == 120 and all(type(x) is int and 0 <= x < 512 for x in labels), + 'Root labels have exactly nine binary coordinates') + V.require(all(x.bit_count() % 2 == 1 for x in labels), 'Odd root-label diagonals') + V.require(V.binary_rank(labels) == 9, 'Full-profile upper labels rank nine') + root_dots = Counter() + for i, a in enumerate(roots): + for j, b in enumerate(roots[:i]): + dot = sum(x*y for x, y in zip(a, b)) + V.require(dot in (-4, 0, 4), 'Distinct low-root pairing spectrum') + root_dots[dot] += 1 + V.require((labels[i]&labels[j]).bit_count() % 2 == (1+dot//4) % 2, + 'Every root-pair binary Gram entry') + by_root = {tuple(root): label for root, label in zip(roots, labels)} + fibers = [defaultdict(list) for _ in range(3)] + for row in ports: + norms = [sum(x*x for x in row[8*k:8*k+8]) for k in range(3)] + V.require(sorted(norms) == [8, 8, 16], 'Complete-array profile norms') + profile = norms.index(16) + V.actual_port(row, profile, code) + low = (profile+1) % 3 + root = tuple(row[8*low:8*low+8]) + V.require(root in by_root, 'Every actual port has a certified low-root label') + fibers[profile][root].append(row) + reports = [] + for profile in range(3): + V.require(set(fibers[profile]) == set(by_root), 'Every low root is used in each profile') + V.require(Counter(map(len, fibers[profile].values())) == {64: 120}, 'Complete 120-by-64 fiber partition') + checks = 0 + for fiber in fibers[profile].values(): + for a, b in combinations(fiber, 2): + V.require(not V.active(a, b), 'All distinct same-root ports are inactive') + checks += 1 + reports.append({'profile': profile, 'ports': 7680, 'fibers': 120, + 'ports_per_fiber': 64, 'same_fiber_inactive_pairs_checked': checks, + 'all_unordered_port_pairs_covered': 7680*7679//2, + 'explicit_label_rank': 9}) + return {'profiles': reports, 'root_pair_dots': {str(k): v for k, v in sorted(root_dots.items())}, + 'distinct_root_pairs_checked': 120*119//2} + + +def bind_source_classes(ports, lower, control): + groups = [defaultdict(list) for _ in range(3)] + for i, row in enumerate(ports): + profile = next(k for k in range(3) if sum(x*x for x in row[8*k:8*k+8]) == 16) + key = tuple(x for k in range(3) if k != profile for x in row[8*k:8*k+8]) + groups[profile][key].append(i) + classes = [groups[profile][key] for profile in range(3) for key in sorted(groups[profile])] + V.require(len(classes) == 2880 and all(len(c) == 8 for c in classes), 'Independent full glue-class map') + for record in lower['profiles']: + V.require([list(ports[i]) for i in record['selected_ports']] == record['coordinates'], + 'All twenty lower-certificate source indices bind exact coordinates') + V.require(all(port in classes[source_class] for port, source_class in + zip(record['selected_ports'], record['classes'])), + 'Each chosen port belongs to its declared quotient source class') + V.require(list(ports[control['replacement_port']]) == control['replacement_coordinates'], + 'Same-class control source index binds exact replacement coordinates') + V.require(control['replacement_port'] in classes[control['source_class']] and + control['original_port'] in classes[control['source_class']], + 'Original and replacement port share the exact declared source class') + return {'complete_classes': 2880, 'ports_per_class': 8, 'lower_witness_bindings': 60, + 'same_class_control_bound': True} + + +def run(): + V.source_check() + code = V.turyn_code() + ports, digest = enumerate_ports(code) + certificate = V.load('FULL-PROFILE-UPPER.json') + V.require(certificate['all_ports_sha256'] == digest, 'Full-profile source-array receipt') + report = upper_bound(ports, certificate, code) + # Match the lower certificates to literal entries of this independently + # regenerated array. This additionally checks all recorded source IDs. + lower = V.load('CERTIFICATE.json') + bindings = bind_source_classes(ports, lower, V.load('SAME-CLASS-CONTROL.json')) + V.run() + return {'status': 'PASS_FULL_TURYN_PROFILES_BLOCK_RANK_9', + 'all_ports_sha256': digest, 'canonical_ports': len(ports), 'source_bindings': bindings, **report, + 'scope': 'Each individual complete 7680-port profile has minimum asymmetric d-block fitting rank exactly 9d over every characteristic-two field; no global additive lower bound.'} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--write', type=Path) + args = parser.parse_args() + report = run() + if args.write: + args.write.write_text(json.dumps(report, indent=2, sort_keys=True)+'\n') + else: + V.require(report == V.load('FULL-PROFILE-EXPECTED.json'), 'Exact complete-profile receipt') + print(json.dumps(report, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main()