diff --git a/research/early-reset-source-banks/EXPECTED.json b/research/early-reset-source-banks/EXPECTED.json new file mode 100644 index 0000000000..a436b8ac53 --- /dev/null +++ b/research/early-reset-source-banks/EXPECTED.json @@ -0,0 +1,10 @@ +{ + "R": 746, + "candidate_sha256": "fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48", + "kappa": "1806275959707/1600000000000000", + "kappa_decimal": "0.001128922474816875", + "bit_lower": "1130198381170380746807/1000000000000000000000000", + "complex_lower": "1183986549206329/1000000000000000000", + "bit_template_sha256": "0394e2b80b0c08dbd5a643a15d8a2fa44ac6a1a4e6c59de5badd6b6d6987a3d8", + "complex_template_sha256": "942d030fa43316c560c88d7d7d904583446e1a96945b3ebd37a91c88a192ab4f" +} diff --git a/research/early-reset-source-banks/LICENSE b/research/early-reset-source-banks/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/early-reset-source-banks/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/early-reset-source-banks/MANIFEST.json b/research/early-reset-source-banks/MANIFEST.json new file mode 100644 index 0000000000..1e29d25f7b --- /dev/null +++ b/research/early-reset-source-banks/MANIFEST.json @@ -0,0 +1,80 @@ +{ + "files": { + "EXPECTED.json": "dbf6aa1afec88fbf067a4fe19799d296580d9ca88276e1792c0ece5bd02a6391", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE.md": "29f1b53877a9cb40db883018a163168e6857bb3a3edf404fcae4d5a32836b0ec", + "PROOF.md": "b04f0e2b9373a909bad60ef1c7c5ffa7b696c672eadbbb63510798d52977bcaf", + "README.md": "7adc202ec96ec83e14e495752a2345966eed253fa8fbdcbc758a826f0742769b", + "admission/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "admission/UPSTREAM-NOTICE.md": "66101a9e74d0ba9c2da4c8802bcb1968534adfa7130b954628eb8bf515fc0389", + "admission/code/bit_audit.py": "188edd75d81d8a0299501b680c9f8db2890dc0b3798b3dc53741ab384c198198", + "admission/code/bit_global.py": "3f161a1730c180db5d9652604908ddd97b70cff2b471d95b11b5154d05245d34", + "admission/code/bit_price.py": "36bf15803567a95b139a908461541bf19efe1f5b85fb31c270021833ab1393ee", + "admission/code/combined.py": "66373cd552dfc5db2727a12d333808928e09840bbdb4df8859359af7892e9fba", + "admission/code/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "admission/verify.py": "9f18d63424fa74ceaf8dd491f562f5c59ad15665913d94359c0c6290cdcc7141", + "code/independent_audit.py": "c318f1020cfeb2e9e12c8922e1978ce5e136eb2fcdfd837b30b533e921dd07db", + "constructor/LOCAL-AUDIT.json": "c03765ce0b7752dcc78ea9252d1f46cfb37e6dc8906b9287bae1adbcfa550a28", + "constructor/SOURCE-PINS.json": "27de0dd2902b882a1d4a70557d76f5b0e974ff8286f52d09d58c05af08070613", + "constructor/construct.py": "de81691505e6003a31188acae88b29e46e7e3486b78fb0d3e3eb93964845f547", + "constructor/local_audit.py": "122d23591e46c05a080227f897ffba7b6e90f0cf4cf22d316b18b0a3ba800873", + "constructor/selections.json": "ab527c42d6919259dcc68007d950539907a20fe2a03e22ba4dd075590c616ec0", + "evidence/EARLY-RESET-CANDIDATES.json": "6f726d742cb9e014bc1c4bd083cca39643f4d7c5f0f455a656f7a3d6030152d6", + "evidence/GREEDY-CHECKPOINT.json": "a8253a5470d2f867a3133e039a662f642d3c4509695faa25c6885ffcef99e029", + "evidence/REUSE-BEST.json": "5d501e869832639a5dd3b10f9f39907be7e8e35efd1e4588e5748c228dc1dd50", + "evidence/candidate-admission.json": "1ac2bb698e5bfddde44ccb955a0cd427fe99db81c82bf1fca975bc1b2f1ec24b", + "evidence/candidate-independent.json": "b5c3ca59ee1bafb6bbf751640d9e26c41a24a2c829e310f0d8ef0fed136e5378", + "evidence/materialize_reuse.py": "6e64c3af1bda77b3ba7d1695fbbcdb311b5b971e590f52146c20be1b359941aa", + "evidence/parent-independent.json": "168e413e429d2f46c144198826a0895fe49172e684b0521a469eca00b4894405", + "evidence/parent-literal.json": "556a9380700cdfbbe6ca9951a8241272d752b9a33595226721685171a95bd8d8", + "evidence/parent-reflected.json": "51db22f50aef976ba16abaebc81e28dcbd069e2efde2b9e72b6de2424749d65d", + "vendor/pr433/.gitattributes": "2f9541c7c27f084baad73b4cd50ddaeb264cc3aa8dbf13ec21df5ab3f673ca7e", + "vendor/pr433/CERTIFICATE.json": "f71580f22193726fb582eae604807ff70a7302265e001d9484a718e63bbe14c4", + "vendor/pr433/EXPECTED.json": "9b8e56eee3d5bdabd2e3e6e4ba0d9eba537525fba25a54126f9f0e41d2491a06", + "vendor/pr433/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr433/MANIFEST.json": "c903e548e42d04a243a034d320b15e6cb26b878c30f935181336ea6ea679a004", + "vendor/pr433/NOTICE.md": "66101a9e74d0ba9c2da4c8802bcb1968534adfa7130b954628eb8bf515fc0389", + "vendor/pr433/PROOF.md": "6983e75f29af6eeaab20a30b08307ec6fab75ccb8b10291df8f9eb04d497f894", + "vendor/pr433/README.md": "b432292594adf2fcba2a8ddd87eda6167c76ff055e85aa5e3e2af7dd7e0f976e", + "vendor/pr433/SOURCES.json": "11aa666d678fed084b01d1e8e47239e1674eaedbc6fe0cee7edb2753477af9be", + "vendor/pr433/VALIDATION.json": "4957420a5a988e045537e31f79da7f8d35592185d45802c0ff4adfd0d97a772e", + "vendor/pr433/code/bit_audit.py": "7fdbc077b7501a53662769ff2bf2ab44cc2e32dafc34478d7ef2c10e3144503a", + "vendor/pr433/code/bit_construct.py": "a461e6c983531beb5c8ac82ff593f39ce4e056387d1d6061f6e6b294dde4395f", + "vendor/pr433/code/bit_global.py": "3b2cb3ba21e5cf9b4deddb9e606322f33e9d8082020c0ee9092c21f4ebd9ad48", + "vendor/pr433/code/bit_price.py": "36bf15803567a95b139a908461541bf19efe1f5b85fb31c270021833ab1393ee", + "vendor/pr433/code/combined.py": "9c5bc70f2331b7342ceb252adcddb993581c45f80c37bcc58642dbad3b9775c2", + "vendor/pr433/code/complex_audit.py": "adeba5ea113652b60105db2e8719b18ffa292d3cc23730cca614b40272348330", + "vendor/pr433/code/complex_construct.py": "0f7f45b2333ec7daf4291e2bf675b49bc330b97fb5965dd27220ba353c291d6f", + "vendor/pr433/code/complex_emit.py": "f56d5f01f7c121741f175814138dca7190d769920f0a27e2d5b99c21aebed0f1", + "vendor/pr433/code/complex_integrate.py": "3792f41e409383e6989bda22801a4836a646a530f99e99bbd7244a8f3a1a8b4f", + "vendor/pr433/code/complex_phases.py": "3e2a52198475ee280a314895ab74df8437e3c0de0cad2d90baa370aa2a52c364", + "vendor/pr433/code/complex_phases_full.py": "0f2795aaffafe0c64d77f3748ef2109a3c42c58da867e4cf269a0a8cb6109466", + "vendor/pr433/code/complex_replay.py": "be2dccce2d1ad2c4f5c01a851c9c3896cc88236b5aeae706aad2ab16d6bfdad9", + "vendor/pr433/inputs/bit-geometry.json.gz": "5c980202227859e8bb9b863f94503930c2a59d460c0421356688e2b0d828b4a1", + "vendor/pr433/inputs/bit-r767.json.gz": "bd3b84244528767b85d8d7fe423b155630b5c659e21e51563674b1dcb6305ad7", + "vendor/pr433/inputs/complex-data-phases.json.gz": "c972b5b60649c2a52354f5160f69adc0f4a270fa09d32012beff9888774ab84f", + "vendor/pr433/inputs/complex-phase-receipt.json": "b7e9de8137ed1de3e72a94c3a11525a8ff3770c914a43e3c3b82fd5d75264b32", + "vendor/pr433/inputs/complex-phase-recipes.json.gz": "b5472bb1d3f9ff41b0819780a42886a7686b4caf3c0617bb1dc86158b3fb8671", + "vendor/pr433/inputs/complex-ports.json.gz": "77b0c0fa19ef3da1c7316010e13493aa5eea1a50c3506eddc08f7480e659878b", + "vendor/pr433/inputs/complex-template.json.gz": "1b84904a31a733aab9bfdda3f528c06719f590d2133a43687a8bded955dc991e", + "vendor/pr433/inputs/e8-r865.json.gz": "1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55", + "vendor/pr433/notices/NOTICE-PR352.md": "967e6d7e76e216e4898cf543c75b527e8d397ec1ddba3800cb20701f24c89524", + "vendor/pr433/notices/NOTICE.md": "025773f32fb43667395e64c627a1752877bdc93afbfe01b106703eee438d21d3", + "vendor/pr433/notices/PR386.txt": "ae2241615a23063b18a04f1b7a88a52e62b3d7d42e333fbd21e3668567ab83d1", + "vendor/pr433/notices/PR426-SOURCE-PINS.json": "18ace817f2f9af22511bb303e99656ed114e534b87f3dd95a65ca4ca670baf2f", + "vendor/pr433/notices/PR426.md": "6a5593d0f284a2f0865037f5c5fa9e5f76f9e12cf50ec5284486d3b8137c89da", + "vendor/pr433/notices/SUSSMAN-NOTICE": "9419dd03a2f52cf8bdfc4d18216ce29f263ab583b27f01ced8e420985bcb7c81", + "vendor/pr433/proofs/INHERITED-COMPLEX-GEOMETRY.txt": "c1ff55536594222a8d2a30bc0e0956959774e1be2d5420b7838ad553ee556df2", + "vendor/pr433/proofs/PR386-BIT-GEOMETRY.txt": "c5f077b849e9add9957ab4ee36095dd47bc678dee7e09baa146dac4c0a0d66b2", + "vendor/pr433/proofs/PR425-COMPLEX.txt": "2cda27b9b9a1eb24127c38c2c7a6e085155a2472183e220189a3ea2c2b7720dc", + "vendor/pr433/proofs/PR426.md": "5787738ceb6faf14d3d96e8452592860a6c6a469733a9bcf196e8d1562ba1ffb", + "vendor/pr433/vendor/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendor/pr433/vendor/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/pr433/vendor/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/pr433/vendor/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/pr433/vendor/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "vendor/pr433/vendor/hamming_packets.py": "daa9301e2767a711cfe66c6bebaad68e1a3bdb97ec9e848c927527ab43b37ae5", + "vendor/pr433/verify.py": "257c93d015e39713c2cbf7137cf54ae3b844eb7ee756b5377b7f00baba611cdf", + "verify.py": "90a36d11238fddcd8beb233406557d62cd3fedd14bcd8388ddd56539ac04b7ab" + } +} diff --git a/research/early-reset-source-banks/NOTICE.md b/research/early-reset-source-banks/NOTICE.md new file mode 100644 index 0000000000..7e320b1e18 --- /dev/null +++ b/research/early-reset-source-banks/NOTICE.md @@ -0,0 +1,31 @@ +# Provenance and AI assistance + +Prepared for eumemic with substantial OpenAI Codex assistance, October 2026. +New contributions here are the final-use early-reset selection and constructor, +twelve compatible row reuses, changed variable-R admission, independent +accounting audit, and portable full-replay integration. + +The complete parent at `vendor/pr433/` is preserved without changes from +icekylinx/integer-mult-bounds commit +2992f234bcb2538cb70f4d026aa8d08250b1040c, published as CrocSwap PR433. +icekylinx with substantial OpenAI Codex assistance contributed the split-centre +complex construction, source-centre reuse and combined integration. Its notices, +source pins, licenses and cited proofs are retained in that directory. + +ai-nanachi with OpenAI Codex supplied PR426's R767 word, clean-reset reuse and +frame changes; this work generalizes reset placement to the earlier final-use +boundary. Zhihao Chen with OpenAI Codex supplied PR425's mutable-basis Hamming +complex word and PR386's compressed nine-stage geometry and auditors. Dylan Crow +with Anthropic Claude supplied PR370's E8 bit producer, root data and record +exporter. Jacob Sussman supplied the E8 unit and compiler/frame framework. All +remaining contributor and source-specific disclosures are retained in the +parent notices and proofs. + +The admission files are explicitly adapted from PR433 for variable helper +count and freshly charged finite budgets. The constructor and independent audit +are new. Every adapted code file identifies its origin and Codex assistance. + +Apache-2.0. See LICENSE and the untouched upstream notices. No priority or +global-optimality claim is made. Concurrent PR431 develops other Hamming and +bit frame-retiming compositions; this package derives from frozen PR433 and +uses the stated early-reset construction. diff --git a/research/early-reset-source-banks/PROOF.md b/research/early-reset-source-banks/PROOF.md new file mode 100644 index 0000000000..111aea008b --- /dev/null +++ b/research/early-reset-source-banks/PROOF.md @@ -0,0 +1,68 @@ +# Early reset and reuse + +Let a helper r have its final use in the current main word, and let s be an +as-yet unused helper. At that boundary, the clean-source value of r is an exact +F2 sum of the selected donor rows. Apply those XOR additions immediately, at a +common legal frame. Its clean-source value is now zero. Replace every later +occurrence of s by r and remove s from the physical register list. + +The helper r can still contain arbitrary dirty input. No cleanliness assumption +is made about this part. Every transformation reconstructs the complete dirty +response K of the new main word, emits target correction -K at frame zero, and +emits the literal inverse of the entire helper subword at the common full frame. +The source-basis transformation already in PR433 is restored by its explicit +inverse before the B suffix. Each intermediate program is checked on every +independent source, target and dirty-helper column. Thus the targets acquire +exactly their source input and all borrowed helper and source inputs are +restored. No old dirty-response table is copied into the new construction. + +The frozen twelve selections include their precise stage, reset boundary, +donor list, frame and later allocation. The constructor independently checks +that the old helper is no longer used, the new helper has not yet been used, +and the actual clean-source reset sum is zero. The independent local audit +computes rational ranks of all 944 retained frames and checks every common-frame +incidence, both reflected programs, the final endpoints and both paid ledgers. +All twelve omitted-reset mutations fail after rebuilding compensation/cleanup. +Eleven delayed-reset mutations fail; one delayed reset is a valid positive +control and is explicitly retained as such. Omitting the dirty correction or +helper cleanup also fails. There are 25 rejected controls and one accepted +positive control, not 26 rejected controls. + +The final local profile is {1:2401, 2:864, 3:475, 4:309, 5:152, 7:14, 8:9}. +There remain nine sequential full-rank copied centres. The unchanged rational +root frames and port routes use the PR386 dimension-64 geometry. Every new +local instruction is re-exported, and its chronological reflection reverses +the records and turns each erase into a new copy at that exact point. Both +orientations replay all 986 independent columns and close the private work. + +Nine stages and eight replicas use 746 banks per stage. Each bank contains +eight whole rank-eight residual blocks, with no padding. The owner formula is +7680 + stage*746 + floor((replica*746+helper)/8), with slot equal to the +remainder. All 53,712 assignments are explicitly checked. Within one call, +slots produce distinct cover classes; over a complete cover sweep the eight +orthogonal residual blocks compose to the full exchange. This uses the inherited +arbitrary-dirty local lifting and cover interfaces, with every changed owner +revalidated. The unbanked global replay has 7,674 independent columns. + +The new global profile is recounted from 72 emitted local programs and the +complete idle schedule. It has rank deficit 2496 and largest child 42; the +integer inequality 64^2 > 2*42^2 proves two-level halving. The finite invoice +recounts scalar additions, routing factors, selectors, copy/erase episodes, +compiler adapters, live/physical storage, and the actual cancellation-free +prefix bound. The latter requires 226 bits, charged at 256. The two-level +coefficient requires 488 bits, charged at 512. The row coefficient 18355 remains +below the retained 20161 allowance. + +Both rational moment engines give bit saving +1130198381170380746807/10^24. The fully replayed, unchanged complex supplier gives +1183986549206329/10^18. With eta=beta=10^-18 and six fixed ordinary bootstrap +levels, the exact outer assembly gives κ=1806275959707/1600000000000000. Every +bootstrap cutoff uses the charged finite coefficient. All 47 strict constraints +are positive; the next 10^-18 κ grid point and invalid-parameter controls fail. +The independently implemented record/bank/invoice/outer audit reproduces the +same arithmetic without importing any producer or assembly code. + +These are finite conditional claims. The inherited all-size supplier/compiler, +common chart and grid, restored rows, tape/precision and analytic reduction +interfaces are assumptions. No global optimality, legacy gx/gxcore acceptance, +Lean-kernel proof, or practical runtime claim is made. diff --git a/research/early-reset-source-banks/README.md b/research/early-reset-source-banks/README.md new file mode 100644 index 0000000000..4343539eea --- /dev/null +++ b/research/early-reset-source-banks/README.md @@ -0,0 +1,39 @@ +# Twelve early helper resets in the split-centre construction + +κ = 1.128922474816875e-3 = 1806275959707/1600000000000000. + +This conditional finite construction starts from frozen PR433 and reuses twelve +bit helper rows after an exact reset at their final earlier use. It reduces the +bit helper count from 758 to 746, recomputes all dirty compensation and inverse +cleanup, and combines the changed supplier with PR433's split-centre complex +supplier. The bit side remains the limiting component. + +Run with **Python 3.14 or later**, using only the standard library: + +```sh +python3 -B research/early-reset-source-banks/verify.py --output /tmp/early-reset-full +``` + +Use a new output directory outside the package. No network access is needed. +The full verifier regenerates the pinned parent and all its Gaussian phases, +reconstructs twelve selected resets, checks both local orientations and reset +mutations, exports the actual bit record stream, checks every global owner, +recalculates both supplier profiles and finite invoices, and rechecks the exact +outer assembly independently. Every source file is hashed before and after. + +The parent package is byte-for-byte pinned to PR433 commit +`2992f234bcb2538cb70f4d026aa8d08250b1040c`. Python 3.11 was found to emit a +different gzip OS header for identical canonical contents; this wrapper requires +3.14+ to reproduce the original byte pins. It does not alter the parent manifest. + +The changed bit word has 986 formal input columns, 53,712 bank assignments, +14,394 live families and 14,403 physical families. Its fresh prefix bound needs +226 bits, charged at 256; the two-level coefficient needs 488 bits, charged at +512. All 47 strict outer inequalities hold, and the next 10^-18 grid point fails. + +The result retains the inherited all-size compiler, arbitrary correlated dirty +banks, compressed windows, restored rows, fixed tape/common grid, precision and +analytic interfaces. It is not an unconditional multiplication theorem or a new +Lean proof. See `PROOF.md`, `NOTICE.md` and the preserved parent proofs/notices. + +Prepared for eumemic with substantial OpenAI Codex assistance. diff --git a/research/early-reset-source-banks/admission/LICENSE b/research/early-reset-source-banks/admission/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/early-reset-source-banks/admission/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/early-reset-source-banks/admission/UPSTREAM-NOTICE.md b/research/early-reset-source-banks/admission/UPSTREAM-NOTICE.md new file mode 100644 index 0000000000..b7daf8de49 --- /dev/null +++ b/research/early-reset-source-banks/admission/UPSTREAM-NOTICE.md @@ -0,0 +1,41 @@ +# Attribution + +Copyright 2026 icekylinx. New split-centre cancellation, reversible source-centre +composition, integration and verification changes were prepared by icekylinx +with substantial OpenAI Codex assistance. Apache-2.0 applies to these changes. +Earlier private Pro exploration used GPT-6 Astra; the new construction and +composition in this package were developed with Codex. + +## Direct sources + +- Zhihao Chen, with OpenAI Codex assistance: PR425's mutable-basis Hamming packet + producer, common-frame scalar interface, exact phase lowering and verification; + PR386's compressed nine-stage bit geometry, owner template, audit and finite + accounting. These supply the immediate complex and geometric baselines. +- ai-nanachi, with OpenAI Codex assistance: PR426's R767 bit word, including 55 + clean-reset helper reuses and 54 frame changes. The complete selected word is + imported unchanged before the nine source-centre replacements. +- Dylan Crow (utcorvusvolat-dotcom), with Anthropic Claude assistance: PR370's + Hamming E8 bit producer, root table, record exporter and local format. +- Jacob Sussman: the E8 family, complex unit and underlying interchange framework. +- applecrusher, Dugongue, eumemic, Rohan Arun, Chafik Boukhalfa, DaysSky, + DreamingOfClouds, Henry Grant, Evan McKinney, LJH-217 and other contributors: + the source, frame, compiler, rational-pricing and analytic lineage detailed + in the preserved original notices. + +The current value is computed from the two actual resulting programs. +Independently published improvements are not added numerically. `SOURCES.json` +records original commits and file hashes; `notices/` preserves source notices. +Files under `proofs/` describe their original packages and retain their original +scope and attribution; the current statement is in `PROOF.md`. + +## Earlier contributions by icekylinx + +The earlier #10, #18, #24, #32 and #36 contributions developed projector batching, +partial-swap frames, endpoint gauges and conditional analytic/tape integration. +The subsequent #104, #115, #130 and #144 contributions covered stopped-product +integration, partial gauges, three-stage covers and paired-cube/source chronology. +These provide historical context, not additional savings in this ledger. The +source-centre idea from the preceding local round is used here on PR426's bit +word. Unselected research experiments and superseded submission candidates are +not part of this package. diff --git a/research/early-reset-source-banks/admission/code/bit_audit.py b/research/early-reset-source-banks/admission/code/bit_audit.py new file mode 100644 index 0000000000..5bb13a38cb --- /dev/null +++ b/research/early-reset-source-banks/admission/code/bit_audit.py @@ -0,0 +1,127 @@ +# Variable-R adaptation by OpenAI Codex, 2026-10-11; upstream notices retained. +# Adapted with exact rational span checks by icekylinx; Codex assistance. +"""Independent audit of the emitted bit template, including mutation controls. +Prepared by Zhihao Chen with OpenAI Codex assistance; Apache-2.0. +""" +import argparse, copy, gzip, hashlib, json, struct, time +from collections import Counter, defaultdict +from pathlib import Path +from fractions import Fraction as Q + +def sha(p): return hashlib.sha256(p.read_bytes()).hexdigest() + +def main(): + ap=argparse.ArgumentParser(); ap.add_argument('--local-check',type=Path,required=True); ap.add_argument('--out',type=Path,required=True) + a=ap.parse_args(); start=time.monotonic(); out=a.out + blob=gzip.decompress((out/'GLOBAL-TEMPLATE.json.gz').read_bytes()); t=json.loads(blob) + g=json.loads((out/'GLOBAL.json').read_text()); geo=json.loads((out/'GEOMETRY.json').read_text()) + assert hashlib.sha256(blob).hexdigest()==g['template_sha256'] + assert t['geometry_sha256']==sha(out/'GEOMETRY.json') and t['source_record_sha256']==sha(a.local_check/'records/249-records.bin') + fs=json.loads((a.local_check/'records/frames.json').read_text())['frames'] + records=list(struct.iter_unpack('<6i',(a.local_check/'records/249-records.bin').read_bytes())) + word=json.loads((a.local_check/'bit-source-centres.json').read_text());R=word['R'];LOCAL=240+R;LIVE=7680+9*R;assert R>0 and g['R']==R + assert g['word_sha256']==sha(a.local_check/'bit-source-centres.json') + def rank(rows): + piv={} + for rr in rows: + row=list(map(Q,rr)) + for k,b in sorted(piv.items()): + q=row[k] + if q:row=[x-q*y for x,y in zip(row,b)] + k=next((j for j,x in enumerate(row) if x),None) + if k is not None: + q=row[k];piv[k]=[x/q for x in row] + return len(piv) + dimensions={};proj={} + for key,f in fs.items(): + k=int(key);B=f['B'];roots=[word['lines'][j] for j in word['frames'][k]] + assert rank(B)==f['dim']==rank(B+roots)==rank(roots) + dimensions[k]=f['dim'];proj[k]=B + sets=[set(f) for f in word['frames']];pairs={} + for op,x,y,c,r,z in records: + if op==0: + assert sets[y]<=sets[c] and dimensions[c]-dimensions[y]==r + pairs[y,c]=r + # Positive definite rational form: exact inclusion implies commuting + # orthogonal projectors and rank(P_V-P_U)=dim(V)-dim(U), also in reflection. + assert len(proj)==944 + expected={} + for rev in (False,True): + es=[] + for op,x,y,c,f,z in (reversed(records) if rev else records): + if op==0: es.append([0,x,c if rev else y,y if rev else c,f,int(rev)]) + elif op==1: es.append([1,x,y,-c if rev else c,f,int(rev)]) + elif op==(3 if rev else 2): es.append([2,x,y,c,f,abs(dimensions[c]-dimensions[f]),int(rev)]) + else: es.append([3,x,y,c,f,z,int(rev)]) + expected['reverse' if rev else 'forward']=es + assert t['local_programs']==expected + + def validate(q,check_profile=True): + assert (q['m'],q['live'],q['replicas'],q['stages'])==(64,LIVE,8,9) + assert q['bank_padding'] is None and q['local_programs']==expected + hist=Counter(); occupation=defaultdict(set); calls=set() + for c in q['calls']: + st,rep,p=c['stage'],c['replica'],c['pair']; rev=c['orientation']=='reverse' + assert 0<=st<9 and 0<=rep<8 and p==max(0,(st-1)//2) + assert rev==(st in (1,3,5,7)) and (st,rep) not in calls; calls.add((st,rep)) + own=c['owners']; assert len(own)==LOCAL + assert len({(f,tuple(r)) for f,r in own})==LOCAL + for i,(family,route) in enumerate(own): + assert 0<=family=0 + cur[x]=newf + if f: hist[f]+=1 + events.append([0,x,oldf,newf,f,int(reverse)]) + elif op==1: + assert cur[x]==cur[y]==f and x!=y and x0 and all(00 for r,n in localH.items()) + + events=recipe(); levels=[-1]*K; schedule=[]; bridge_controls=[] + # Full scalar replay on separate dirty helpers for all nine stages. + # Physical banking then uses the separately checked injective cover owners. + n=2*K*V+L*R; vals=[1<0 for r,n in paid.items()) + cf=checks['forward']['cancellation_free_row_l1']; cb=checks['reverse']['cancellation_free_row_l1'] + prefix=(1<0 + cutoff=max(ceil(36/gap**2),ceil(2*(4+charged_two)/gap)) + assert cutoff*gap**2>=36 and cutoff*gap>=2*(4+charged_two) + cutoffs.append(dict(gap=str(gap),cutoff_log2=str(cutoff)));chain.append(a) +q=chain[-1]*(1-2*eta);margin=(1-eta)*q/(1+q);ticks=margin/grid;k=grid*((ticks.numerator-1)//ticks.denominator) +bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1},'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} +a=Outer.assembly(chain[-1],b,bridge,k,eta=eta,beta=beta) +assert len(a['strict_constraints'])==47 and all(x>0 for x in a['strict_constraints'].values()) +controls=[] +for name,kk,ee,bb in [('next_grid',k+grid,eta,beta),('zero_eta',k,Q(0),beta),('zero_beta',k,eta,Q(0)),('unit_beta',k,eta,Q(1))]: + try:Outer.assembly(chain[-1],b,bridge,kk,eta=ee,beta=bb) + except AssertionError:controls.append(name) + else:raise AssertionError(name) +result=dict(status='PASS_CONDITIONAL_SPLIT_CENTRE_ASSEMBLY',kappa=str(k),kappa_decimal=format(float(k),'.18f'),bit_lower=str(c),complex_lower=str(b),binding_component='bit',gain_over_pr425_percent=float(100*(k/Q(1048005508028206,10**18)-1)),bit_invoice=dict(unit_additions=unit,route_items=J,selector_calls=selectors,coefficient=str(coefficient),two_level_coefficient=str(two),prefix_bits=prefix.bit_length(),charged_prefix_bits=charged_prefix,coefficient_bits=coefficient.bit_length(),two_level_coefficient_bits=two.bit_length(),charged_two_level_coefficient_bits=charged_two,row_coefficient=row,live=W,physical=physical),complex_invoice=cx['finite_invoice'],strict_outer_constraints={n:str(x) for n,x in a['strict_constraints'].items()},outer_controls=controls,bootstrap=cutoffs,bit_template_sha256=g['template_sha256'],complex_template_sha256=cx['global_template_sha256'],scope='Finite research composition with explicit changed words, exact local and global replay and incremental phase evidence. All-size correlated dirty-bank, compressed-window, compiler, restored-work, tape/common-grid, precision and analytic interfaces remain inherited assumptions. This certificate makes no unconditional integer-multiplication or Lean-kernel claim.') +(ROOT/'RESULT.json').write_text(json.dumps(result,indent=2)+'\n') +print(result['status'],result['kappa_decimal'],result['gain_over_pr425_percent'],result['bit_invoice']) diff --git a/research/early-reset-source-banks/admission/code/export_records.py b/research/early-reset-source-banks/admission/code/export_records.py new file mode 100644 index 0000000000..3632d37048 --- /dev/null +++ b/research/early-reset-source-banks/admission/code/export_records.py @@ -0,0 +1,72 @@ +"""Export a bitE8/1 word to the PR249 record format read by PR #266's official cohort checkers and PR #315's engines. +usage: python3 export_records.py word.json[.gz] OUTDIR -> OUTDIR/{249-records.bin,249-states.json,frames.json} +Records are int32 six-tuples: MOVE(0,role,old,new,rank,0), ADD(1,dst,src,1,frame,phase), COPY(2,centre,temp,frame,ZERO,rank), +ERASE(3,centre,temp,frame,ZERO,0). A multi-source gate becomes one ADD per source, preceded by the MOVEs of every +register of the gate to the gate frame. Frames: integer basis rows B (label vectors of the frame's root lines in the +word's coordinates, a rational basis) and integer annihilator rows A (standard dot product), as PR #266 expects. +Dylan Crow, with Anthropic Claude assistance; Apache-2.0.""" +import sys, json, gzip, struct, os +from fractions import Fraction as Fr +from math import gcd +def load(p): + with (gzip.open(p,'rt') if p.endswith('.gz') else open(p)) as f: return json.load(f) +c=load(sys.argv[1]); out=sys.argv[2]; os.makedirs(out,exist_ok=True) +v,R,h=c['v'],c['R'],c['h']; n=2*v+R; lines=c['lines'] +def basis(idx): + rows=[]; piv=[]; B=[] + for i in idx: + x=[Fr(a) for a in lines[i]] + for p,r in zip(piv,rows): + if x[p]: f=x[p]/r[p]; x=[a-f*b for a,b in zip(x,r)] + nz=[k for k in range(h) if x[k]] + if nz: rows.append(x); piv.append(nz[0]); B.append(list(lines[i])) + return B,rows,piv +def annihilator(rows,piv): + # rows in echelon (pivot columns piv); free columns give the null space of the row space under the dot product + # reduce to RREF + R_=[r[:] for r in rows] + for i,(p,r) in enumerate(zip(piv,R_)): + R_[i]=[a/r[p] for a in r] + for i,p in enumerate(piv): + for j in range(len(R_)): + if j!=i and R_[j][p]: f=R_[j][p]; R_[j]=[a-f*b for a,b in zip(R_[j],R_[i])] + free=[k for k in range(h) if k not in piv]; A=[] + for f in free: + a=[Fr(0)]*h; a[f]=Fr(1) + for i,p in enumerate(piv): a[p]=-R_[i][f] + L=1 + for x in a: L=L*x.denominator//gcd(L,x.denominator) + ai=[int(x*L) for x in a]; g=0 + for x in ai: g=gcd(g,abs(x)) + A.append([x//g for x in ai]) + return A +frames={} +for k,idx in enumerate(c['frames']): + B,rows,piv=basis(idx); A=annihilator(rows,piv) if B else [[int(i==j) for j in range(h)] for i in range(h)] + assert all(sum(a*b for a,b in zip(x,y))==0 for x in A for y in B) and len(A)+len(B)==h + frames[str(k)]=dict(dim=len(B),B=B,A=A) +dim=[frames[str(k)]['dim'] for k in range(len(c['frames']))] +ZERO=[k for k in range(len(dim)) if dim[k]==0]; assert len(ZERO)==1; ZERO=ZERO[0] +cur=list(c['start']); rec=[] +def move(r,f): + if cur[r]!=f: rec.append((0,r,cur[r],f,dim[f]-dim[cur[r]],0)); cur[r]=f +def run(gates,ph): + for f,d,srcs in gates: + for r in [d]+srcs: move(r,f) + for s in srcs: rec.append((1,d,s,1,f,ph)) +run(c['D'],1); run(c['A'],2) +temp=n +for k,q in enumerate(c['ret']): + fq=cur[q]; rec.append((2,q,temp,fq,ZERO,dim[fq])) + for t,row in enumerate(c['scatter']): + if k in row: rec.append((1,v+t,temp,1,ZERO,3)) + rec.append((3,q,temp,fq,ZERO,0)) +run(c['B'],4); run(c['C'],5) +for r in range(n): move(r,c['final'][r]) +with open(out+'/249-records.bin','wb') as f: + for e in rec: f.write(struct.pack('<6i',*e)) +st=dict(n=n,v=v,h=h,R=R,ZERO=ZERO,initial={str(r):c['start'][r] for r in range(n)},final={str(r):c['final'][r] for r in range(n)}, + retained_totals=c['ret'],source_owned_roles=[],regs=[]) +json.dump(st,open(out+'/249-states.json','w'),sort_keys=True,separators=(',',':')) +json.dump(dict(frames=frames),open(out+'/frames.json','w'),sort_keys=True,separators=(',',':')) +print('exported',len(rec),'records,',len(frames),'frames, n',n,'ZERO',ZERO) diff --git a/research/early-reset-source-banks/admission/verify.py b/research/early-reset-source-banks/admission/verify.py new file mode 100644 index 0000000000..a0c936bc81 --- /dev/null +++ b/research/early-reset-source-banks/admission/verify.py @@ -0,0 +1,43 @@ +"""Fresh variable-R admission on the frozen PR433 compressed geometry. +Source claims are conditional; every changed local/global stream is regenerated. +OpenAI Codex assistance, 2026-10-11; retained notices apply. +""" +from pathlib import Path +import argparse,json,gzip,hashlib,shutil,os,subprocess,sys,time +from fractions import Fraction as Q +assert __debug__ and sys.version_info>=(3,11) +sys.dont_write_bytecode=True +p=argparse.ArgumentParser();p.add_argument('--word',type=Path,required=True);p.add_argument('--expected-sha256',required=True);p.add_argument('--base-source',type=Path,required=True);p.add_argument('--complex-proof',type=Path,required=True);p.add_argument('--work',type=Path,required=True);a=p.parse_args() +HERE=Path(__file__).resolve().parent;SRC=a.base_source.resolve();PRIOR=a.complex_proof.resolve();OUT=a.work.resolve();assert not OUT.exists() +sha=lambda p:hashlib.sha256(Path(p).read_bytes()).hexdigest();read=lambda p:json.loads(Path(p).read_text());ug=lambda p:json.loads(gzip.decompress(Path(p).read_bytes())) +assert sha(a.word)==a.expected_sha256 +sm=read(SRC/'MANIFEST.json');assert {p.relative_to(SRC).as_posix():sha(p)for p in SRC.rglob('*')if p.is_file()and p.name!='MANIFEST.json'}==sm['files'] +w=read(a.word);base=read(PRIOR/'bit426-source-centres/bit-source-centres.json');assert (w['format'],w['h'],w['v'])==(base['format'],8,120) +for key in['lines','frames','form']:assert w[key]==base[key],key +assert len(w['start'])==len(w['final'])==240+w['R'] +assert w['start'][:240]==base['start'][:240]and w['final'][:240]==base['final'][:240] +full=w['final'][0];assert all(x==full for x in w['final'][240:]);assert all(not w['frames'][x] for x in w['start'][240:]) +OUT.mkdir();B=OUT/'bit426-source-centres';B.mkdir();shutil.copyfile(a.word,B/'bit-source-centres.json') +def cp(src,dst,unzip=False): + dst=OUT/dst;dst.parent.mkdir(parents=True,exist_ok=True);raw=Path(src).read_bytes();dst.write_bytes(gzip.decompress(raw)if unzip else raw) +cp(SRC/'inputs/e8-r865.json.gz','work/pr370-source/research/e8-bit/data/bit/bitE8-r865.json.gz');cp(SRC/'inputs/bit-geometry.json.gz','inherited/bit-geometry.json.gz') +for n in['moment','base_two_moment','outer']:cp(SRC/f'vendor/engines/{n}.py',f'work/pr361/code/engines/{n}.py') +cx=read(PRIOR/'split-centres/INTEGRATION.json');ca=read(PRIOR/'split-centres/INDEPENDENT-REPLAY.json');raw=gzip.decompress((PRIOR/'split-centres/GLOBAL-TEMPLATE.json.gz').read_bytes());ch=hashlib.sha256(raw).hexdigest();assert ch==cx['global_template_sha256']==ca['template_sha256']==read(SRC/'EXPECTED.json')['complex_template_sha256'];assert Q(ca['complex_b'])==Q('1183986549206329/1000000000000000000') +for f in['INTEGRATION.json','INDEPENDENT-REPLAY.json','GLOBAL-TEMPLATE.json.gz','CANONICAL-WORD.json.gz','CLIFFORD-REVIEW.json']:cp(PRIOR/'split-centres'/f,'split-centres/'+f) +assert sha(OUT/'split-centres/CANONICAL-WORD.json.gz')==cx['canonical_word_sha256'];phase=read(OUT/'split-centres/CLIFFORD-REVIEW.json');assert phase['canonical_word_sha256']==cx['canonical_word_sha256'] and phase['all_child_equalities_include_global_phase'] +checks=[];env=dict(os.environ,E8_OUTPUT=str(OUT),PYTHONDONTWRITEBYTECODE='1');env.pop('PYTHONOPTIMIZE',None) +def run(name,script,*args): + print('RUN',name,flush=True);t=time.monotonic();log=OUT/(name+'.log') + with log.open('w')as f:r=subprocess.run([sys.executable,'-B',str(HERE/'code'/script),*map(str,args)],cwd=OUT,env=env,stdout=f,stderr=subprocess.STDOUT) + assert r.returncode==0,(name,r.returncode,str(log));checks.append(dict(name=name,exit_code=0,seconds=time.monotonic()-t,log_sha256=sha(log)));print('PASS',name,flush=True) +try: + run('export','export_records.py',B/'bit-source-centres.json',B/'records') + run('emitted-global','bit_global.py','--source',B,'--local-check',B,'--out',B/'global') + run('independent-global','bit_audit.py','--local-check',B,'--out',B/'global') + run('two-exact-moments','bit_price.py') + run('both-invoices-outer','combined.py') + result=read(OUT/'RESULT.json');assert len(result['strict_outer_constraints'])==47 and all(Q(z)>0 for z in result['strict_outer_constraints'].values());assert sha(a.word)==a.expected_sha256 + result.update(status='PASS_CHANGED_VARIABLE_R_BIT_FULL_FINITE_ADMISSION',candidate_sha256=a.expected_sha256,R=w['R'],base_source_manifest_sha256=sha(SRC/'MANIFEST.json'),complex_source_template_sha256=ch,fresh_checks=checks,script_hashes={p.name:sha(p)for p in sorted((HERE/'code').glob('*.py'))},all_size_claim=False) + (OUT/'RESULT.json').write_text(json.dumps(result,indent=2)+'\n');print(result['status'],result['kappa_decimal'],result['bit_invoice'],flush=True) +except BaseException as e: + (OUT/'FAILURE.json').write_text(json.dumps(dict(error=str(e),checks=checks),indent=2)+'\n');raise diff --git a/research/early-reset-source-banks/code/independent_audit.py b/research/early-reset-source-banks/code/independent_audit.py new file mode 100644 index 0000000000..f3ef29b8a0 --- /dev/null +++ b/research/early-reset-source-banks/code/independent_audit.py @@ -0,0 +1,159 @@ +"""Independent source/template/invoice arithmetic readback of frozen PR433. +Prepared with OpenAI Codex assistance, 2026-10-11. Does not import producers. +""" +import gzip, hashlib, json, math, struct, sys +from pathlib import Path +from collections import Counter +from fractions import Fraction as Q + +D=Path(sys.argv[1]); OUT=Path(sys.argv[2]); OUT.mkdir(parents=True,exist_ok=True) +read=lambda p:json.loads(p.read_text()) +unzip=lambda p:json.loads(gzip.decompress(p.read_bytes())) +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +B=D/'bit426-source-centres'; C=D/'split-centres' +bt=unzip(B/'global/GLOBAL-TEMPLATE.json.gz'); bg=read(B/'global/GLOBAL.json'); geo=read(B/'global/GEOMETRY.json') +ct=unzip(C/'GLOBAL-TEMPLATE.json.gz'); cg=read(C/'INTEGRATION.json'); cw=unzip(C/'CANONICAL-WORD.json.gz') +result=read(D/'RESULT.json') + +# Reconstruct both local bit scalar programs from actual binary records, with +# original dirty columns represented individually. Track every copy's lifetime. +records=list(struct.iter_unpack('<6i',(B/'records/249-records.bin').read_bytes())) +frame=read(B/'records/frames.json')['frames']; dim={int(k):v['dim'] for k,v in frame.items()} +state=read(B/'records/249-states.json'); n=state['n']; R=n-240; WBIT=7680+9*R; assert 0=0 + cur[x]=y if rev else c + if f:hist[f]+=1 + elif op==1: + assert cur[x]==cur[y]==f and x!=y and x!=parent + if c%2:values[x]^=values[y] + norms[x]+=abs(c)*norms[y];maximum=max(maximum,norms[x]);adds+=1 + elif op==(3 if rev else 2): + assert parent is None and y==n and values[n]==0 and cur[x]==c + parent=x;values[n]=values[x];norms[n]=norms[x];cur[n]=f + hist[abs(dim[c]-dim[f])]+=1;copies+=1 + else: + assert op==(2 if rev else 3) and parent==x and values[n]==values[x] and cur[x]==c and cur[n]==f + values[n]=norms[n]=0;cur[n]=-1;parent=None + assert parent is None and values[n]==0 and copies==9 + assert cur[:n]==[state['initial' if rev else 'final'][str(i)] for i in range(n)] + assert values[:n]==[(1<0 and not b&(b-1) + if e[0]=='scale': + assert a>0 and not a&(a-1);prims+=2*(abs(a.bit_length()-b.bit_length())+(q<0)) + else: + # clear, Horner additions/doubles, halvings, accumulation, clear. + prims+=2*(3+a.bit_length()-1+sum(map(int,bin(a)[2:]))+b.bit_length()-1) + cp[name]=hist;cc[name]=prims;cm[name]=macros + assert prims==cg['local_program_checks'][name]['real_component_primitive_bound'] +assert cp['forward']==cp['backward'] +CH=Counter({r:72*z for r,z in cp['forward'].items()});CH.update({1:5040,8:3*1920,16:2*1920,32:2*1920,48:2*1920}) +assert CH==Counter({int(k):v for k,v in cg['global_profile'].items()}) +assert sum(r*z for r,z in CH.items())==73*12720-2496 +assert ct['live']==12720 and ct['physical']==13298 +assigned=set();calls=set() +for call in ct['calls']: + st,rep=call['stage'],call['replica'];pair=max(0,(st-1)//2) + assert call['pair']==pair and call['orientation']==('backward' if st in (1,3,5,7) else 'forward') + assert (st,rep) not in calls;calls.add((st,rep));assert len(call['owners'])==800 + for reg,(family,route) in enumerate(call['owners']): + if reg<240:assert family==rep*960+(2*pair+reg//120)*120+reg%120 and route==[1,st,reg%120] + else: + bank,slot=divmod(rep*560+reg-240,8) + assert family==7680+st*560+bank and route==[2,slot] + assert (family,slot) not in assigned;assigned.add((family,slot)) +assert calls=={(s,r) for s in range(9) for r in range(8)} +assert assigned=={(f,s) for f in range(7680,12720) for s in range(8)} +assert ct['bank_padding']==dict(families=list(range(7680,12720)),axis=72,child_rank=1) +assert ct['private_namespace']==dict(centers=[12720,12736],reserved_tableau=[12736,13296],coefficient=[13296,13298]) + +# Both finite invoices are reconstructed from the emitted counts. +m=64;E=sum(BH.values());W=WBIT;physical=W+9 +units=72*bit_adds[0]+18*120*8 +J=8*72*n+8*7680+2*(72*R)+2*648 +selectors=2*72*((W-1)+R*64*(geo['max_route_factors']+63+64)) +prefix=(1<<18)*bit_prefix[0]**5*bit_prefix[1]**4 +assert prefix==int(bg['global_prefix_bound']) +coefficient=units+J*16*(4096+1)**2+J*physical+E*(8*4096+8+128*128**3)+16*64**3+648+selectors+prefix+1 +two=(coefficient+1)**2*(E+1)**2 +charged_prefix=max(256,64*((prefix.bit_length()+63)//64)); charged_two=max(512,64*((two.bit_length()+63)//64)) +assert prefix<1<=36 and cutoff*gap>=2*(4+charged_two) +q=a*(1-2*eta);eps=(1-eta)/(1+q);minimum=eps*q;k=Q(result['kappa']) +assert k0 +assert {n:str(z) for n,z in slacks.items()}==result['strict_outer_constraints'] +report=dict(status='PASS_EARLY_RESET_INDEPENDENT_RECORD_BANK_INVOICE_OUTER_AUDIT',bit_columns_both_orientations=n,bit_assignments=len(occupied),complex_assignments=len(assigned),bit_profile=dict(sorted(BH.items())),complex_profile=dict(sorted(CH.items())),bit_invoice=bi,complex_invoice=ci,kappa=str(k),strict_constraints=47,adjacent_grid_rejected=True,source_sha256=sha(Path(__file__)),input_hashes={str(p):sha(p) for p in [B/'records/249-records.bin',B/'global/GLOBAL-TEMPLATE.json.gz',C/'GLOBAL-TEMPLATE.json.gz',D/'RESULT.json']},scope='Independent finite source/program accounting and exact arithmetic. Scalar primitive and phase audits separate; inherited all-size interfaces remain conditional.') +(OUT/'RESULT.json').write_text(json.dumps(report,indent=2)+'\n');print(report['status'],str(k)) diff --git a/research/early-reset-source-banks/constructor/LOCAL-AUDIT.json b/research/early-reset-source-banks/constructor/LOCAL-AUDIT.json new file mode 100644 index 0000000000..05553d61df --- /dev/null +++ b/research/early-reset-source-banks/constructor/LOCAL-AUDIT.json @@ -0,0 +1,157 @@ +{ + "status": "PASS_ALL_COLUMNS_AND_BOTH_FRAME_LEDGERS", + "R": 746, + "columns": 986, + "operations": 18825, + "forward_profile": { + "1": 2401, + "2": 864, + "3": 475, + "4": 309, + "5": 152, + "7": 14, + "8": 9 + }, + "reverse_profile": { + "1": 2401, + "2": 864, + "3": 475, + "4": 309, + "5": 152, + "7": 14, + "8": 9 + }, + "exact_rational_frame_ranks": 944, + "source_sha256": "015811014644ed62acba1da590d9cf6ebdfe834d89867f8ce2b68722609072ea", + "output_sha256": "fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48", + "mutation_controls": [ + { + "round": 0, + "mutation": "omit", + "rejected": "('scalar', 178)" + }, + { + "round": 0, + "mutation": "late", + "rejected": "('scalar', 178)" + }, + { + "round": 1, + "mutation": "omit", + "rejected": "('scalar', 153)" + }, + { + "round": 1, + "mutation": "late", + "accepted": true + }, + { + "round": 2, + "mutation": "omit", + "rejected": "('scalar', 177)" + }, + { + "round": 2, + "mutation": "late", + "rejected": "('frame', 411, 515, 458)" + }, + { + "round": 3, + "mutation": "omit", + "rejected": "('scalar', 226)" + }, + { + "round": 3, + "mutation": "late", + "rejected": "('frame', 315, 489, 461)" + }, + { + "round": 4, + "mutation": "omit", + "rejected": "('scalar', 170)" + }, + { + "round": 4, + "mutation": "late", + "rejected": "('frame', 427, 485, 463)" + }, + { + "round": 5, + "mutation": "omit", + "rejected": "('scalar', 234)" + }, + { + "round": 5, + "mutation": "late", + "rejected": "('frame', 299, 481, 465)" + }, + { + "round": 6, + "mutation": "omit", + "rejected": "('scalar', 194)" + }, + { + "round": 6, + "mutation": "late", + "rejected": "('frame', 379, 480, 466)" + }, + { + "round": 7, + "mutation": "omit", + "rejected": "('scalar', 162)" + }, + { + "round": 7, + "mutation": "late", + "rejected": "('frame', 439, 477, 467)" + }, + { + "round": 8, + "mutation": "omit", + "rejected": "('scalar', 138)" + }, + { + "round": 8, + "mutation": "late", + "rejected": "('frame', 487, 476, 468)" + }, + { + "round": 9, + "mutation": "omit", + "rejected": "('scalar', 146)" + }, + { + "round": 9, + "mutation": "late", + "rejected": "('frame', 471, 473, 469)" + }, + { + "round": 10, + "mutation": "omit", + "rejected": "('scalar', 154)" + }, + { + "round": 10, + "mutation": "late", + "rejected": "('frame', 455, 472, 470)" + }, + { + "round": 11, + "mutation": "omit", + "rejected": "('scalar', 209)" + }, + { + "round": 11, + "mutation": "late", + "rejected": "('frame', 343, 549, 459)" + }, + { + "mutation": "omit dirty compensation", + "rejected": "('scalar', 120)" + }, + { + "mutation": "omit helper cleanup", + "rejected": "('scalar', 240)" + } + ] +} diff --git a/research/early-reset-source-banks/constructor/SOURCE-PINS.json b/research/early-reset-source-banks/constructor/SOURCE-PINS.json new file mode 100644 index 0000000000..54a881b75a --- /dev/null +++ b/research/early-reset-source-banks/constructor/SOURCE-PINS.json @@ -0,0 +1,13 @@ +{ + "upstream_pull_request": "https://github.com/CrocSwap/integer-mult-bounds/pull/433", + "upstream_commit": "2992f234bcb2538cb70f4d026aa8d08250b1040c", + "source_word_sha256": "015811014644ed62acba1da590d9cf6ebdfe834d89867f8ce2b68722609072ea", + "output_word_sha256": "fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48", + "upstream_files": { + "code/bit_construct.py": "a461e6c983531beb5c8ac82ff593f39ce4e056387d1d6061f6e6b294dde4395f", + "inputs/bit-r767.json.gz": "bd3b84244528767b85d8d7fe423b155630b5c659e21e51563674b1dcb6305ad7", + "NOTICE.md": "66101a9e74d0ba9c2da4c8802bcb1968534adfa7130b954628eb8bf515fc0389", + "SOURCES.json": "11aa666d678fed084b01d1e8e47239e1674eaedbc6fe0cee7edb2753477af9be", + "vendor/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3" + } +} diff --git a/research/early-reset-source-banks/constructor/construct.py b/research/early-reset-source-banks/constructor/construct.py new file mode 100644 index 0000000000..a1cb385e61 --- /dev/null +++ b/research/early-reset-source-banks/constructor/construct.py @@ -0,0 +1,123 @@ +"""Replay twelve exact early-reset helper reuses of the PR433 bit word. + +Prepared with OpenAI Codex assistance; Apache-2.0. Inherited source notices +apply. PR433 is due to icekylinx with Codex assistance, building on ai-nanachi's +PR426 word, Dylan Crow's PR370 format and Jacob Sussman's E8 framework. +This file certifies a local scalar word; global pricing is a separate check. +""" +import argparse +import copy +import hashlib +import json +from pathlib import Path + +assert __debug__, 'Assertions must remain enabled' +BASE_SHA = '015811014644ed62acba1da590d9cf6ebdfe834d89867f8ce2b68722609072ea' +OUTPUT_SHA = 'fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48' + + +def encode(c): + return json.dumps(c, sort_keys=True, separators=(',', ':')).encode() + + +def transform(old, z, mutation=None): + c = copy.deepcopy(old) + v, n = c['v'], 2*c['v']+c['R'] + r, s = z['retired_helper'], z['new_helper'] + assert 2*v <= r < n and 2*v <= s < n and r != s + assert r not in c['ret'] and s not in c['ret'] + gates = c['A']+c['B'] + uses = lambda q: [i for i, (_, d, ss) in enumerate(gates) if q == d or q in ss] + assert max(uses(r)) == z['reset_after_step'] < min(uses(s)) == z['new_step'] + assert z['reset_after_step'] == z['reset_after_gate'] + (len(c['A']) if z['reset_part'] == 'B' else 0) + assert z['reset_size'] == len(z['reset_donors']) + assert r not in z['reset_donors'] and s not in z['reset_donors'] + # Check the reset identity in the actual current clean-source basis. + rows = [(1 << i) if i < v else 0 for i in range(n)] + for _, d, ss in gates[:z['reset_after_step']+1]: + for q in ss: + rows[d] ^= rows[q] + residual = rows[r] + for q in z['reset_donors']: + residual ^= rows[q] + assert residual == 0 + reset = [z['frame'], r, z['reset_donors']] + if mutation == 'late': + offset = z['new_step'] + part = 'A' if offset < len(c['A']) else 'B' + if part == 'B': + offset -= len(c['A']) + c[part].insert(offset, reset) + elif mutation != 'omit': + c[z['reset_part']].insert(z['reset_after_gate']+1, reset) + physical = [q for q in range(n) if q != s] + index = {q: j for j, q in enumerate(physical)} + alias = lambda q: index[r if q == s else q] + for part in ('A', 'B'): + c[part] = [[f, alias(d), [alias(q) for q in ss]] for f, d, ss in c[part]] + c['R'] -= 1 + c['start'] = [c['start'][q] for q in physical] + c['final'] = [c['final'][q] for q in physical] + c['ret'] = [index[q] for q in c['ret']] + full = c['final'][0] + c['C'] = [[full, d, ss] for _, d, ss in reversed(c['A']+c['B']) if d >= 2*v] + # Recompute, rather than inherit, the entire helper-dirty compensation. + dirty = [(1 << q) if q >= 2*v else 0 for q in range(n-1)] + def run(gs): + for _, d, ss in gs: + assert d not in ss and len(ss) == len(set(ss)) + for q in ss: + dirty[d] ^= dirty[q] + run(c['A']) + retained = [dirty[q] for q in c['ret']] + for t, ss in enumerate(c['scatter']): + for j in ss: + dirty[v+t] ^= retained[j] + run(c['B']) + zero = c['start'][v] + c['D'] = [] + for t in range(v): + bits = dirty[v+t] + ss = [q for q in range(2*v, n-1) if bits >> q & 1] + assert bits == sum(1 << q for q in ss) + if ss: + c['D'].append([zero, v+t, ss]) + return c + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--source', type=Path, required=True) + ap.add_argument('--selections', type=Path, default=Path(__file__).with_name('selections.json')) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + raw = a.source.read_bytes() + assert hashlib.sha256(raw).hexdigest() == BASE_SHA + old = json.loads(raw) + selections = json.loads(a.selections.read_bytes()) + assert len(selections) == 12 + from local_audit import audit + receipts = [] + c = old + for i, z in enumerate(selections): + c = transform(c, z) + result = audit(c) + result['round'] = i + receipts.append(result) + for field in ('lines', 'frames', 'form', 'coords', 'h', 'v'): + assert c[field] == old[field] + blob = encode(c) + assert hashlib.sha256(blob).hexdigest() == OUTPUT_SHA + a.out.mkdir(parents=True, exist_ok=True) + (a.out/'bit-source-centres.json').write_bytes(blob) + (a.out/'CONSTRUCTION.json').write_text(json.dumps(dict( + status='PASS_TWELVE_EARLY_RESETS_LOCAL_WORD', + source_sha256=BASE_SHA, output_sha256=OUTPUT_SHA, + selections_sha256=hashlib.sha256(a.selections.read_bytes()).hexdigest(), + unchanged_geometry_fields=['lines', 'frames', 'form', 'coords', 'h', 'v'], + old_R=old['R'], new_R=c['R'], rounds=receipts), indent=2)+'\n') + print('PASS', c['R'], OUTPUT_SHA) + + +if __name__ == '__main__': + main() diff --git a/research/early-reset-source-banks/constructor/local_audit.py b/research/early-reset-source-banks/constructor/local_audit.py new file mode 100644 index 0000000000..918601e0b7 --- /dev/null +++ b/research/early-reset-source-banks/constructor/local_audit.py @@ -0,0 +1,158 @@ +"""Independent all-column scalar and two-orientation frame audit. + +Prepared with OpenAI Codex assistance; Apache-2.0. +""" +import argparse +import copy +import hashlib +import json +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + +assert __debug__, 'Assertions must remain enabled' + + +def rank(rows): + pivots = {} + for row in rows: + row = list(map(Q, row)) + for j, b in sorted(pivots.items()): + x = row[j] + if x: + row = [p-x*q for p, q in zip(row, b)] + j = next((j for j, x in enumerate(row) if x), None) + if j is not None: + x = row[j] + pivots[j] = [q/x for q in row] + return len(pivots) + + +def audit(c): + v, n = c['v'], 2*c['v']+c['R'] + frames = [set(f) for f in c['frames']] + dim = [rank([c['lines'][j] for j in f]) for f in frames] + assert len(frames) == 944 and c['h'] == 8 + assert len(c['start']) == len(c['final']) == n + state = [1 << i for i in range(n)] + cur = c['start'][:] + hist = Counter() + trace = [] + def move(q, f): + old = cur[q] + assert frames[old] <= frames[f], ('frame', q, old, f) + if f != old: + trace.append(('move', q, old, f)) + if dim[f] > dim[old]: + hist[dim[f]-dim[old]] += 1 + cur[q] = f + def run(gs): + for f, d, ss in gs: + assert 0 <= d < n and all(0 <= q < n for q in ss) + assert d not in ss and len(ss) == len(set(ss)) + for q in [d]+ss: + move(q, f) + for q in ss: + state[d] ^= state[q] + trace.append(('add', d, q, f)) + run(c['D']) + run(c['A']) + assert all(dim[cur[q]] == 8 for q in c['ret']) + assert all(dim[cur[q]] == 0 for q in range(v, 2*v)) + totals = [state[q] for q in c['ret']] + assert len(totals) == 9 + for j, q in enumerate(c['ret']): + trace.append(('copy', q, cur[q])) + hist[dim[cur[q]]] += 1 + for t, ss in enumerate(c['scatter']): + assert len(ss) == len(set(ss)) + if j in ss: + state[v+t] ^= totals[j] + trace.append(('scatter', v+t, q)) + trace.append(('erase', q, cur[q])) + run(c['B']) + run(c['C']) + for q, f in enumerate(c['final']): + move(q, f) + expected = [1 << i for i in range(n)] + for t in range(v): + expected[v+t] ^= 1 << t + assert state == expected, ('scalar', next((i for i in range(n) if state[i] != expected[i]), None)) + # Reverse every emitted operation; charge each former erase as the copy. + # The scalar endpoint shear is self-inverse in F2, including all dirt. + reverse = [1 << i for i in range(n)] + rhist = Counter() + labels = c['final'][:] + for e in reversed(trace): + if e[0] == 'move': + _, q, old, new = e + assert labels[q] == new and frames[old] <= frames[new] + labels[q] = old + if dim[new] > dim[old]: + rhist[dim[new]-dim[old]] += 1 + elif e[0] == 'add': + _, d, q, f = e + assert labels[d] == labels[q] == f + reverse[d] ^= reverse[q] + elif e[0] == 'scatter': + _, d, q = e + reverse[d] ^= reverse[q] + elif e[0] == 'erase': + _, q, f = e + assert labels[q] == f + rhist[dim[f]] += 1 + else: + assert e[0] == 'copy' + assert labels == c['start'] and reverse == expected + assert rhist == hist + assert sum(r*k for r, k in hist.items()) == 8*n-168 + return dict(status='PASS_ALL_COLUMNS_AND_BOTH_FRAME_LEDGERS', + R=c['R'], columns=n, operations=len(trace), + forward_profile=dict(sorted(hist.items())), + reverse_profile=dict(sorted(rhist.items())), + exact_rational_frame_ranks=len(dim)) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--source', type=Path, required=True) + ap.add_argument('--selections', type=Path, default=Path(__file__).with_name('selections.json')) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + from construct import BASE_SHA, OUTPUT_SHA, encode, transform + raw = a.source.read_bytes() + assert hashlib.sha256(raw).hexdigest() == BASE_SHA + c = json.loads(raw) + controls = [] + for i, z in enumerate(json.loads(a.selections.read_bytes())): + for mode in ('omit', 'late'): + altered = transform(c, z, mutation=mode) + try: + audit(altered) + except AssertionError as exc: + assert not (mode == 'late' and i == 1), 'This delay is a valid positive control' + controls.append(dict(round=i, mutation=mode, rejected=str(exc))) + else: + controls.append(dict(round=i, mutation=mode, accepted=True)) + assert mode == 'late' and i == 1, 'Unexpectedly accepted mutation' + c = transform(c, z) + result = audit(c) + assert hashlib.sha256(encode(c)).hexdigest() == OUTPUT_SHA + for name, phase in [('omit dirty compensation', 'D'), ('omit helper cleanup', 'C')]: + altered = copy.deepcopy(c) + altered[phase] = [] + try: + audit(altered) + except AssertionError as exc: + controls.append(dict(mutation=name, rejected=str(exc))) + else: + raise AssertionError('Accepted mutation: '+name) + result['source_sha256'] = BASE_SHA + result['output_sha256'] = OUTPUT_SHA + result['mutation_controls'] = controls + a.out.write_text(json.dumps(result, indent=2)+'\n') + print(json.dumps(result)) + + +if __name__ == '__main__': + main() diff --git a/research/early-reset-source-banks/constructor/selections.json b/research/early-reset-source-banks/constructor/selections.json new file mode 100644 index 0000000000..91bf3f782d --- /dev/null +++ b/research/early-reset-source-banks/constructor/selections.json @@ -0,0 +1,183 @@ +[ + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1330, + "reset_part": "A", + "reset_after_gate": 1330, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1370 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 948, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1414 + }, + { + "reset_after_step": 1054, + "reset_part": "A", + "reset_after_gate": 1054, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1308 + }, + { + "reset_after_step": 1071, + "reset_part": "A", + "reset_after_gate": 1071, + "new_helper": 936, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1317 + }, + { + "reset_after_step": 1088, + "reset_part": "A", + "reset_after_gate": 1088, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1289 + }, + { + "reset_after_step": 1098, + "reset_part": "A", + "reset_after_gate": 1098, + "new_helper": 934, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1300 + }, + { + "reset_after_step": 1108, + "reset_part": "A", + "reset_after_gate": 1108, + "new_helper": 933, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1299 + }, + { + "reset_after_step": 1118, + "reset_part": "A", + "reset_after_gate": 1118, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1290 + }, + { + "reset_after_step": 1128, + "reset_part": "A", + "reset_after_gate": 1128, + "new_helper": 937, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1385 + }, + { + "reset_after_step": 1138, + "reset_part": "A", + "reset_after_gate": 1138, + "new_helper": 936, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1381 + }, + { + "reset_after_step": 1039, + "reset_part": "A", + "reset_after_gate": 1039, + "new_helper": 946, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1438 + } +] diff --git a/research/early-reset-source-banks/evidence/EARLY-RESET-CANDIDATES.json b/research/early-reset-source-banks/evidence/EARLY-RESET-CANDIDATES.json new file mode 100644 index 0000000000..09d84a72cd --- /dev/null +++ b/research/early-reset-source-banks/evidence/EARLY-RESET-CANDIDATES.json @@ -0,0 +1,6194 @@ +{ + "status": "EXACT_EARLY_CLEAN_RESET_SPAN_SCREEN_NOT_ADMITTED", + "candidates": [ + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 949, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1403 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 950, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1412 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 951, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1415 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 960, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1434 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 961, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1437 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 949, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1403 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 950, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1412 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 951, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1415 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 960, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1434 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 961, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1437 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 949, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1403 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 950, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1412 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 951, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1415 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 960, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1434 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 961, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1437 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 949, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1403 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 950, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1412 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 951, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1415 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 960, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1434 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 961, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1437 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 949, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1403 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 950, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1412 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 951, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1415 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 960, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1434 + }, + { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 961, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1437 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 950, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1412 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 951, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1415 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 960, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1434 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 961, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1437 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 950, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1412 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 951, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1415 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 960, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1434 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 961, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1437 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 950, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1412 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 951, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1415 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 960, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1434 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 961, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1437 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 950, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1412 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 951, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1415 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 960, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1434 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 961, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1437 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 950, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1412 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 951, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1415 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 960, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1434 + }, + { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 961, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1437 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 949, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1403 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 950, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1412 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 951, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1415 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 960, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1434 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 961, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1437 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 949, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1403 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 950, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1412 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 951, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1415 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 960, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1434 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 961, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1437 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 949, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1403 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 950, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1412 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 951, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1415 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 960, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1434 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 961, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1437 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 949, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1403 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 950, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1412 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 951, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1415 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 960, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1434 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 961, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1437 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 949, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1403 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 950, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1412 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 951, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1415 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 960, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1434 + }, + { + "reset_after_step": 1036, + "reset_part": "A", + "reset_after_gate": 1036, + "new_helper": 961, + "retired_helper": 258, + "frame": 458, + "reset_donors": [ + 0, + 1, + 252, + 512, + 523 + ], + "reset_size": 5, + "new_step": 1437 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 957, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1427 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 959, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1431 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 963, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1441 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 965, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1445 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 957, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1427 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 959, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1431 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 963, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1441 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 965, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1445 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 957, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1427 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 959, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1431 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 963, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1441 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 965, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1445 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 957, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1427 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 959, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1431 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 963, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1441 + }, + { + "reset_after_step": 1037, + "reset_part": "A", + "reset_after_gate": 1037, + "new_helper": 965, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1445 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1306 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 956, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1425 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 958, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1429 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 966, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1447 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 968, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1451 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1306 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 956, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1425 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 958, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1429 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 966, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1447 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 968, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1451 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1306 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 956, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1425 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 958, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1429 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 966, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1447 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 968, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1451 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1306 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 956, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1425 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 958, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1429 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 966, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1447 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 968, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1451 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1306 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 956, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1425 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 958, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1429 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 966, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1447 + }, + { + "reset_after_step": 1052, + "reset_part": "A", + "reset_after_gate": 1052, + "new_helper": 968, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1451 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 937, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1314 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 940, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1351 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 941, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1356 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 947, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1388 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 948, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1393 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 937, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1314 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 940, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1351 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 941, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1356 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 947, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1388 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 948, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1393 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 937, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1314 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 940, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1351 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 941, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1356 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 947, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1388 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 948, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1393 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 937, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1314 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 940, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1351 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 941, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1356 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 947, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1388 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 948, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1393 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 937, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1314 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 940, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1351 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 941, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1356 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 947, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1388 + }, + { + "reset_after_step": 1068, + "reset_part": "A", + "reset_after_gate": 1068, + "new_helper": 948, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1393 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1285 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 992, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1505 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 993, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1507 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 996, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1515 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 997, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1517 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1285 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 992, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1505 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 993, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1507 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 996, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1515 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 997, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1517 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1285 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 992, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1505 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 993, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1507 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 996, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1515 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 997, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1517 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1285 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 992, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1505 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 993, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1507 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 996, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1515 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 997, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1517 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1285 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 992, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1505 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 993, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1507 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 996, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1515 + }, + { + "reset_after_step": 1084, + "reset_part": "A", + "reset_after_gate": 1084, + "new_helper": 997, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1517 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 935, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1295 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 990, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1501 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 991, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1503 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 994, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1511 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 995, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1513 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 935, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1295 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 990, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1501 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 991, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1503 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 994, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1511 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 995, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1513 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 935, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1295 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 990, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1501 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 991, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1503 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 994, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1511 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 995, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1513 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 935, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1295 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 990, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1501 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 991, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1503 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 994, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1511 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 995, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1513 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 935, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1295 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 990, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1501 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 991, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1503 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 994, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1511 + }, + { + "reset_after_step": 1093, + "reset_part": "A", + "reset_after_gate": 1093, + "new_helper": 995, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1513 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 934, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1293 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 978, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1471 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 979, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1473 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 986, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1489 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 987, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1491 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 934, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1293 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 978, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1471 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 979, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1473 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 986, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1489 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 987, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1491 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 934, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1293 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 978, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1471 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 979, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1473 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 986, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1489 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 987, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1491 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 934, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1293 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 978, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1471 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 979, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1473 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 986, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1489 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 987, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1491 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 934, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1293 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 978, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1471 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 979, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1473 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 986, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1489 + }, + { + "reset_after_step": 1102, + "reset_part": "A", + "reset_after_gate": 1102, + "new_helper": 987, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1491 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1283 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 976, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1467 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 977, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1469 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 984, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1485 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 985, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1487 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1283 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 976, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1467 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 977, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1469 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 984, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1485 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 985, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1487 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1283 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 976, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1467 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 977, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1469 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 984, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1485 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 985, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1487 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1283 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 976, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1467 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 977, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1469 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 984, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1485 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 985, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1487 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1283 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 976, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1467 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 977, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1469 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 984, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1485 + }, + { + "reset_after_step": 1111, + "reset_part": "A", + "reset_after_gate": 1111, + "new_helper": 985, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1487 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 944, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1376 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 974, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1463 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 975, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1465 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 982, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1481 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 983, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1483 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 944, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1376 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 974, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1463 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 975, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1465 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 982, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1481 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 983, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1483 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 944, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1376 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 974, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1463 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 975, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1465 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 982, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1481 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 983, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1483 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 944, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1376 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 974, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1463 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 975, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1465 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 982, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1481 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 983, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1483 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 944, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1376 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 974, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1463 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 975, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1465 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 982, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1481 + }, + { + "reset_after_step": 1120, + "reset_part": "A", + "reset_after_gate": 1120, + "new_helper": 983, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1483 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 942, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1369 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 943, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1371 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 972, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1459 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 973, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1461 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 980, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1477 + }, + { + "reset_after_step": 1127, + "reset_part": "A", + "reset_after_gate": 1127, + "new_helper": 981, + "retired_helper": 710, + "frame": 470, + "reset_donors": [ + 455, + 460 + ], + "reset_size": 2, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 942, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 943, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 972, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 973, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 980, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1129, + "reset_part": "A", + "reset_after_gate": 1129, + "new_helper": 981, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 943, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 972, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 973, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 980, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1329, + "reset_part": "A", + "reset_after_gate": 1329, + "new_helper": 981, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 942, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1369 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 943, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1371 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 972, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1459 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 973, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1461 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 980, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1477 + }, + { + "reset_after_step": 1332, + "reset_part": "A", + "reset_after_gate": 1332, + "new_helper": 981, + "retired_helper": 714, + "frame": 470, + "reset_donors": [ + 457, + 708, + 710 + ], + "reset_size": 3, + "new_step": 1479 + } + ] +} diff --git a/research/early-reset-source-banks/evidence/GREEDY-CHECKPOINT.json b/research/early-reset-source-banks/evidence/GREEDY-CHECKPOINT.json new file mode 100644 index 0000000000..cbc6a460d8 --- /dev/null +++ b/research/early-reset-source-banks/evidence/GREEDY-CHECKPOINT.json @@ -0,0 +1,380 @@ +{ + "steps": [ + { + "round": 0, + "R": 757, + "selection": { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + "candidate_index": 25, + "searched": 410, + "score": 0.9999982836732146, + "local_profile": { + "1": 2368, + "2": 875, + "3": 475, + "4": 320, + "5": 163, + "7": 14, + "8": 9 + } + }, + { + "round": 1, + "R": 756, + "selection": { + "reset_after_step": 1330, + "reset_part": "A", + "reset_after_gate": 1330, + "new_helper": 942, + "retired_helper": 457, + "frame": 470, + "reset_donors": [ + 708, + 710, + 714 + ], + "reset_size": 3, + "new_step": 1370 + }, + "candidate_index": 279, + "searched": 351, + "score": 0.9999965652134633, + "local_profile": { + "1": 2369, + "2": 875, + "3": 475, + "4": 319, + "5": 162, + "7": 14, + "8": 9 + } + }, + { + "round": 2, + "R": 755, + "selection": { + "reset_after_step": 1031, + "reset_part": "A", + "reset_after_gate": 1031, + "new_helper": 948, + "retired_helper": 406, + "frame": 458, + "reset_donors": [ + 411, + 516, + 517 + ], + "reset_size": 3, + "new_step": 1414 + }, + "candidate_index": 0, + "searched": 232, + "score": 0.99999496603604, + "local_profile": { + "1": 2372, + "2": 874, + "3": 475, + "4": 318, + "5": 161, + "7": 14, + "8": 9 + } + }, + { + "round": 3, + "R": 754, + "selection": { + "reset_after_step": 1054, + "reset_part": "A", + "reset_after_gate": 1054, + "new_helper": 936, + "retired_helper": 310, + "frame": 461, + "reset_donors": [ + 315, + 564, + 565 + ], + "reset_size": 3, + "new_step": 1308 + }, + "candidate_index": 16, + "searched": 216, + "score": 0.9999933648687653, + "local_profile": { + "1": 2375, + "2": 873, + "3": 475, + "4": 317, + "5": 160, + "7": 14, + "8": 9 + } + }, + { + "round": 4, + "R": 753, + "selection": { + "reset_after_step": 1071, + "reset_part": "A", + "reset_after_gate": 1071, + "new_helper": 936, + "retired_helper": 422, + "frame": 463, + "reset_donors": [ + 427, + 596, + 597 + ], + "reset_size": 3, + "new_step": 1317 + }, + "candidate_index": 16, + "searched": 191, + "score": 0.9999917617079226, + "local_profile": { + "1": 2378, + "2": 872, + "3": 475, + "4": 316, + "5": 159, + "7": 14, + "8": 9 + } + }, + { + "round": 5, + "R": 752, + "selection": { + "reset_after_step": 1088, + "reset_part": "A", + "reset_after_gate": 1088, + "new_helper": 933, + "retired_helper": 294, + "frame": 465, + "reset_donors": [ + 299, + 628, + 629 + ], + "reset_size": 3, + "new_step": 1289 + }, + "candidate_index": 16, + "searched": 166, + "score": 0.9999901565497865, + "local_profile": { + "1": 2381, + "2": 871, + "3": 475, + "4": 315, + "5": 158, + "7": 14, + "8": 9 + } + }, + { + "round": 6, + "R": 751, + "selection": { + "reset_after_step": 1098, + "reset_part": "A", + "reset_after_gate": 1098, + "new_helper": 934, + "retired_helper": 374, + "frame": 466, + "reset_donors": [ + 379, + 644, + 645 + ], + "reset_size": 3, + "new_step": 1300 + }, + "candidate_index": 16, + "searched": 141, + "score": 0.9999885493906223, + "local_profile": { + "1": 2384, + "2": 870, + "3": 475, + "4": 314, + "5": 157, + "7": 14, + "8": 9 + } + }, + { + "round": 7, + "R": 750, + "selection": { + "reset_after_step": 1108, + "reset_part": "A", + "reset_after_gate": 1108, + "new_helper": 933, + "retired_helper": 444, + "frame": 467, + "reset_donors": [ + 439, + 660, + 661 + ], + "reset_size": 3, + "new_step": 1299 + }, + "candidate_index": 16, + "searched": 116, + "score": 0.9999869402266857, + "local_profile": { + "1": 2387, + "2": 869, + "3": 475, + "4": 313, + "5": 156, + "7": 14, + "8": 9 + } + }, + { + "round": 8, + "R": 749, + "selection": { + "reset_after_step": 1118, + "reset_part": "A", + "reset_after_gate": 1118, + "new_helper": 932, + "retired_helper": 492, + "frame": 468, + "reset_donors": [ + 487, + 676, + 677 + ], + "reset_size": 3, + "new_step": 1290 + }, + "candidate_index": 16, + "searched": 91, + "score": 0.9999853290542232, + "local_profile": { + "1": 2390, + "2": 868, + "3": 475, + "4": 312, + "5": 155, + "7": 14, + "8": 9 + } + }, + { + "round": 9, + "R": 748, + "selection": { + "reset_after_step": 1128, + "reset_part": "A", + "reset_after_gate": 1128, + "new_helper": 937, + "retired_helper": 476, + "frame": 469, + "reset_donors": [ + 471, + 692, + 693 + ], + "reset_size": 3, + "new_step": 1385 + }, + "candidate_index": 16, + "searched": 66, + "score": 0.9999837158694721, + "local_profile": { + "1": 2393, + "2": 867, + "3": 475, + "4": 311, + "5": 154, + "7": 14, + "8": 9 + } + }, + { + "round": 10, + "R": 747, + "selection": { + "reset_after_step": 1138, + "reset_part": "A", + "reset_after_gate": 1138, + "new_helper": 936, + "retired_helper": 460, + "frame": 470, + "reset_donors": [ + 455, + 708, + 709 + ], + "reset_size": 3, + "new_step": 1381 + }, + "candidate_index": 16, + "searched": 41, + "score": 0.9999821006686602, + "local_profile": { + "1": 2396, + "2": 866, + "3": 475, + "4": 310, + "5": 153, + "7": 14, + "8": 9 + } + }, + { + "round": 11, + "R": 746, + "selection": { + "reset_after_step": 1039, + "reset_part": "A", + "reset_after_gate": 1039, + "new_helper": 946, + "retired_helper": 532, + "frame": 459, + "reset_donors": [ + 343, + 348, + 533 + ], + "reset_size": 3, + "new_step": 1438 + }, + "candidate_index": 0, + "searched": 16, + "score": 0.9999806055505467, + "local_profile": { + "1": 2401, + "2": 864, + "3": 475, + "4": 309, + "5": 152, + "7": 14, + "8": 9 + } + } + ], + "candidate": "/private/tmp/pr433-bit-retiming/greedy/r746.json", + "sha256": "fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48", + "status": "GREEDY_LOCAL_ADMITTED_GLOBAL_PENDING" +} diff --git a/research/early-reset-source-banks/evidence/REUSE-BEST.json b/research/early-reset-source-banks/evidence/REUSE-BEST.json new file mode 100644 index 0000000000..d3653a7d48 --- /dev/null +++ b/research/early-reset-source-banks/evidence/REUSE-BEST.json @@ -0,0 +1,32 @@ +{ + "status": "ONE_EARLY_RESET_FULL_LOCAL_PASS_NOT_GLOBAL_ADMITTED", + "candidate": 25, + "selection": { + "reset_after_step": 1035, + "reset_part": "A", + "reset_after_gate": 1035, + "new_helper": 949, + "retired_helper": 252, + "frame": 458, + "reset_donors": [ + 0, + 1, + 512, + 523 + ], + "reset_size": 4, + "new_step": 1403 + }, + "candidate_sha256": "f4206df92a98e8e94aee680e962fc0d760a0b3555cbfab718f13fe66a9253277", + "local_profile": { + "1": 2368, + "2": 875, + "3": 475, + "4": 320, + "5": 163, + "7": 14, + "8": 9 + }, + "score_at_old_c": 0.9999982836732146, + "searched": 410 +} diff --git a/research/early-reset-source-banks/evidence/candidate-admission.json b/research/early-reset-source-banks/evidence/candidate-admission.json new file mode 100644 index 0000000000..8fb7b8c9c0 --- /dev/null +++ b/research/early-reset-source-banks/evidence/candidate-admission.json @@ -0,0 +1,172 @@ +{ + "status": "PASS_CHANGED_VARIABLE_R_BIT_FULL_FINITE_ADMISSION", + "kappa": "1806275959707/1600000000000000", + "kappa_decimal": "0.001128922474816875", + "bit_lower": "1130198381170380746807/1000000000000000000000000", + "complex_lower": "1183986549206329/1000000000000000000", + "binding_component": "bit", + "gain_over_pr425_percent": 7.721044037345957, + "bit_invoice": { + "unit_additions": 1067904, + "route_items": 738096, + "selector_calls": 1404600336, + "coefficient": "82161054619467903627466673362935694404222551446324515153973743276713", + "two_level_coefficient": "697345620266262871364032555923586120394340875592228434515672100154310091400196711454369020063307483063509359977666001075109630373576151983819240676", + "prefix_bits": 226, + "charged_prefix_bits": 256, + "coefficient_bits": 226, + "two_level_coefficient_bits": 488, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "live": 14394, + "physical": 14403 + }, + "complex_invoice": { + "local_primitive_bound": 10106507224156, + "local_adapters": 389696, + "pervertex": 771280115394960, + "physical_stock_bits": 2642, + "router_bits": 7984, + "literal_bits": 35284, + "physical_row_coefficient": 15445, + "retained_row_coefficient": 20161, + "compiler": 25934336, + "G_exponent": 30000, + "E_exponent": 100000, + "C0_exponent": 210000, + "required_C0_bits": 200012, + "halving_degree": 2, + "halving_integer_inequality": [ + 5329, + 4608 + ] + }, + "strict_outer_constraints": { + "bit_positive": "8829674852893599566645764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_above_bit": "420220062780845745854235210473668041607480301382616007311645341346483121230108184219190518581146924420250819107808875827406462690935244555095798993255426154142387/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "30066013450793671/1000000000000000000", + "beta_positive": "1/1000000000000000000", + "beta_below_one": "999999999999999999/1000000000000000000", + "leaf_saving_above_bit": "420220062780845736604340294799222729107480301382616007311645341346483121230108184219190518581146924420250819107808875827406462690935244555095798993255426154142387/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_positive": "4414837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "8829674852893599566645764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "210110031390422877131845000293210931199504940217639962048342369290625553303408750763112138060465277990934890972757513493452412237658746450141436805692468521975394506744573845857613/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "4414837426446800751055707541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "3901835162573553199248944292458130433587449504940217639962048342369290625553303408750763112138060465277990934890972757513493452412237658746450141436805692468521975394506744573845857613/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000", + "lambda_above_tau": "8829674852893599566645764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "420220062780845754683910063367267608253245090908947965704165039963867113918462842872707397351038740201060300526661951407155643583126368727689336302320181599046588006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "8829674852893599566645764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "8829674852893599566645764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "210110031390422877131845000293210931199504940217639962048342369290625553303408750763112138060465277990934890972757513493452412237658746450141436805692468521975394506744573845857613/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000", + "lambda_prime_below_one": "4414837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "3906249999999999996093750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387", + "epsilon_below_one": "4414837426446803680743207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387", + "guard_width": "4414837426446803680743207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387", + "K_geometry": "2934102337426446800751055707541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387000000000000000000", + "K_dominates_log": "4414837426446800746640870115422765661494787517912793625401162570927014408744933618527513415242943472772177247087707764497482478735098767043310975431966277928166042298947894676117781506744573845857613/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387000000000000000000", + "record_suffix": "4414837426446803680743207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387", + "phase_local": "35318699411574425535280822908509731525910752936389313891062765985892635535621072363185728448819686526835633010278405170043315593071487541892320917792118998274338280751735877755114490506744573845857613/31285318699411574398195945660334956531300403960478258880303613261045674995573572729993895102895516277776072520872217939892052380702098730028398868505554460251824196843946043409233139096000000000000000000", + "phase_boundary": "7063739882314881978524294640544506485587584553782209648172157149352639076762888368069646132406664305977616312504053256401411031392503519173226113348550796814980805594901150368603213706744573845857613/6257063739882314879639189132066991306260080792095651776060722652209134999114714545998779020579103255555214504174443587978410476140419746005679773701110892050364839368789208681846627819200000000000000000", + "gamma_sublinear": "1/2000000000000000000", + "cell_above_band": "7812499999999999988276835162573553200225506792458130433587449504940217639962048342369290625553303408750763112138060465277990934890972757513493452412237658746450141436805692468521975394506744573845857613/15642659349705787199097972830167478265650201980239129440151806630522837497786786364996947551447758138888036260436108969946026190351049365014199434252777230125912098421973021704616569548000000000000000000", + "prime_interval_packing": "4414837426446803680743207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/3910664837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387", + "alpha_positive": "8829674852893603450821577657292333050607782577695153663352820201636388855441524867764401277182478194781242356114950251004030066497440020593169538626273809406190647792203320830260168506744573845857613/7821329674852893599548986415083739132825100990119564720075903315261418748893393182498473775723879069444018130218054484973013095175524682507099717126388615062956049210986510852308284774000000000000000000", + "alpha_below_one": "7812499999999999996098164837426446799774493207541869566412550495059782360037951657630709374446696591249236887861939534722009065109027242486506547587762341253549858563194307531478024605493255426154142387/7821329674852893599548986415083739132825100990119564720075903315261418748893393182498473775723879069444018130218054484973013095175524682507099717126388615062956049210986510852308284774000000000000000000", + "alpha_below_one_fourth": "1946502743860329796436425026113642450155667464952196026355623008613718298367906770756854042653787289166223290198398670992249243727383730606181759742970879956332821654954424392246811024993255426154142387/7821329674852893599548986415083739132825100990119564720075903315261418748893393182498473775723879069444018130218054484973013095175524682507099717126388615062956049210986510852308284774000000000000000000", + "delta_positive": "1/8000000000000000000", + "delta_below_one_eighth": "999999999999999999/8000000000000000000", + "short_record_fallback": "30483048226026880435370716049981473444921078069202977044715581201455954607406488261875095417295664570675593078409269066287621729710186218844448400131702393333402578202314093006523480005040626951701536330848989473200962392100394875360258291407086535529695463598362177402585330114965091153995911085982533480542329597053236876484397768052443599470057769/30552069042394115623238228183920855987598050742654549687796497325239916987864817119134663186421402615015695821164275331925832403029393291043358270024955527589672067230416058016829237398437500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000", + "artificial_boundary": "219032549595292595228549559794958992649726711306451679741666557573544747044702436812843288946504219995956290830563562123302446240943871567686710590807722705775243150441151269868299186584479766278462427161/31285318699411574398195945660334956531300403960478258880303613261045674995573572729993895102895516277776072520872217939892052380702098730028398868505554460251824196843946043409233139096000000000000000000", + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25", + "balanced_prefix_above_kappa": "11563903480477359063078623946477098069716006551673805618049590637491304459721449044782816102200908625947398953721177921316923384692914084140420899601782740791837635560391808047199391/6257063739882314879639189132066991306260080792095651776060722652209134999114714545998779020579103255555214504174443587978410476140419746005679773701110892050364839368789208681846627819200000000000000", + "coordinate_movement_above_kappa": "9968018386763629145764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "829193709467975653662411689751579181789988399934086537810760622700338978219802265435005794003407089123778820241677239584142641961327240333553300921979976365855124404937906150836369247/977666209356611699943623301885467391603137623764945590009487914407677343611674147812309221965484883680502266277256810621626636896940585313387464640798576882869506151373313856538535596750000000000000000", + "bulk_exposure_above_kappa": "9968018386763629145764789526331958392519698617383992688354658653516878769891815780809481418853075579749180892191124172593537309064755444904201006744573845857613/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "Gaussian_arithmetic_above_kappa": "7653238643050912263304130738935228503303456056614023258011638979860595085274752453533579214338969091225389888612150678830416837105151742886871041038588433260359610954898552621045248613/6257063739882314879639189132066991306260080792095651776060722652209134999114714545998779020579103255555214504174443587978410476140419746005679773701110892050364839368789208681846627819200000000000000000", + "scalar_work_above_kappa": "53908852564960348515618626524843620782167482263309245730210001529825812924160548632664843623142603595014985703496862364098110375876808079448554639445719396427710153196465784809842812613/31285318699411574398195945660334956531300403960478258880303613261045674995573572729993895102895516277776072520872217939892052380702098730028398868505554460251824196843946043409233139096000000000000000000", + "dimension_above_kappa": "6242936260117685119424714348410367756818543154381446293655283899464670618934876091492525439142345789227601598026465037968988477580758175311243610991803192090056060232993532109991007741191808047199391/6257063739882314879639189132066991306260080792095651776060722652209134999114714545998779020579103255555214504174443587978410476140419746005679773701110892050364839368789208681846627819200000000000000" + }, + "outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "bootstrap": [ + { + "gap": "308470266020043630733092440413542569800409/250000000000000000000000000000000000000000000000", + "cutoff_log2": "23645902914475" + }, + { + "gap": "174316297647525009647921719223866383059247091728247533892121827/125000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "18511710094048210191" + }, + { + "gap": "98505998706423507767366399591462810170538345597308220602430558780164799862096567281/62500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "14492295424097387499328476" + }, + { + "gap": "55665660136785734201744868327394179177338809495663982212393479483936352770525461293450655503612902427243/31250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "11345609108627989872964263171481" + }, + { + "gap": "31456619486687916042131457532189693094475895368319610145009051077942541275745328069375045996893905687698404620136936209817929/15625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "8882157193107285626886309685367564336" + }, + { + "gap": "17776110210473668041607480301382616007311645341346483121230108184219190518581146924420250819107808875827406462690935244555095798993255426154142387/7812500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "6953590208133646077899726723895307423052960" + } + ], + "bit_template_sha256": "0394e2b80b0c08dbd5a643a15d8a2fa44ac6a1a4e6c59de5badd6b6d6987a3d8", + "complex_template_sha256": "942d030fa43316c560c88d7d7d904583446e1a96945b3ebd37a91c88a192ab4f", + "scope": "Finite research composition with explicit changed words, exact local and global replay and incremental phase evidence. All-size correlated dirty-bank, compressed-window, compiler, restored-work, tape/common-grid, precision and analytic interfaces remain inherited assumptions. This certificate makes no unconditional integer-multiplication or Lean-kernel claim.", + "candidate_sha256": "fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48", + "R": 746, + "base_source_manifest_sha256": "c903e548e42d04a243a034d320b15e6cb26b878c30f935181336ea6ea679a004", + "complex_source_template_sha256": "942d030fa43316c560c88d7d7d904583446e1a96945b3ebd37a91c88a192ab4f", + "fresh_checks": [ + { + "name": "export", + "exit_code": 0, + "seconds": 0.6469573340145871, + "log_sha256": "b1f4902a38e3b7d5bc6c0c2981cd26fc521860254153d4a7d16dabd951c70474" + }, + { + "name": "emitted-global", + "exit_code": 0, + "seconds": 2.7978378330008127, + "log_sha256": "41cc135ba82cfddae05e4fcc735fc285f1a2cff812c2c25d96c4d179389514ea" + }, + { + "name": "independent-global", + "exit_code": 0, + "seconds": 3.0335358750307932, + "log_sha256": "530550d9c794506e36c1c3a80b704552690c28d94697b7de705c9444bfd3aba3" + }, + { + "name": "two-exact-moments", + "exit_code": 0, + "seconds": 0.14627204195130616, + "log_sha256": "50590eb3011594c49eaabd4a8193b2fb0d7cc3e6df922143ae8ffeec5f4a9704" + }, + { + "name": "both-invoices-outer", + "exit_code": 0, + "seconds": 0.16379179200157523, + "log_sha256": "d6dd9887006aa5699eb8492c6f14cbd8bf22c0c452fc2c2b111a9be89b244784" + } + ], + "script_hashes": { + "bit_audit.py": "188edd75d81d8a0299501b680c9f8db2890dc0b3798b3dc53741ab384c198198", + "bit_global.py": "3f161a1730c180db5d9652604908ddd97b70cff2b471d95b11b5154d05245d34", + "bit_price.py": "36bf15803567a95b139a908461541bf19efe1f5b85fb31c270021833ab1393ee", + "combined.py": "66373cd552dfc5db2727a12d333808928e09840bbdb4df8859359af7892e9fba", + "export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3" + }, + "all_size_claim": false +} diff --git a/research/early-reset-source-banks/evidence/candidate-independent.json b/research/early-reset-source-banks/evidence/candidate-independent.json new file mode 100644 index 0000000000..7af69e27a6 --- /dev/null +++ b/research/early-reset-source-banks/evidence/candidate-independent.json @@ -0,0 +1,75 @@ +{ + "status": "PASS_EARLY_RESET_INDEPENDENT_RECORD_BANK_INVOICE_OUTER_AUDIT", + "bit_columns_both_orientations": 986, + "bit_assignments": 53712, + "complex_assignments": 40320, + "bit_profile": { + "1": 172872, + "2": 62208, + "3": 34200, + "4": 22248, + "5": 10944, + "7": 6768, + "8": 648, + "14": 3840, + "28": 3840, + "42": 3840 + }, + "complex_profile": { + "1": 142704, + "2": 56448, + "3": 12096, + "4": 16128, + "5": 28224, + "8": 7488, + "16": 3840, + "32": 3840, + "48": 3840 + }, + "bit_invoice": { + "unit_additions": 1067904, + "route_items": 738096, + "selector_calls": 1404600336, + "coefficient": "82161054619467903627466673362935694404222551446324515153973743276713", + "two_level_coefficient": "697345620266262871364032555923586120394340875592228434515672100154310091400196711454369020063307483063509359977666001075109630373576151983819240676", + "prefix_bits": 226, + "charged_prefix_bits": 256, + "coefficient_bits": 226, + "two_level_coefficient_bits": 488, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "live": 14394, + "physical": 14403 + }, + "complex_invoice": { + "local_primitive_bound": 10106507224156, + "local_adapters": 389696, + "pervertex": 771280115394960, + "physical_stock_bits": 2642, + "router_bits": 7984, + "literal_bits": 35284, + "physical_row_coefficient": 15445, + "retained_row_coefficient": 20161, + "compiler": 25934336, + "G_exponent": 30000, + "E_exponent": 100000, + "C0_exponent": 210000, + "required_C0_bits": 200012, + "halving_degree": 2, + "halving_integer_inequality": [ + 5329, + 4608 + ] + }, + "kappa": "1806275959707/1600000000000000", + "strict_constraints": 47, + "adjacent_grid_rejected": true, + "source_sha256": "c318f1020cfeb2e9e12c8922e1978ce5e136eb2fcdfd837b30b533e921dd07db", + "input_hashes": { + "/private/tmp/pr433-r746-fulladmission-v1/bit426-source-centres/records/249-records.bin": "d5eb8b381cfedb11c02bc862d579d9a7d6d1f780fa0eae68bb64ccaae3be09d0", + "/private/tmp/pr433-r746-fulladmission-v1/bit426-source-centres/global/GLOBAL-TEMPLATE.json.gz": "7457ac3627bf1d41344c7a1945f9b9f2e4f415a4d27130259b2a0407be370462", + "/private/tmp/pr433-r746-fulladmission-v1/split-centres/GLOBAL-TEMPLATE.json.gz": "a761d07a741a482ad0d2af725fa5298146635a3a2fae69e554bf0565d55d26c6", + "/private/tmp/pr433-r746-fulladmission-v1/RESULT.json": "1ac2bb698e5bfddde44ccb955a0cd427fe99db81c82bf1fca975bc1b2f1ec24b" + }, + "scope": "Independent finite source/program accounting and exact arithmetic. Scalar primitive and phase audits separate; inherited all-size interfaces remain conditional." +} diff --git a/research/early-reset-source-banks/evidence/materialize_reuse.py b/research/early-reset-source-banks/evidence/materialize_reuse.py new file mode 100644 index 0000000000..1f597a3de2 --- /dev/null +++ b/research/early-reset-source-banks/evidence/materialize_reuse.py @@ -0,0 +1,83 @@ +import json,math,hashlib,sys +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +O=Path('/private/tmp/pr433-bit-retiming');base=json.loads((O/'base/bit426-source-centres/bit-source-centres.json').read_text());F=[set(f) for f in base['frames']] +# exact dimensions from exported original root data +L=base['lines'] +def rank(ids): + p={} + for i in ids: + v=list(map(Q,L[i])) + for j,b in sorted(p.items()): + if v[j]:q=v[j];v=[x-q*y for x,y in zip(v,b)] + j=next((j for j,x in enumerate(v) if x),None) + if j is not None:q=v[j];p[j]=[x/q for x in v] + return len(p) +dim=list(map(rank,base['frames'])) + +def materialize(c,z): + # New helper s aliases retired helper r only after an exact, explicitly billed + # reset at an earlier boundary. Rebuild all dirty response and inverse cleanup. + c=json.loads(json.dumps(c));r=z['retired_helper'];s=z['new_helper'];assert r!=s + c[z['reset_part']].insert(z['reset_after_gate']+1,[z['frame'],r,z['reset_donors']]) + def alias(q):return r if q==s else q + for p in ('A','B'): + c[p]=[[f,alias(d),[alias(q) for q in ss]] for f,d,ss in c[p]] + physical=[q for q in range(240+c['R']) if q!=s];idx={q:j for j,q in enumerate(physical)} + for p in ('A','B'): + c[p]=[[f,idx[d],[idx[q] for q in ss]] for f,d,ss in c[p]] + c['R']-=1;c['start']=[c['start'][q] for q in physical];c['final']=[c['final'][q] for q in physical];c['ret']=[idx[q] for q in c['ret']] + c['C']=[[1,d,ss] for f,d,ss in reversed(c['A']+c['B']) if d>=240] + n=240+c['R'];val=[(1<=240 else 0 for r in range(n)] + def go(gs): + for f,d,ss in gs: + assert d not in ss and len(ss)==len(set(ss)) + for s in ss:val[d]^=val[s] + go(c['A']);cp=[val[q] for q in c['ret']] + for t,ss in enumerate(c['scatter']): + for j in ss:val[120+t]^=cp[j] + go(c['B']);c['D']=[] + for t in range(120): + bits=val[120+t];ss=[j for j in range(240,n) if bits>>j&1] + assert bits==sum(1<dim[cur[r]]:H[dim[f]-dim[cur[r]]]+=1 + want=[1< 2·48² gives two-level halving. + +The fresh invoice fits the retained 2^30000 router, 2^100000 literal and 2^210000 +precision reserves. Two exact rational engines certify + +$$ +b=0.001183986549206329. +$$ + +## 3. Source-centre bit composition + +Start with the exact R767 word from PR426. Its nine retained rows are written +only by original sources at the full frame and are not read by ordinary A/B +gates. Their nine independent binary forms have an invertible minor in source +columns 0,1,2,4,8,9,16,32,64. + +Replace those rows of the 120-dimensional identity by the nine retained forms. +Exact elimination produces an invertible source basis T, emitted as 559 XOR +additions. Delete the nine retained helper rows and their old-dirt columns. +After A apply T, perform the same nine sequential copies using the designated +source rows, and immediately apply T^-1 before B. The copies have unchanged +rank eight. All scalar operations of T and its inverse use the full frame. + +All 998 columns, arbitrary dirt, frame incidences and restoration pass. Omitting +T^-1 or the remaining old-dirt correction fails. The actual exported record +stream is reflected in reverse order with complementary frames. A reflected +ERASE becomes a fresh COPY at that chronological point; the original source +row remains unchanged within each copy episode. Both reflected programs and +all nine composed invocations are replayed, rather than assuming that mutable +source rows meet an old immutability restriction. + +Use the unchanged compressed bit windows in dimension 64: a local eight-space +and eight exterior seven-spaces. The root data, rational frame family, form, +port isometries and bank slots are source-bound to PR386. Every changed nested +pair is checked by exact rational spans; positive definiteness gives the +projector identity and its reflected version. There are 758 banks per stage, +each filled by eight rank-eight residuals, with no padding. Live width is 14,502 +and physical stock is 14,511. All 54,576 owner assignments are checked. The +unbanked global replay restores all 7,782 independent columns. + +The bit local profile is + +$$ +\{1:2367,\ 2:875,\ 3:475,\ 4:321,\ 5:164,\ 7:14,\ 8:9\}. +$$ + +Its global deficit is again 2,496. The maximum child is 42 and 64² > 2·42². +The actual cancellation-free prefix bound needs 223 bits; the new charge is +256 bits, replacing the parent's 192-bit allowance. The finite two-level +coefficient needs 483 bits and fits the retained 2^512 allowance. The row +coefficient is 18,355 < 20,161. These costs, including the basis operations, +are recomputed from the emitted word. Two exact rational moment engines give + +$$ +c=0.001122122700265139220566. +$$ + +## 4. Joint strict assembly + +Both moments include the inherited 10^-16 bad-branch allowance. The bit supplier +binds because c < b. Let eta=beta=10^-18 and + +$$ +s=\min\{c,(1-\beta)b\}-10^{-24}. +$$ + +Starting at a_0=384599/10^10, use six fixed ordinary bootstrap levels + +$$ +a_{j+1}=(1-s)s+sa_j. +$$ + +All bootstrap cutoff inequalities are checked with the actual charged finite +coefficient. With q=a_6(1-2eta), choose the greatest 10^-18 grid point strictly +below (1-eta)q/(1+q). It is + +$$ +\kappa=\frac{560432476129139}{500000000000000000} + =0.001120864952258278. +$$ + +All 47 retained strict outer inequalities pass. The next grid point, zero eta, +zero beta and unit beta are rejected. The candidate is computed from both +actual new templates; no independently reported savings are added together. + +The source-bound finite claims above do not discharge the inherited all-size +interfaces or establish unconditional integer-multiplication complexity. diff --git a/research/early-reset-source-banks/vendor/pr433/README.md b/research/early-reset-source-banks/vendor/pr433/README.md new file mode 100644 index 0000000000..1e31463921 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/README.md @@ -0,0 +1,56 @@ +# Conditional κ = 0.001120864952258278 + +This package combines a split-centre Hamming complex construction with a +source-centre bit construction in compressed nine-stage windows. The resulting +conditional exponent saving is + +$$ +\kappa=\frac{560432476129139}{500000000000000000} + =0.001120864952258278. +$$ + +This is approximately **6.9522% above PR425**. Both components change: + +| Component | Helpers | Ambient width | Certified saving | +|---|---:|---:|---:| +| Complex | 560 | 73 | 0.001183986549206329 | +| Bit | 758 | 64 | 0.001122122700265139220566 | + +The bit component limits the final assembly. The complex construction removes +coordinate contributions that cancel in the decoder, replacing eight full +centres with eight rank-eight and eight rank-one copies. The bit construction +starts from PR426's R767 word, computes its nine retained forms reversibly in +source rows, and uses PR386's compressed windows. + +## Verification + +Python 3.11+ and its standard library suffice. Use a new output directory: + +```sh +python3 -B research/split-centres-global/verify.py /tmp/split-centres-check +``` + +The default replays both changed words, reflected/inverse-transpose programs, +bank ownership, costs, two rational moment engines and 47 strict outer +inequalities. Exact complex phase evidence is reused only when the regenerated +canonical word and complete recipe hashes match. To regenerate every selected +Gaussian phase pair as well: + +```sh +python3 -B research/split-centres-global/verify.py /tmp/split-centres-full-phases --replay-phases +``` + +The unchanged historical repository suite and PDF build are not required by +this package. `EXPECTED.json` binds the result to both emitted global templates; +`MANIFEST.json` binds the package files; `SOURCES.json` pins imported sources. + +## Scope + +[PROOF.md](PROOF.md) supplies the changed finite construction. The all-size +compressed-window and correlated dirty-bank semantics, recursive compiler, +restored-work/tape/common-grid precision, and analytic transfer interfaces remain +conditional. This does not claim unchanged legacy gx/gxcore acceptance, a new +Lean proof, or an unconditional multiplication theorem. + +Contributor history and AI assistance are recorded in [NOTICE.md](NOTICE.md). +Original notices and the inherited proofs are retained separately. diff --git a/research/early-reset-source-banks/vendor/pr433/SOURCES.json b/research/early-reset-source-banks/vendor/pr433/SOURCES.json new file mode 100644 index 0000000000..215f58a649 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/SOURCES.json @@ -0,0 +1,134 @@ +{ + "upstream_base": "12a4934d15006e8c10f9b2264f13f8f341be802b", + "pr425": "e11ccea1d092beb1b01b4ee4ce49da478234254c", + "pr426": "88d552526893cd15325948bb1487e9a4d4bf32f6", + "imported_files": [ + { + "path": "vendor/hamming_packets.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/hamming_packets.py", + "sha256": "daa9301e2767a711cfe66c6bebaad68e1a3bdb97ec9e848c927527ab43b37ae5" + }, + { + "path": "vendor/clifford_exact.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/odd-stages/clifford_exact.py", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962" + }, + { + "path": "inputs/complex-ports.json.gz", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/higher-stage-e8/verified/gcert1-e8-retimed.json.gz", + "sha256": "77b0c0fa19ef3da1c7316010e13493aa5eea1a50c3506eddc08f7480e659878b" + }, + { + "path": "inputs/complex-template.json.gz", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-nine-native/GLOBAL-TEMPLATE.json.gz", + "sha256": "1b84904a31a733aab9bfdda3f528c06719f590d2133a43687a8bded955dc991e" + }, + { + "path": "inputs/complex-data-phases.json.gz", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-nine-native/DATA-PHASES.json", + "sha256": "c972b5b60649c2a52354f5160f69adc0f4a270fa09d32012beff9888774ab84f", + "source_sha256": "f621f6d4296cb215f334830356c5f79fe10d6d04d15b3ccda76ba0885ab67d0a", + "encoding": "gzip; decoded bytes identical to source" + }, + { + "path": "inputs/e8-r865.json.gz", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr370-source/research/e8-bit/data/bit/bitE8-r865.json.gz", + "sha256": "1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55" + }, + { + "path": "proofs/PR425-COMPLEX.txt", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/hamming/PROOF.txt", + "sha256": "2cda27b9b9a1eb24127c38c2c7a6e085155a2472183e220189a3ea2c2b7720dc" + }, + { + "path": "proofs/INHERITED-COMPLEX-GEOMETRY.txt", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-nine-native/PROOF.txt", + "sha256": "c1ff55536594222a8d2a30bc0e0956959774e1be2d5420b7838ad553ee556df2" + }, + { + "path": "vendor/engines/moment.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr361/code/engines/moment.py", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + { + "path": "vendor/engines/base_two_moment.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr361/code/engines/base_two_moment.py", + "sha256": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098" + }, + { + "path": "vendor/engines/outer.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr361/code/engines/outer.py", + "sha256": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + { + "path": "vendor/export_records.py", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit/code/bit/export_records.py", + "sha256": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3" + }, + { + "path": "inputs/bit-geometry.json.gz", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine-validation/GEOMETRY.json.gz", + "sha256": "5c980202227859e8bb9b863f94503930c2a59d460c0421356688e2b0d828b4a1" + }, + { + "path": "proofs/PR386-BIT-GEOMETRY.txt", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine/PROOF.txt", + "sha256": "c5f077b849e9add9957ab4ee36095dd47bc678dee7e09baa146dac4c0a0d66b2" + }, + { + "path": "notices/PR386.txt", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine/NOTICE.txt", + "sha256": "ae2241615a23063b18a04f1b7a88a52e62b3d7d42e333fbd21e3668567ab83d1" + }, + { + "path": "inputs/bit-r767.json.gz", + "source": "CrocSwap/integer-mult-bounds@88d552526893cd15325948bb1487e9a4d4bf32f6:research/e8-clean-reuse-extension/data/bit-candidate.json.gz", + "sha256": "bd3b84244528767b85d8d7fe423b155630b5c659e21e51563674b1dcb6305ad7" + }, + { + "path": "notices/PR426.md", + "source": "CrocSwap/integer-mult-bounds@88d552526893cd15325948bb1487e9a4d4bf32f6:research/e8-clean-reuse-extension/NOTICE.md", + "sha256": "6a5593d0f284a2f0865037f5c5fa9e5f76f9e12cf50ec5284486d3b8137c89da" + }, + { + "path": "proofs/PR426.md", + "source": "CrocSwap/integer-mult-bounds@88d552526893cd15325948bb1487e9a4d4bf32f6:research/e8-clean-reuse-extension/PROOF.md", + "sha256": "5787738ceb6faf14d3d96e8452592860a6c6a469733a9bcf196e8d1562ba1ffb" + }, + { + "path": "notices/PR426-SOURCE-PINS.json", + "source": "CrocSwap/integer-mult-bounds@88d552526893cd15325948bb1487e9a4d4bf32f6:research/e8-clean-reuse-extension/SOURCE-PINS.json", + "sha256": "18ace817f2f9af22511bb303e99656ed114e534b87f3dd95a65ca4ca670baf2f" + }, + { + "path": "notices/NOTICE-PR352.md", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr370-source/research/e8-bit/NOTICE-PR352.md", + "sha256": "967e6d7e76e216e4898cf543c75b527e8d397ec1ddba3800cb20701f24c89524" + }, + { + "path": "notices/NOTICE.md", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr370-source/research/e8-bit/NOTICE.md", + "sha256": "025773f32fb43667395e64c627a1752877bdc93afbfe01b106703eee438d21d3" + }, + { + "path": "LICENSE", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/pr370-source/research/e8-bit/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "path": "notices/SUSSMAN-NOTICE", + "source": "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit/code/complex/inputs/complex/NOTICE", + "sha256": "9419dd03a2f52cf8bdfc4d18216ce29f263ab583b27f01ced8e420985bcb7c81" + } + ], + "adapted_sources": { + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/hamming_full.py": "613796df039dfc08de708831582533e553316eaf157485531e4df2d897bdb3bb", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/audit_full.py": "fdc1da8fa95716d60076383e691a5be1bf8bec0b229b7582bc056afac28951d0", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/integrate.py": "eb5b427f2095578f28a1fb320b4694047e20abdbe0c8bcdc65b1e9e05ab90d01", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/phase_full.py": "5c2bd267cc3106c9eee8787132c460614fdde8177c0c2653435f8a7b110ebac1", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/hamming-mutable-basis-complex/work/complex-network/replay_ir.py": "f7a3829118581ee59fdeefc1f91166d8e7bb94686ea92e7743a2ef7d50139dcc", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine/global_word.py": "2c438be46213e014170e607a745185e45e33c7b7240b833efc86a2330de0d1f6", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine/audit.py": "75811327b0d6cbd56aae8e28d72abd42d57c7f3f3630781d045efee2d36446e9", + "CrocSwap/integer-mult-bounds@e11ccea1d092beb1b01b4ee4ce49da478234254c:research/e8-bit-complex-nine/certify.py": "550b1408fb3a581dd6b82c90e3f84ad7a9f78746d2be11ffa1cf543d719ae2d4" + } +} diff --git a/research/early-reset-source-banks/vendor/pr433/VALIDATION.json b/research/early-reset-source-banks/vendor/pr433/VALIDATION.json new file mode 100644 index 0000000000..da1036d471 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/VALIDATION.json @@ -0,0 +1,28 @@ +{ + "status": "PASS_CLEAN_DIRECTORY_INCREMENTAL_REPLAY", + "python": "3.14", + "tested_code_vendor_input_digest": "c15599626c4222a95ddb4f0a9da028cfce5c8636c7a737d6869155c2f33301ed", + "steps": [ + "hamming_packets", + "complex_construct", + "complex_audit", + "complex_emit", + "complex_phases", + "bit_construct", + "bit_export", + "bit_global", + "bit_audit", + "bit_price", + "complex_integrate", + "complex_replay", + "combined" + ], + "phase_mode": "source-bound unchanged evidence", + "new_complex_phase_pairs": 248, + "reused_verified_complex_phase_pairs": 2670, + "source_bound_bit_geometry": "PR386; exact unchanged root/frame/port/slot identities", + "historical_full_suite_rerun": false, + "pdf_built": false, + "ci_status": "Not yet run for this commit", + "post_replay_packaging": "Phase JSON gzip round-trip matched the verified decoded bytes; mathematical code and witnesses unchanged." +} diff --git a/research/early-reset-source-banks/vendor/pr433/code/bit_audit.py b/research/early-reset-source-banks/vendor/pr433/code/bit_audit.py new file mode 100644 index 0000000000..82e1663e58 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/code/bit_audit.py @@ -0,0 +1,126 @@ +# Adapted with exact rational span checks by icekylinx; Codex assistance. +"""Independent audit of the emitted bit template, including mutation controls. +Prepared by Zhihao Chen with OpenAI Codex assistance; Apache-2.0. +""" +import argparse, copy, gzip, hashlib, json, struct, time +from collections import Counter, defaultdict +from pathlib import Path +from fractions import Fraction as Q + +def sha(p): return hashlib.sha256(p.read_bytes()).hexdigest() + +def main(): + ap=argparse.ArgumentParser(); ap.add_argument('--local-check',type=Path,required=True); ap.add_argument('--out',type=Path,required=True) + a=ap.parse_args(); start=time.monotonic(); out=a.out + blob=gzip.decompress((out/'GLOBAL-TEMPLATE.json.gz').read_bytes()); t=json.loads(blob) + g=json.loads((out/'GLOBAL.json').read_text()); geo=json.loads((out/'GEOMETRY.json').read_text()) + assert hashlib.sha256(blob).hexdigest()==g['template_sha256'] + assert t['geometry_sha256']==sha(out/'GEOMETRY.json') and t['source_record_sha256']==sha(a.local_check/'records/249-records.bin') + fs=json.loads((a.local_check/'records/frames.json').read_text())['frames'] + records=list(struct.iter_unpack('<6i',(a.local_check/'records/249-records.bin').read_bytes())) + word=json.loads((a.local_check/'bit-source-centres.json').read_text()) + assert g['word_sha256']==sha(a.local_check/'bit-source-centres.json') + def rank(rows): + piv={} + for rr in rows: + row=list(map(Q,rr)) + for k,b in sorted(piv.items()): + q=row[k] + if q:row=[x-q*y for x,y in zip(row,b)] + k=next((j for j,x in enumerate(row) if x),None) + if k is not None: + q=row[k];piv[k]=[x/q for x in row] + return len(piv) + dimensions={};proj={} + for key,f in fs.items(): + k=int(key);B=f['B'];roots=[word['lines'][j] for j in word['frames'][k]] + assert rank(B)==f['dim']==rank(B+roots)==rank(roots) + dimensions[k]=f['dim'];proj[k]=B + sets=[set(f) for f in word['frames']];pairs={} + for op,x,y,c,r,z in records: + if op==0: + assert sets[y]<=sets[c] and dimensions[c]-dimensions[y]==r + pairs[y,c]=r + # Positive definite rational form: exact inclusion implies commuting + # orthogonal projectors and rank(P_V-P_U)=dim(V)-dim(U), also in reflection. + assert len(proj)==944 + expected={} + for rev in (False,True): + es=[] + for op,x,y,c,f,z in (reversed(records) if rev else records): + if op==0: es.append([0,x,c if rev else y,y if rev else c,f,int(rev)]) + elif op==1: es.append([1,x,y,-c if rev else c,f,int(rev)]) + elif op==(3 if rev else 2): es.append([2,x,y,c,f,abs(dimensions[c]-dimensions[f]),int(rev)]) + else: es.append([3,x,y,c,f,z,int(rev)]) + expected['reverse' if rev else 'forward']=es + assert t['local_programs']==expected + + def validate(q,check_profile=True): + assert (q['m'],q['live'],q['replicas'],q['stages'])==(64,14502,8,9) + assert q['bank_padding'] is None and q['local_programs']==expected + hist=Counter(); occupation=defaultdict(set); calls=set() + for c in q['calls']: + st,rep,p=c['stage'],c['replica'],c['pair']; rev=c['orientation']=='reverse' + assert 0<=st<9 and 0<=rep<8 and p==max(0,(st-1)//2) + assert rev==(st in (1,3,5,7)) and (st,rep) not in calls; calls.add((st,rep)) + own=c['owners']; assert len(own)==998 + assert len({(f,tuple(r)) for f,r in own})==998 + for i,(family,route) in enumerate(own): + assert 0<=family<14502 + if i<240: + side=i//120; side=1-side if rev else side + assert family==rep*960+(2*p+side)*120+i%120 and route==['data',st,i%120] + else: + j=i-240; bank,slot=divmod(rep*758+j,8) + assert family==7680+st*758+bank and route==['bank',slot] + assert slot not in occupation[family]; occupation[family].add(slot) + for e in q['local_programs'][c['orientation']]: + if e[0]==0 and e[4]: hist[e[4]]+=1 + if e[0]==2: hist[e[5]]+=1 + assert calls=={(s,r) for s in range(9) for r in range(8)} + assert set(occupation)==set(range(7680,14502)) and all(s==set(range(8)) for s in occupation.values()) + levels=[-1]*4; scalar=[1<> p & 1: + row ^= q + assert row, 'Retained forms must be independent' + p = (row & -row).bit_length() - 1 + echelon[p] = row + pivots = sorted(echelon) + matrix = [1 << i for i in range(v)] + for p, row in zip(pivots, rows): + matrix[p] = row + target = matrix[:] + elimination = [] + def add(d, s): + matrix[d] ^= matrix[s] + elimination.append((d, s)) + for p in range(v): + q = next(i for i in range(p, v) if matrix[i] >> p & 1) + if q != p: + add(p, q); add(q, p); add(p, q) + for i in range(v): + if i != p and matrix[i] >> p & 1: + add(i, p) + assert matrix == [1 << i for i in range(v)] + forward = [[full, d, [s]] for d, s in reversed(elimination)] + inverse = list(reversed(forward)) + check = [1 << i for i in range(v)] + for f, d, ss in forward: + check[d] ^= check[ss[0]] + assert check == target + out = copy.deepcopy(old) + physical = [i for i in range(2*v+old['R']) if i not in retired] + index = {r: i for i, r in enumerate(physical)} + def remap(gs): + return [[f, index[d], [index[s] for s in ss if s not in retired]] + for f, d, ss in gs if d not in retired] + out['R'] -= len(retired) + out['ret'] = pivots + out['D'] = remap(old['D']) + out['A'] = remap(old['A']) + forward + out['B'] = inverse + remap(old['B']) + out['C'] = remap(old['C']) + out['start'] = [old['start'][i] for i in physical] + out['final'] = [old['final'][i] for i in physical] + out['source_basis_gates'] = len(forward) + assert replay(out), 'All independent source, target and dirty columns' + assert not replay(out, skip_inverse=True) + assert not replay(out, skip_dirt=True) + # Frame incidence inclusion uses the root-closed sets in this bit format. + frames = [set(f) for f in out['frames']] + cur = out['start'][:] + for phase in ['D', 'A', 'B', 'C']: + for f, d, ss in out[phase]: + for r in [d] + ss: + assert frames[cur[r]] <= frames[f], (phase, r, cur[r], f) + cur[r] = f + if phase == 'A': + assert all(cur[r] == full for r in out['ret']) + assert all(frames[f] <= frames[g] for f, g in zip(cur, out['final'])) + raw = json.dumps(out, sort_keys=True, separators=(',', ':')).encode() + (ROOT / 'bit-source-centres.json').write_bytes(raw) + result = dict(status='PASS_LOCAL_ALL_COLUMNS_AND_NESTED_FRAMES', + original_R=old['R'], new_R=out['R'], + removed_retained_helpers=sorted(retired), retained_source_rows=pivots, + formal_columns=2*v+out['R'], reversible_basis_gates_each_way=len(forward), + source_sha256=sha256(source.read_bytes()).hexdigest(), + output_sha256=sha256(raw).hexdigest(), + controls=['unmodified word passes', 'missing inverse rejected', 'missing dirt rejected'], + kappa_claimed=False, + remaining=['global ordinary-call and reflected integration', 'finite coefficient and tape invoice', 'exact priced component comparison']) + (ROOT / 'bit-source-centres-receipt.json').write_text(json.dumps(result, indent=2)+'\n') + print(json.dumps(result)) + + +if __name__ == '__main__': + main() diff --git a/research/early-reset-source-banks/vendor/pr433/code/bit_global.py b/research/early-reset-source-banks/vendor/pr433/code/bit_global.py new file mode 100644 index 0000000000..5ccf622825 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/code/bit_global.py @@ -0,0 +1,226 @@ +# Adapted for the PR426/source-centre composition by icekylinx with Codex assistance. +"""Source-bound compressed nine-stage bit template and exact scalar audits. + +Prepared by Zhihao Chen with OpenAI Codex assistance, Apache-2.0. +The local E8 bit word is Dylan Crow's pinned PR #370 contribution. +""" +import argparse, gzip, hashlib, json, struct, time +from collections import Counter +from pathlib import Path + +H,V,R,L,K,T,M=8,120,758,9,4,8,64 +LOCAL=2*V+R; DATA=2*K*V*T; LIVE=DATA+L*R +def sha(p): return hashlib.sha256(p.read_bytes()).hexdigest() +def write(p,x): p.write_text(json.dumps(x,indent=2)+'\n') + +def recipe(): + out=[dict(kind='local',stage=0,pair=0,reverse=False)]; stage=1 + for j in range(K): + out.append(dict(kind='local',stage=stage,pair=j,reverse=True)); stage+=1 + if j=0 + cur[x]=newf + if f: hist[f]+=1 + events.append([0,x,oldf,newf,f,int(reverse)]) + elif op==1: + assert cur[x]==cur[y]==f and x!=y and x0 + cutoff=max(ceil(36/gap**2),ceil(2*(4+512)/gap)) + assert cutoff*gap**2>=36 and cutoff*gap>=2*(4+512) + cutoffs.append(dict(gap=str(gap),cutoff_log2=str(cutoff)));chain.append(a) +q=chain[-1]*(1-2*eta);margin=(1-eta)*q/(1+q);ticks=margin/grid;k=grid*((ticks.numerator-1)//ticks.denominator) +bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1},'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} +a=Outer.assembly(chain[-1],b,bridge,k,eta=eta,beta=beta) +assert len(a['strict_constraints'])==47 and all(x>0 for x in a['strict_constraints'].values()) +controls=[] +for name,kk,ee,bb in [('next_grid',k+grid,eta,beta),('zero_eta',k,Q(0),beta),('zero_beta',k,eta,Q(0)),('unit_beta',k,eta,Q(1))]: + try:Outer.assembly(chain[-1],b,bridge,kk,eta=ee,beta=bb) + except AssertionError:controls.append(name) + else:raise AssertionError(name) +result=dict(status='PASS_CONDITIONAL_SPLIT_CENTRE_ASSEMBLY',kappa=str(k),kappa_decimal=format(float(k),'.18f'),bit_lower=str(c),complex_lower=str(b),binding_component='bit',gain_over_pr425_percent=float(100*(k/Q(1048005508028206,10**18)-1)),bit_invoice=dict(prefix_bits=prefix.bit_length(),charged_prefix_bits=256,coefficient_bits=coefficient.bit_length(),two_level_coefficient_bits=two.bit_length(),charged_two_level_coefficient_bits=512,row_coefficient=row,live=W,physical=physical),strict_outer_constraints={n:str(x) for n,x in a['strict_constraints'].items()},outer_controls=controls,bootstrap=cutoffs,bit_template_sha256=g['template_sha256'],complex_template_sha256=cx['global_template_sha256'],scope='Finite research composition with explicit changed words, exact local and global replay and incremental phase evidence. All-size correlated dirty-bank, compressed-window, compiler, restored-work, tape/common-grid, precision and analytic interfaces remain inherited assumptions. This certificate makes no unconditional integer-multiplication or Lean-kernel claim.') +(ROOT/'RESULT.json').write_text(json.dumps(result,indent=2)+'\n') +print(result['status'],result['kappa_decimal'],result['gain_over_pr425_percent'],result['bit_invoice']) diff --git a/research/early-reset-source-banks/vendor/pr433/code/complex_audit.py b/research/early-reset-source-banks/vendor/pr433/code/complex_audit.py new file mode 100644 index 0000000000..ba6789a3a6 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/code/complex_audit.py @@ -0,0 +1,168 @@ +# Modified from PR425 by icekylinx with Codex assistance. +"""Read-back audit, independent of the Hamming producer and its row state.""" +import copy,gzip,hashlib,importlib.util,json,math,time +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + +OUT=Path('split-centres');p=OUT/'FULL-WORD.json.gz' +word=json.load(gzip.open(p));v=120;n=240+word['report']['R'];start=time.monotonic() +def apply(e,rows): + if e[0]=='scale': + _,t,a,b,*_=e;q=Q(a,b);assert q + rows[t]={j:q*x for j,x in rows[t].items()} + else: + _,t,s,a,b,*_=e;q=Q(a,b);assert t!=s + for j,x in list(rows[s].items()): + z=rows[t].get(j,Q(0))+q*x + if z:rows[t][j]=z + else:rows[t].pop(j,None) +def ident():return [{r:Q(1)} for r in range(n)] +def inv(e): + e=copy.deepcopy(e) + if e[0]=='add':e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + return e +def dual(e): + e=inv(e) + if e[0]=='add':e[1],e[2]=e[2],e[1] + return e + +main=word['A']+word['cut']+word['B'] +assert all(not 120<=e[2]<240 for e in word['A']+word['B'] if e[0]=='add' and not 120<=e[1]<240) +matrix=ident() +for e in main:apply(e,matrix) +print('full main columns',n,'replayed',flush=True) +# Compute -A_Y^-1 B_S using only rows of the explicit main operator. +dirty=[{} for r in range(n)] +for r in range(v,2*v):dirty[r]={j:x for j,x in matrix[r].items() if j>=2*v} +for e in word['precondition']:apply(e,dirty) +comp=[] +for r in range(v,2*v): + for j,q in sorted(dirty[r].items()):comp.append(['add',r,j,-q.numerator,q.denominator,[]]) + +cleanup=[inv(e) for e in reversed(word['A']+word['B']) if not v<=e[1]<2*v] +assert [e[:-1] for e in cleanup]==[e[:-1] for e in word['cleanup']] +program=word['precondition']+comp+main+cleanup +actual=ident() +for e in program:apply(e,actual) +expected=ident() +for t in range(v):expected[v+t][t]=Q(1) +assert actual==expected +print('PASS exact arbitrary dirt and restored sources/helpers',flush=True) +back=ident() +for e in program:apply(dual(e),back) +expected_back=ident() +for t in range(v):expected_back[t][v+t]=Q(-1) +assert back==expected_back +print('PASS exact inverse-transpose on every column',flush=True) +# Independent sparse vector controls avoid repeating a dense full replay. +def vector(es,x): + x=list(map(Q,x)) + for e in es: + if e[0]=='scale':x[e[1]]*=Q(e[2],e[3]) + else:x[e[1]]+=Q(e[3],e[4])*x[e[2]] + return x +sample=[((i*137+13)%101)-50 for i in range(n)] +want=vector(program,sample) +controls={ + 'missing_dirty_compensation':word['precondition']+main+cleanup, + 'missing_Y_inverse_basis':comp+main+cleanup, + 'missing_source_cleanup':word['precondition']+comp+main, + 'wrong_dual_event_order':[dual(e) for e in reversed(program)], +} +for name,es in controls.items(): + expected_sample=vector([dual(e) for e in program],sample) if name=='wrong_dual_event_order' else want + assert vector(es,sample)!=expected_sample,name + +# Orthogonal transvection and a port permutation bring the new geometry onto +# the already fixed 120-port routing family. Every incidence is transformed. +old=json.load(gzip.open('work/higher-stage-e8/verified/gcert1-e8-retimed.json.gz')) +def tau(x):return x^(43 if (x&43).bit_count()%2 else 0) +assert 43 .bit_count()%2==0 +assert set(map(tau,word['ports']))==set(old['ports']) +mapping={i:old['ports'].index(tau(q)) for i,q in enumerate(word['ports'])} +mapping.update({v+i:v+mapping[i] for i in range(v)}) +mapping.update({r:r for r in range(2*v,n)}) +def basis(vs): + b={} + for x in vs: + for k in sorted(b,reverse=True): + if x>>k&1:x^=b[k] + if x: + k=x.bit_length()-1 + for j in b: + if b[j]>>k&1:b[j]^=x + b[k]=x + return tuple(b[k] for k in sorted(b,reverse=True)) +def perp(x):return basis([z for z in range(1,512) if not (x&z).bit_count()%2]) +full=tuple(1<0 + edges.add((old,f));paid[delta]+=1;cur[r]=f +for part in ('A','B'): + if part=='B': + assert all(cur[r]==f for r,f in zip(can['centers'],can['center_frames'])) + assert all(cur[r]==0 for r in range(v,2*v)) + for f in can['center_frames']:paid[len(frames[f])]+=1 + for e in can[part]: + rs=[e[1]]+([e[2]] if e[0]=='add' else []) + for r in rs:climb(r,e[-1]);incidences+=1 +for r,f in enumerate(can['final']):climb(r,f) +assert dict(paid)=={int(r):x for r,x in word['report']['local_profile'].items()} +assert sum(r*x for r,x in paid.items())==9*can['R']+240*8+72 +can['local_profile']=dict(sorted(paid.items()));can['edges']=sorted(edges) +cp=OUT/'CANONICAL-WORD.json.gz';cp.write_bytes(gzip.compress(json.dumps(can,sort_keys=True,separators=(',',':')).encode(),mtime=0)) + +def engine(name): + p=Path('work/pr361/code/engines')/(name+'.py');s=importlib.util.spec_from_file_location('hamming_'+name,p) + m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +M,M2=engine('moment'),engine('base_two_moment');m,W=73,12720 +HG={int(r):z for r,z in word['report']['global_profile'].items()} +root=M.certify(HG,m,W,True);b=Q(int(Q(root['lower'])*10**18),10**18);grid=Q(1,10**18) +assert M.moment(HG,m,W,b,True)[1]<1>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def inside(a,b):return basis(a+b)==b +def hyper(p):return basis([x for x in range(1,512) if (x&p).bit_count()%2==0]) +FULL=basis([1<>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def dual(e): + e=list(e) + if e[0]=='add':e[1],e[2]=e[2],e[1];e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + return e +def scalar(e,back): + e=dual(e) if back else list(e) + if e[0]=='add':return ['add',['L',e[1]],['L',e[2]],e[3],e[4]] + return ['scale',['L',e[1]],e[2],e[3]] +def primitive_bound(e): + if e[0] in ('clear','copy'):return 1 + q=Q(e[3],e[4]) if e[0]=='add' else Q(e[2],e[3]) + a,b=abs(q.numerator),q.denominator + assert b&(b-1)==0 + if e[0]=='scale': + assert a&(a-1)==0 + return abs(a.bit_length()-b.bit_length())+int(q<0) + # Exact binary Horner multiplication on a cleared private stream, repeated + # halving, signed accumulation into the target, then clear the private stream. + return 3+(a.bit_length()-1)+a.bit_count()+(b.bit_length()-1) + +def emit(back): + out=[];cur=c['start'].copy() + def event(e):out.append(e) + def scal(e,f):event(['scalar',e,f]) + event(['phase','zero_frame_precondition']) + for e in c['precondition']+c['compensation']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['start'][r]==0 for r in regs) + scal(scalar(e,back),0) + event(['phase','entry_adapters']) + for r,f in enumerate(c['start']):event(['adapter','old_to_new',r,f]) + def climb(r,f,part): + old=cur[r] + if old==f:return + assert basis(frames[old]+frames[f])==tuple(frames[f]) + rank=len(frames[f])-len(frames[old]);assert rank>0 + event(['climb',part,r,old,f,rank]);cur[r]=f + for part in ('A','centers','B','final'): + event(['phase',part]) + if part in ('A','B'): + for e in c[part]: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + for r in regs:climb(r,e[-1],part) + scal(scalar(e,back),e[-1]) + elif part=='centers': + assert all(cur[r]==0 for r in range(v,2*v)) + for k,r in enumerate(c['centers']): + cf=c['center_frames'][k];rank=len(frames[cf]);assert cur[r]==cf + C=['C',k];scal(['clear',C],0 if back else cf) + terms=[e for e in c['cut'] if e[2]==r] + if back: + for e in terms:scal(['add',C,['L',e[1]],e[3],e[4]],0) + else:scal(['copy',C,['L',r]],cf) + event(['center',k,0 if back else cf,cf if back else 0,rank]) + if back:scal(['add',['L',r],C,-1,1],cf) + else: + for e in terms:scal(['add',['L',e[1]],C,e[3],e[4]],0) + scal(['clear',C],cf if back else 0) + else: + for r,f in enumerate(c['final']):climb(r,f,part) + event(['phase','exit_adapters']) + for r,f in enumerate(c['final']):event(['adapter','new_to_old',r,f]) + event(['phase','full_frame_cleanup']) + for e in c['cleanup']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['final'][r]==1 for r in regs) + scal(scalar(e,back),1) + event(['phase','done']) + return out + +def check_local(events,back): + # Literal scalar replay of the emitted stream, including center lifetimes. + state={('L',r):{r:Q(1)} for r in range(n)};live=[];paid=Counter();prims=0;macros=0 + for e in events: + if e[0]=='climb':assert not live;paid[e[5]]+=1 + elif e[0]=='center':assert live==[e[1]];paid[e[4]]+=1 + elif e[0]=='scalar': + op=e[1];tag=op[0];t=tuple(op[1]);macros+=1;prims+=2*primitive_bound(op) + if tag=='clear': + state[t]={} + if t[0]=='C' and t[1] in live:live.remove(t[1]) + elif tag=='copy':state[t]=dict(state.get(tuple(op[2]),{}));live.append(t[1]) + elif tag=='scale':state[t]={j:Q(op[2],op[3])*x for j,x in state[t].items()} + else: + s=tuple(op[2]);q=Q(op[3],op[4]);row=state.setdefault(t,{}) + if t[0]=='C' and t[1] not in live:live.append(t[1]) + for j,x in list(state.get(s,{}).items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + assert not live and all(not row for r,row in state.items() if r[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r2*maxchild**depth +assert local_bound<1<<48 and logical<1<<6050 and router0 + bound=max(math.ceil(36/gap**2),math.ceil(2*(4+512)/gap)) + assert bound*gap**2>=36 and bound*gap>=2*(4+512) + cutoffs.append(str(bound));chain.append(z) +bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1}, + 'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} +q=chain[-1]*(1-2*eta);ticks=(1-eta)*q/(1+q)/grid;kap=Q((ticks.numerator-1)//ticks.denominator,10**18) +assembly=Outer.assembly(chain[-1],b,bridge,kap,eta=eta,beta=beta) +try:Outer.assembly(chain[-1],b,bridge,kap+grid,eta=eta,beta=beta) +except AssertionError:pass +else:raise AssertionError('next kappa grid accepted') +result={'status':'PASS_NEW_STRUCTURAL_PROGRAM_AND_FINITE_ASSEMBLY_PENDING_REPLAY', + 'canonical_word_sha256':sha(cp),'scalar_audit_sha256':sha(OUT/'SCALAR-FRAME-AUDIT.json'), + 'exact_phase_receipt_sha256':sha(OUT/'CLIFFORD-REVIEW.json'),'global_template_sha256':hashlib.sha256(blob).hexdigest(), + 'local_program_checks':checks,'R':R,'m':m,'live':W,'physical':physical, + 'bank_assignments':len(assignments),'rank_mass':mass,'deficit':2496, + 'global_profile':dict(sorted(paid.items())),'emitted_local_events_all_calls':event_count, + 'finite_invoice':{'local_primitive_bound':local_bound,'local_adapters':adapters, + 'pervertex':pervertex,'physical_stock_bits':stock.bit_length(), + 'router_bits':router.bit_length(),'literal_bits':literal.bit_length(), + 'physical_row_coefficient':row,'retained_row_coefficient':20161, + 'compiler':compiler,'G_exponent':30000,'E_exponent':100000,'C0_exponent':210000, + 'required_C0_bits':(32*m*BB*BB).bit_length(),'halving_degree':depth, + 'halving_integer_inequality':[m**depth,2*maxchild**depth]}, + 'complex_b':str(b),'bit_c':str(bit),'prospective_kappa':str(kap),'kappa_float':float(kap), + 'log2_kappa':math.log2(float(kap)), + 'kappa_gain_percent':float(100*(kap/Q(998390813251625,10**18)-1)), + 'strict_outer_constraints':{name:str(z) for name,z in assembly['strict_constraints'].items()}, + 'next_kappa_grid_rejected':True,'bootstrap_cutoffs_log2':cutoffs, + 'scope':'New finite scalar interface with a written conjugation proof, conditional on inherited all-size compiler, precision/tape and analytic transfer. Independent emitted-program replay and fresh package replay still required before final promotion.'} +(OUT/'INTEGRATION.json').write_text(json.dumps(result,indent=2)+'\n') +print('PASS prospective kappa',float(kap),'gain',result['kappa_gain_percent'],'percent',flush=True) diff --git a/research/early-reset-source-banks/vendor/pr433/code/complex_phases.py b/research/early-reset-source-banks/vendor/pr433/code/complex_phases.py new file mode 100644 index 0000000000..6f199bc139 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/code/complex_phases.py @@ -0,0 +1,22 @@ +"""Bind unchanged exact phase evidence, or regenerate all selected phase pairs.""" +import gzip,hashlib,json,os,subprocess,sys +from pathlib import Path +P=Path(__file__).resolve().parent.parent;O=Path('split-centres') +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +c=json.load(gzip.open(O/'CANONICAL-WORD.json.gz')) +r=json.loads((P/'inputs/complex-phase-receipt.json').read_text()) +raw=gzip.decompress((P/'inputs/complex-phase-recipes.json.gz').read_bytes());recipes=json.loads(raw) +assert sha(O/'CANONICAL-WORD.json.gz')==r['canonical_word_sha256'] +assert hashlib.sha256(raw).hexdigest()==r['recipe_sha256'] +edges=set(map(tuple,c['edges']))|{(a,b) for f in c['center_frames'] for a,b in ((f,0),(0,f))} +assert {(z['old'],z['new']) for z in recipes['children']}==edges +assert len(recipes['children'])==len(edges) and len(recipes['endpoint_adapters'])==240 +for z in recipes['children']:assert z['rank']==abs(len(c['frames'][z['old']])-len(c['frames'][z['new']])) +if os.environ.get('E8_REPLAY_PHASES')=='1': + subprocess.run([sys.executable,'-B',str(P/'code/complex_phases_full.py')],check=True) + assert (O/'CLIFFORD-RECIPES.json').read_bytes()==raw +else: + (O/'CLIFFORD-RECIPES.json').write_bytes(raw) + r['validation_mode']='Reuse exact phase evidence bound to the unchanged canonical word and recipe hashes' + (O/'CLIFFORD-REVIEW.json').write_text(json.dumps(r,indent=2)+'\n') +print('PASS source-bound phase recipes',len(edges)) diff --git a/research/early-reset-source-banks/vendor/pr433/code/complex_phases_full.py b/research/early-reset-source-banks/vendor/pr433/code/complex_phases_full.py new file mode 100644 index 0000000000..b5a5bd64b4 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/code/complex_phases_full.py @@ -0,0 +1,39 @@ +# Adapted from PR425 for heterogeneous centres by icekylinx with Codex assistance. +"""Exact phase-aware lowering of every used edge of the new structural word.""" +import gzip,hashlib,json,sys,time +from collections import Counter +from pathlib import Path +sys.path.insert(0,str(Path('work/odd-stages').resolve())) +from clifford_exact import * + +OUT=Path('split-centres');P=OUT/'CANONICAL-WORD.json.gz' +c=json.load(gzip.open(P));n=c['h'];frames=c['frames'];start=time.monotonic();ops=[] +for U in frames: + op=canonical_frame(n,U) + L=[u|(u<>(y.bit_length()-1)&1:x^=y + if x:return False + return True +def local(events,back): + rows={('L',r):{r:Q(1)} for r in range(n)} + norm={('L',r):Q(1) for r in range(n)};prefix=Q(1);cur=c['start'].copy();private={} + hist=Counter();phases=[];entry=[];exit=[];centers=[];matrix_hash=hashlib.sha256() + allowed=['zero_frame_precondition','entry_adapters','A','centers','B','final','exit_adapters','full_frame_cleanup','done'] + for event in events: + tag=event[0] + if tag=='phase': + phases.append(event[1]);assert phases==allowed[:len(phases)] + if event[1]=='A':assert entry==list(enumerate(c['start'])) + if event[1]=='centers':assert all(cur[r]==0 for r in range(v,2*v)) + if event[1]=='full_frame_cleanup':assert cur==c['final'] and exit==list(enumerate(c['final'])) + assert not private + elif tag=='adapter': + assert event[3]==(c['start'] if event[1]=='old_to_new' else c['final'])[event[2]] + (entry if event[1]=='old_to_new' else exit).append((event[2],event[3])) + elif tag=='climb': + _,part,r,a,b,rank=event + assert not private and phases[-1]==part and cur[r]==a + assert contains(frames[a],frames[b]) and rank==len(frames[b])-len(frames[a])>0 + hist[rank]+=1;cur[r]=b + elif tag=='center': + _,k,a,b,rank=event + assert phases[-1]=='centers' and private=={('C',k):a} + cf=c['center_frames'][k];cr=len(frames[cf]) + assert (a,b,rank)==((0,cf,cr) if back else (cf,0,cr)) + private['C',k]=b;hist[rank]+=1;centers.append(k) + elif tag=='scalar': + _,e,f=event;op=e[0];target=tuple(e[1]);source=tuple(e[2]) if op in ('copy','add') else None + if target[0]=='C' and op=='clear': + assert private.get(target,f)==f + private.pop(target,None) + else: + for r in (target,source): + if r is None:continue + if r[0]=='L':assert cur[r[1]]==f,('common frame',r,cur[r[1]],f) + else: + if r==target and r not in private:private[r]=f + assert private[r]==f + if op=='clear':rows[target]={};norm[target]=Q(0) + elif op=='copy':rows[target]=dict(rows[source]);norm[target]=norm[source] + elif op=='scale': + q=Q(e[2],e[3]);a,b=abs(q.numerator),q.denominator + assert a&(a-1)==0 and b&(b-1)==0 + rows[target]={j:q*x for j,x in rows[target].items()};norm[target]*=abs(q) + else: + q=Q(e[3],e[4]);a,b=abs(q.numerator),q.denominator + assert source!=target and b&(b-1)==0 + # Independent symbolic replay of the cleared coefficient work. + w=0 + for bit in bin(a)[2:]:w=2*w+int(bit) + assert Q(w,b)*(1 if q>0 else -1)==q + prefix=max(prefix,Q(a)*norm[source]) + norm[target]=norm.get(target,Q(0))+abs(q)*norm[source] + row=rows.setdefault(target,{}) + for j,x in list(rows[source].items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + prefix=max(prefix,norm[target]) + else:raise AssertionError(tag) + assert phases==allowed and centers==list(range(len(c['centers']))) and not private + assert all(not row for reg,row in rows.items() if reg[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r x + ((q+e_j).x)(q+e_j). Its remaining columns are an orthonormal basis +of q^perp. For s>0, rho_s,q exchanges that complement in the local block +with exterior block s and fixes q and all other exterior coordinates. +It is a symmetric orthogonal involution. The stage data owners are +g=d*rho_s,q, with rho_0,q=I, so the right factors are bijections of O(73,2). + +Use canonical data levels X_s=C_[0,9+8s), Y_s=X_s C_q^(-1), and initially +X_(-1)=C_q, Y_(-1)=I. The routed stage starts at level s-1 and ends at level s. +Their binary preimages agree with the window endpoints. Exact phase +polynomials determine the translation that reconciles each endpoint, and +the template applies that translation. There are 3840 nonzero such +translations across the 120 port types and nine stages, before replica +multiplicity. These operators are not silently identified from equal +binary matrices. + +Four-pair scalar chain and idle children + +Starting with F_0 (Y_0 += X_0), for j=0,1,2,3 apply B_j (X_j -= Y_j), +then for j<3 apply X_j += X_(j+1), Y_(j+1) -= Y_j, apply F_j, and undo +that bridge. The last pair has B_3,F_3 without a following bridge. +Afterwards apply, in descending j=2,1,0, X_(j+1)+=X_j and Y_j-=Y_(j+1). +Finally exchange each pair by newX=oldY, newY=-oldX. The complete signed +integer scalar matrix is the identity; omission of every bridge fails. + +Before a bridge, advance the idle pair to the active pair's level. The +two advances for the newly used pairs have ranks (16,8), (32,8), (48,8). +The final advances have ranks 48,32,16,0. Each rank occurs on both members +of the pair, each of 120 ports, and each of eight replicas. A nested idle +transition is factored in the explicit orthonormal basis U_q direct_sum I. +Its exact Z4 phase is reconciled by the stored translation after that child. + +The final Y endpoint is C_all C_q^(-1). A source began at C_q, so its +unadjusted exchange route would be C_all C_q^(-2)=C_all X_q. Applying the +literal X_q to each final Y before the signed exchange removes this factor. +The corresponding 120 omission controls fail. This correction is charged. + +Banks and arbitrary correlated dirt + +There are eight replicas of each of the four data pairs, hence 7680 data +families. Each stage has 783 independent bank families. Number a local +helper occurrence by z=783*replica+helper. It uses bank floor(z/8) and slot +z mod 8, with its nine-dimensional residual assigned to coordinates +[9*slot,9*slot+9). A paid coordinate C child at coordinate 72 completes +each bank. All eight whole residuals and this padding fill dimension 73. +Thus there are 9*783=7047 bank families and live stock 14727. + +Let Pi_slot swap the first nine coordinates with the assigned block. The +local invocation at class d uses the bank class g=d*Pi_slot^(-1). Its +residual at that owner is P_g C_block P_g^(-1). Right multiplication is a +bijection. Local helpers sharing one bank have distinct slots, hence +different right factors and different actual bank classes for every d. +All data and private families are disjoint from banks. The checker verifies +these injections for all 72 invocation/replica templates and 56376 residual +assignments. A complete cover sweep for one replica finishes before the +next begins. The local dirty invocation is block diagonal on helpers at +its endpoint and permits arbitrary correlated helper values. Therefore +overlap between different invocations does not impose a cleanliness or +independence assumption. At each bank class, the eight residuals and the +padding are coordinate factors in one common conjugated basis, and their +exact product is P_g C_all P_g^(-1). + +One more exact correction is essential. Orthogonality alone does not imply +that P_g commutes with C_all as an exact operator. In fact + P_g C_all P_g^(-1) = C_all X_delta(g), + delta(g)_i = (weight(row_i(g))-1)/2 mod 2. +The quadratic terms cancel by row orthogonality and the remaining even +linear terms give the displayed translation. Both sides fix the uniform +vector, fixing the global scalar. Apply X_delta(g) to EVERY final live +family in cover class g, after the bank padding and signed data exchange. +The template includes and charges all 14727 corrections per cover. This +identity is also checked on every orthogonal matrix in dimensions 1..5. + +Finite work and recurrence charges + +The source emitter is regenerated and revalidated in both orientations. +It accounts for 1242936 local events over 72 invocations, with all copied +center and dirty-tableau lifetimes intact. Forward and backward scalar +words freshly replay all 1023 independent dirty live columns. Only the +private work starts at zero. Work comprises 783 tableau streams, nine +reserved center streams (eight used), and one coefficient stream. Each +invocation completes and erases its private work before the next. Physical +stock is therefore 15520 per cover; scalar-only work is excluded from the +recursion-volume denominator. + +GLOBAL-REVIEW.json records the complete recomputed finite overcharge, with +64*(73+1)^3 compiler groups per rank-zero adapter, source-counted scalar +primitives, and overcharges for all data routes, bank selectors, phases, +padding, bridges, exchanges and cover corrections. The O(73,2) order is +2^(36^2)*product(2^(2i)-1,i=1..36); its bit length is 2628. The recomputed +router fits 2^30000, the literal charge fits 2^100000, and the precision +guard fits C0=2^210000. No even-dimensional orthogonal-order formula is used. + +Largest child 48 does not satisfy one-layer halving. Instead +73^2=5329>2*48^2=4608, so two nested children have width strictly below +half the parent, including floors. The general depth is bounded by +2*ceil(log2 e), with direct small leaves. For B=s+E the completed-child +semantic induction has 2B(73-48)-s-E=49B>0. The resulting conservative +complete-row coefficient is 2*2642+9909+252=15445<20161, retaining the +external bit/base-row allowance as an explicit interface assumption. +The inherited bad-branch envelope is priced conservatively as before. + +Two independent rational moment engines admit +b=999240641319551/10^18 and exclude b+10^-18 for the source-bound profile. +The rank mass is 1072575, and 73*14727-1072575=2496=8*(8*120-9*72). +This complex component exceeds 1/1024 but does not improve the current +bit bottleneck. No improved final kappa or completed PR milestone follows. diff --git a/research/early-reset-source-banks/vendor/pr433/proofs/PR386-BIT-GEOMETRY.txt b/research/early-reset-source-banks/vendor/pr433/proofs/PR386-BIT-GEOMETRY.txt new file mode 100644 index 0000000000..31efe31268 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/proofs/PR386-BIT-GEOMETRY.txt @@ -0,0 +1,191 @@ +Compressed nine-stage E8 bit supplier and combined conditional bound + +Claim and source assumptions + +The conditional combined value is + kappa = 998243154231047 / 10^18 = 0.000998243154231047 > 1/1024. +It is approximately 2^-9.9683211064. This is a conditional finite construction +in the inherited supplier framework, not a Lean proof of integer multiplication. +No priority claim is made. + +The E8 bit word, its 120 root lines, all 865 helpers, and nine retained totals +are taken without modification from Dylan Crow's PR #370, commit +b7fe9cdf2da009c947ff6b334c562bc190b30373. Its raw word has SHA256 +1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55. +The original verification is rerun, including regeneration, independent +1105-column F2 checking, official record legality/formal columns, all-frame +Gram and prime witnesses, negative controls, and the original regression set. +Its five-stage c is 904072820242522/10^18, insufficient by itself for -10. + +The complex supplier is the separately reconstructed compressed nine-stage +component from PR #377, with b = 999240641319551/10^18. Its complete source, +notices, exact Clifford and Z4 phase checks, global template and finite bill +remain included. In particular, its terminal X_q and every-live-family +X_delta(g) corrections are retained; equality of binary matrices is not +substituted for equality of complex operators. + +The inherited all-size weighted bit compiler, tape/prime/precision and +analytic transfer interfaces remain conditional. PR #370's explicit admission +of nine copied totals at h=8 is retained. The complex local E8 theorem, +Clifford compiler, common fine-grid, restored-row and analytic interfaces +remain conditional exactly as stated in the companion component. The new +window, banking and two-level finite charges are described below rather +than inferred from a rank histogram. + +Exact bit operators and compressed ambient space + +Over an admitted odd address field, the E8 form is G=I_8/2. For a nondegenerate +subspace U, write P_U for its orthogonal projector. On the doubled address +space define + D_U = [[I-P_U, P_U], [P_U, I-P_U]]. +Thus D_U is an exact involution. If U is contained in V then +D_V D_U = D_(V intersect U-perp), with rank dim(V)-dim(U). Also + D_I D_P = D_(I-P). +These are literal address matrices. Unlike the complex C operators, they +have no hidden scalar phase. The auditor reconstructs all 944 rational +projectors and checks all 3289 used nested pairs, in both orientations. + +Set V_global = Q^8 direct_sum (Q^7)^8, m=64, with form I_64/2. +Let E_s be the first s exterior 7-blocks, s=0,...,8. At stage s lift the +entire local word by replacing U with U direct_sum E_s. Both ends of every +local transition contain the same E_s, so it cancels exactly; the child +projector and rank are unchanged. This holds for copied totals as well: +the temporary transforms between the source and scatter frames, whose +common E_s cancels. COPY/ERASE windows remain sequential and immutable. +No assumption that m is a multiple of 9h is used. + +Port routes + +The reference root is q*=2e_0. For every root q, the checked product g_q +of at most two E8 root reflections sends q* to plus or minus q. Let A_q be +its last seven columns. They form an orthonormal basis of q-perp: + A_q^T A_q=I_7, A_q A_q^T=I_8-P_q, P_q=q q^T/4. +For stage s>0 use, on the local block and exterior block s, + rho_(s,q) = [[P_q, A_q], [A_q^T, 0]], +and fix all other coordinates. For s=0 use the identity. These matrices +are orthogonal involutions. Conjugating the lifted endpoints gives + (P_q,E_s) -> (I_8,E_(s-1)), (I_8,E_s) -> (I_8,E_s), + (0,E_s) -> (I_8-P_q,E_(s-1)), + (I_8-P_q,E_s) -> (I_8-P_q,E_s). +These equalities are checked as exact rational matrices for every port. +Each nontrivial route has a replayed elementary factorization, at most +77 factors, with denominators 1,2,4. Omitting a factor fails. Thus all +routes remain defined at every odd address prime; there is no new odd +exceptional prime. The existing local prime witnesses are rerun separately. + +Nine-stage scalar recipe and deferred endpoint completion + +Use four data pairs (X_j,Y_j). Start with F_0: Y_0 += X_0. For j=0,...,3, +apply B_j: X_j -= Y_j; when j<3 insert the two shears + X_j += X_(j+1), Y_(j+1) -= Y_j; +apply F_j; then undo those two shears. After all stages, for j=2,1,0 apply + X_(j+1) += X_j, Y_j -= Y_(j+1). +Finally replace (X_j,Y_j) by (Y_j,-X_j). The complete signed integer +8-by-8 scalar matrix is the identity. Omitting any of the eighteen +individual bridge shears changes it. + +Each B_j is the reflected inverse of the actual local record stream: +reverse the order, negate ADD coefficients, replace U by U-perp, and +turn ERASE into a fresh COPY from the original unchanged center. No erase +is inverted. PR #370 stores zero in the ERASE rank field; the reflected +COPY rank is freshly derived from its two frames, giving rank 8. Both +oriented streams replay all 1105 independent input columns and close work. + +Before each bridge the newly used pair is advanced to the active level. +The two idle increments are (14,7), (28,7), (42,7). Endpoint completion of +the earlier pairs is deferred to the final stage, with ranks 42,28,14,0. +Every increment acts on both members of every port pair and every replica. +The schedule checker requires equal complete frames at every bridge. +The signed terminal exchange completes the data transform using the exact +identity D_I D_P=D_(I-P). Scalar replay on 8745 independent columns includes +960 data and 7785 separate stage-helper inputs. All are restored after +the exchange; the reflected copy work closes to zero. + +Whole-block banks and arbitrary correlated dirt + +Use eight replicas. There are 4*2*120*8=7680 data families. For each stage, +number a local helper occurrence by z=865*replica+helper, and assign it +to bank floor(z/8), slot z mod 8. There are 865 banks at each of nine +stages. Each slot is one whole 8-dimensional coordinate block in Q^64. +The eight slots are mutually perpendicular and fill the ambient space; +no padding child is needed. Live recursion stock is 7680+9*865=15465. +Nine private center slots are reserved and excluded from recursion volume, +so charged physical stock is 15474. Only one such slot is used at a time. + +Let Pi_slot exchange the first eight coordinates with its bank block. +For a cover class d in O(I_64/2,F_q), the helper owner is the bank class +g=d Pi_slot^-1, and a data owner is d rho_(s,q). Right multiplication is a +bijection of the finite cover. Within every local invocation, helpers in +the same bank have different slots, hence different actual cover classes; +all data and work families are disjoint from banks. All 62280 assignments +are checked, and every physical bank receives each of its eight slots once. + +The local all-column theorem permits arbitrary helper inputs, including +correlations created by earlier invocations. After its endpoint each helper +has only the known residual D_H. The common E_s cancels, so no cleanliness +assumption is imposed by a previous bank action. Complete cover sweeps run +sequentially. At a fixed bank owner g the residuals are D on the eight +orthogonal coordinate blocks conjugated by g. They commute and multiply +to D_I. Since diag(g,g) commutes with the literal head/tail exchange D_I, +no complex-style cover phase correction is needed on the bit side. +This is a symbolic finite cover proof, not an enumeration of O(64,F_q). + +Actual emitted ledger + +The source-bound template emits 72 local invocations and 1355328 events. +All local COPY/ERASE and helper lifetimes are rechecked. Its paid profile is + 1:149472, 2:67824, 3:32256, 4:30096, 5:22176, 6:144, + 7:5760, 8:1296, 14:3840, 28:3840, 42:3840. +There are 320544 paid children, rank mass 987264 and deficit + 64*15465-987264 = 2496 = 8*(8*120-9*72). +The independent auditor recomputes the profile from the emitted template +and rejects missing idle/bridge/exchange/invocation events, bank-slot aliasing, +understated stock, a missing local MOVE and a wrong reflected COPY charge. + +Finite cost, precision allowance and two-level halving + +The largest child is 42, so one-level halving is false. Two levels suffice: + 2*42^2=3528 < 64^2=4096. +Floors only reduce descendant widths. The exact one-level moment, including +the inherited 10^-16 bad-branch envelope, is strictly below one; composing +two levels squares this contraction. The finite composite may be used with +the inherited halving-based compiler and direct small leaves. + +The old five-stage 104-bit payload-prefix guard is not reused. Fresh local +cancellation-free row bounds are 742 forward and 6308 reverse. For five +forward calls, four reflected calls and eighteen bridge shears, the bound + 2^18 * 742^5 * 6308^4 +has 117 bits. We explicitly charge 192 bits per nine-stage block. The actual +source operations, copy episodes, 77-factor routes, selectors, all owner +adapters and this prefix bound enter certify.py's finite coefficient. It +has 117 bits; the charged two-level coefficient has 269 bits and is bounded +by 2^512. This deliberately increases the finite cutoff, rather than passing +the old 104-bit assertion. The exact three bootstrap cutoff inequalities +are checked using the changed coefficient. + +For cover/routing enumeration use the inherited coarse q^(m^2+1) bound; +two levels and the retained additive row charges give + 2*(64^2+1)+9909+252 = 18355 < 20161. +The explicit rational bit routes introduce only powers of two. The new +finite constants fit well below the companion bridge's 2^30000 reserve, +and the common external C0=2^210000 and row allowance 20161 are retained. +As for the companion complex component, the general compiler/common-grid +interfaces are assumptions; no new Lean formalization is asserted. + +Exact price and combined assembly + +Two independent rational moment engines, both with the 10^-16 envelope, +admit c=1057833103534317/10^18 and reject c+10^-18. The complex supplier +therefore binds. With eta=10^-12 and beta=10^-9 choose + s=999240640320309/10^18 < (1-beta)*b < c. +Start a0=384599/10^10 and apply a_(j+1)=(1-s)s+s*a_j three times. The retained +outer assembly at (a3,b) admits kappa=998243154231047/10^18. All 47 strict +constraints are positive; the next 10^-18 kappa grid point is rejected. +The strict excess over 1/1024 is 21680654231047/10^18. Final kappa is about +24.0286% above frozen #361, within the explicitly retained assumptions. + +Attribution: Dylan Crow / Anthropic Claude for PR #370's new local bit word; +Jacob Sussman for E8 and the complex unit; the inherited source527, PR234, +PR266, PR315, PR346, PR352 and PR363 contributors as listed in the preserved +notices; Zhihao Chen with OpenAI Codex assistance for this compressed bit +composition, its independent audit, and the combined nine-stage package. diff --git a/research/early-reset-source-banks/vendor/pr433/proofs/PR425-COMPLEX.txt b/research/early-reset-source-banks/vendor/pr433/proofs/PR425-COMPLEX.txt new file mode 100644 index 0000000000..41061757ce --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/proofs/PR425-COMPLEX.txt @@ -0,0 +1,211 @@ +Hamming packets with mutable source and target bases +Conditional finite extension of the complex E8 supplier + +1. What is new + +The old r783 word keeps source values fixed and does not read target registers. +Those are sufficient restrictions on a scalar word, not necessary conditions +for a common-frame linear program. The new word uses 680 helper registers: + + * source registers themselves carry one branch of a simultaneous signed + packet computation; + * retired packet registers retain a full source basis, from which the eight + central coordinate sums are reconstructed; + * 56 pairs of targets carry a first two-output butterfly, with its input + basis explicitly compensated at frame zero and in the center decoder; + * an exact inverse on all source/helper registers is executed at their + common full frame after the last recursive climb. + +No recursive work is deleted from the ledger. A helper is counted for its +entire lifetime, including unused final climbs. All 120 sources and targets +retain their original line/full and zero/hyperplane endpoint ranks. + +The new local histogram is + {1:2248, 2:896, 3:168, 4:336, 5:392, 8:24, 9:8}. +Its rank mass is 9*680 + 240*8 + 72 = 8112. There are 4072 local children. +There are more local children than in the old r783 word, but substantially +less helper rank mass; the complete moment, not a count proxy, decides gain. + +2. Exact Hamming geometry and signed packet algebra + +Use the pinned PR370 table of 120 E8 root lines in Construction-A coordinates: +eight coordinate lines 2e_i and 112 sign lines on the 14 weight-four Hamming +blocks. For integer representatives r_s, let G_st = r_s dot r_t / 2. +The matrix C_st = 1 + G_st mod 2 has binary rank nine. The construction gives +an explicit orthonormal realization p_s in F_2^9 with + + p_s dot p_t = C_st, and p_s dot p_s = 1. + +Consequently the nonzero off-diagonal entries of G/2 occur only where a source +line lies in the target hyperplane. The rank-eight central factorization is + + (G/2)_ts = sum_i r_ti r_si / 4. + +For a source Hamming block d, a coordinate pair {i,j} in d, and epsilon=+-1, +define the signed face packet + + P(d,ij,epsilon) = sum_{s in d, r_si*r_sj=epsilon} r_si x_s. + +Each packet has four terms and its binary port span has rank three. Split +the eight sign lines of a block into its two parity tetrads. Each tetrad pair +occurs in two face packets with independent signed coefficient rows. The two +rows are formed simultaneously by two determinant-one shears, rather than +forming independent one-output sums. The packet factory uses its eight source +registers and sixteen additional helpers. Its twelve retired registers can +be oriented to retain a full rank-eight source basis. Exact elimination on +that stock produces four coordinate sums without allocating more helpers. + +This comparison of an individual factory is not a claim that the whole old +supplier used 48 helpers per block. The relevant complete counts are 783 and +680, both charged with their full actual profiles. + +For two target/source blocks whose intersection is {i,j}, the contribution +to target t is -r_ti P(d,ij,r_ti*r_tj)/2. The remaining within-block and +coordinate-line contributions are explicit four-output signed transforms. +Every one of the 14400 rational decoder entries is rechecked. Adding the +eight coordinate centers leaves precisely the identity matrix on sources. + +The binary transvection x -> x+(x dot 43)*43 is orthogonal because 43 has +even weight. It maps the constructed port set exactly to the old fixed E8 +port set. All frames and register indices are transported, so the old nine- +window data routes and their global phase correction apply to exactly the +same ordered ports, without introducing an unproved new covering geometry. + +3. General scalar-interface lemma + +Write z=(x,s) for the source and arbitrary dirty helper streams, and y for +the targets. Permit scalar additions and invertible dyadic scalings between +registers at the same current label. No target may feed a z register. The +raw A/center/B word therefore has block form + + z' = U z, + y' = V y + J x + K s, + +where U and V are invertible, and the retained-center operations are included +in J and K. The actual word has J=I after its adjusted center scatter. The +checks compute every coefficient over Q, rather than inferring it from a +desired sparsity pattern. + +At frame zero, before entry adapters or recursive children, execute + + y <- V^{-1} y - V^{-1} K s. + +Both y and s have label zero there. The code emits the literal inverse of +the 56 disjoint two-output target bases and a direct, charged dyadic old- +response matrix with 13216 additions. There is no uncharged oracle for K. +It is computed from the explicit scalar word and serialized. All coefficient +work is cleared immediately after its use. + +After the last main gate, finish every z register's climb to the full frame, +then execute U^{-1} by reversing and inverting the non-target gates. These +gates are legal at one common full frame, including helper-to-source gates. +The result is exactly + + (x,s,y) -> (x,s,y+x). + +The second orientation is the inverse transpose: negate and transpose every +addition and invert every scale in the SAME event order. Each retained +center is implemented by the transposed gather/child/scatter stream. The +result is (x,s,y) -> (x-y,s,y). Both orientations are replayed on all 920 +independent live columns, including all 680 arbitrary helper columns. +Missing compensation, missing output preconditioning, missing cleanup and +the wrong inverse-transpose order are rejected. + +Why the scalar argument lifts to exact complex labels: for each binary +subspace F use the exact canonical representative L(F). A climb from A to B +acts as L(B)L(A)^{-1}. If two registers share F, a scalar addition commutes +with their common L(F), as does a scalar scaling. Induction through the +actual stream therefore gives the block-diagonal conjugation of its scalar +matrix by the current labels. Center copies explicitly move from full to +zero, or zero to full in the other orientation. The preconditioner uses +only label-zero registers, and the z cleanup uses only full-label registers. +Thus the proof never moves a scalar operation across unequal labels or +identifies two frames merely because their ranks agree. + +Every used canonical frame, nested transition, center direction and endpoint +adapter is independently lowered by the exact Gaussian Clifford compiler. +Equalities include global phase. The old restricted gx gate-shape checker +is not used to admit this new interface; the stronger explicit matrix and +common-frame checks replace its source-immutability/target-read restrictions. +This is a written finite algebraic extension, not a new Lean theorem. + +4. Complete programs and work lifetimes + +Each orientation emits 27537 events, including startup, entry/exit adapters, +all recursive climbs, eight sequential center children, scalar operations +and final cleanup. Temporary centers are initialized, used and erased one +at a time. No center or coefficient work stream survives a live child. + +All added coefficients are dyadic. To apply a/2^j, compute |a| times the +source by binary Horner additions on a cleared private stream, halve j +times, accumulate with its sign, and clear the private stream. In-place +scales are signed powers of two. Every such primitive is charged. This +introduces no new denominator prime. Independent replay bounds the actual +cancellation-free prefix norms, including coefficient work; a 192-bit local +payload allowance is retained conservatively. + +5. Nine-window composition and finite bill + +Use the previously verified m=73 compressed nine-window geometry, four data +pairs, eight replicas, and the original signed bridges, idle children, +terminal exchange, terminal translations and full-cover phase correction. +The source scalar identity and its negative inverse-transpose are exactly +the two local interfaces consumed by that unchanged geometry. + +There are 680 whole-block banks per stage, each containing eight rank-nine +helper blocks plus one paid rank-one padding child. The live width is + + W = 240*4*8 + 9*680 = 13800. + +The conservative physical width is W+680+9+2=14491. The old-response matrix +uses no persistent tableau, but the old-size reserve is still charged. +The emitted owner table has 48960 distinct stage/replica/helper assignments. +The new global profile is + + {1:167976, 2:64512, 3:12096, 4:24192, 5:28224, + 8:7488, 9:576, 16:3840, 32:3840, 48:3840}. + +Its rank deficit is 73*13800 - sum(r*H_r) = 2496. The maximum child is 48, +and 73^2 > 2*48^2 supplies the same charged two-level halving argument. + +The finite bill is recomputed from the new scalar programs, bank owners, +work stock and adapter counts. It is not asserted unchanged. The local +primitive bound fits 2^48; the tape router fits 2^30000; the literal envelope +fits 2^100000; the precision envelope fits 2^210000. The physical row +coefficient is 15445, below the explicitly inherited external allowance +20161. Full-cover corrections apply to all 13800 live families. + +6. Conditional numerical conclusion and retained assumptions + +Two independent rational moment engines, with the inherited 10^-16 bad- +branch envelope, accept + + b = 1049104978040580 / 10^18 = 0.001049104978040580 + +and reject the next 10^-18 grid point. With the unchanged bit parameter +c=0.001057833103534317, three bootstrap steps and all 47 strict outer +conditions give the prospective finite-assembly value + + kappa = 1048005508028206 / 10^18 + = 0.001048005508028206, approximately 2^-9.898137985359. + +The finite statement is conditional on the same all-size weighted compiler, +common fine grid, restored-row/base allowance, tape/prime/precision and +analytic transfer interfaces as the retained nine-stage result. The new +scalar-interface lemma above and its serialized program are additional +reviewable material, not an appeal to gx accepting a program outside its +grammar. No unconditional integer-multiplication theorem is claimed. +The result is approximately +4.97% over the locally verified retimed bound, +and remains well short of 2^-9. A fresh extracted-package replay is required +by this research workflow before publication or final promotion. + +Attribution + +The root table and the motivation to use Hamming coordinates come from the +already pinned PR370 bit package (Dylan Crow, with Anthropic Claude assistance). +The E8 complex label family, original scalar word and gx interfaces are due +to Jacob Sussman. The retained complex admission, pricing and global analytic +interfaces are credited in the original package notices and PROOF.txt. +The mutable-basis packet word, transported geometry, expanded scalar proof, +new finite program and the present checks were developed in this local +research session by Zhihao Chen with OpenAI Codex assistance. diff --git a/research/early-reset-source-banks/vendor/pr433/proofs/PR426.md b/research/early-reset-source-banks/vendor/pr433/proofs/PR426.md new file mode 100644 index 0000000000..e589cfbf50 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/proofs/PR426.md @@ -0,0 +1,108 @@ +# Construction, dependencies and sufficient argument + +The fixed complex witness starts from Chafik Boukhalfa's far-retimed E8 word +and applecrusher's two equal-helper substitutions and two frame refinements. +It additionally replaces helper 556 by -2 times helpers 354 and 461, then +helper 576 by -2 times helpers 402 and 478 after compaction. Exact clean +linear forms agree at every substituted read. The backward upper-frame and +forward nested repairs retain copied-total pins and final address caps. +R is 779. The actual new dirty response and cleanup are regenerated: equality +on clean values alone is not the arbitrary-dirt proof. + +The signed prefix restoration is the PR390/395 bracket. For 25 disjoint +targets, subtract lambda times the donor before the prefix, emit the exact +source/write-version/frame difference, and restore lambda times that donor +at the common recovery frame. Lambda is +1 or -1. The full rational main +operator and all retained totals agree with the explicit same-width R779 +baseline on all 1,019 independent columns. Source/helper subwords agree +exactly, so the new baseline's explicit dirty response and cleanup remain +valid. The changed compiler permits a main Y read only when its target is Y; +helper-to-X remains forbidden. Both signed orientations and private lifetimes +are freshly admitted, with all actual Clifford phases and physical incidences. + +The shared entrance construction follows PR401/404. Each pivot p satisfies +K_p + sum_d a_pd K_d = 0 in the explicit baseline response. Four re-pivots +from PR412 replace the basis of these same relations, including the +half-valued donor that otherwise fails the original sixths-denominator +condition. PR410 enlarges eight entrance subspaces. Removed original helpers +556 and 577 are mapped explicitly onto our R779 word. The shared layer has +192 pivots, rank mass 350, and 496 literal unit shears. Its pivots and donors +are disjoint, so this layer alone has (S-I)^2=0. + +PR409's four ordered groups, with PR412's two additional re-pivots, prepend +55 more shears and admit ten further pivots. The combined word has 202 +gauges of rank mass 360 and 551 entrance shears. The complete chronological +prefix need not have (S-I)^2=0. We check its actual product M S, all retained +totals, and that every gauged target-response column is zero. Every entrance +source is read before any earlier entrance operation writes it. + +Every one of the 551 omission controls is recomputed from the suffix +response. If shear t += q s is removed, its suffix response is multiplied +by -q times the original independent s column: earlier operations leave s +unchanged by the read-before-write condition. A nonzero response is required +for each omission; the entire changed scalar schedule is also replayed for +sampled omissions. No global donor/pivot disjointness is assumed here. Both +unchanged original gx.check1 and gxcore.mirror checkers pass, including the +native denominator conditions. Every actual nested transition is charged. + +PR376's additional target201/helper491 frame change from rank eight to seven +is checked for full operator equality and nested paid paths before gauging. +PR404's target125/124 overlapping-prefix recovery requires a different +chronological input and is not imported. Its numerical gain is not included. + +Each entrance chart is normalized explicitly. Even and degenerate E_p use +the full two-sided exact Clifford factorization of F T_E inverse. The right +inverse adapter precedes the entire old-response invocation; the left inverse +adapter follows all main and helper cleanup. Both orientations retain every +unitary address operator in the inverse-adjoint chronology. Rank-zero adapters +are costed. All old/new/reflected Gaussian child pairs are recomputed, +including Pauli signs and global phase. Newly assigned mixed-bank coordinate +permutations and inverse owners are emitted and independently decoded. +Padding is an exact fixed integer witness, not a claim of solver optimality. + +The new bit operation differs from the preceding all-dirt reset: a retired +helper only needs its clean X-content zeroed before a new logical helper is +placed in the same slot. An arbitrary residual helper value is allowed. The +new helper basis determines a newly computed initial D compensation. C is +the reversed helper subword, restoring every physical helper, including its +original independent dirt. Each reset is checked exactly before reuse; the +retired slot has no later original use, the new helper has no earlier use, +and copied totals are protected. The combined word is checked over every +independent binary column. It uses 55 fewer helpers (822 to 767). The initial 27 reuses and 26 frame +moves are followed by two fixed rounds of 14 reuses and 14 frame moves. +The later resets use exact two- or three-parent clean forms; every parent +and all rebuilt dirty compensation are charged and independently checked. Integer signed-prefix bounds, lifting, +copied-center controls, routes and whole-bank packing are recomputed rather +than inferred from the clean calculation. + +The complex assembly has dimension 73, 14,286 live and +15,075 physical families, 734 banks per stage, deficit 2,496, +maximum child rank 48 and halving degree two. The bit assembly has dimension +56, 10,409 live families, deficit 1,512 and halving degree two. Actual row +coefficients fit the common 20,161 reserve. Both finite invoices and both +exact rational moment engines retain the positive 10^-16 fallback. Adjacent +10^-24 complex coarse grid points are rejected; the unchanged bit coarse +grid remains 10^-18. The exact outer assembly uses positive eta=10^-24, +beta=10^-18, eight finite bootstrap continuations and a 10^-27 grid; it +checks 47 strict constraints and invalid eta/beta/adjacent-point controls. + +The complex coefficient is 254951444354246755323/250000000000000000000000. The bit coefficient is +104575879789097/100000000000000000. The resulting conditional kappa is 40750673324589432209923/40000000000000000000000000. +Using the preceding unchanged bit supplier with this same complex coefficient +gives 203354853562950029967497/200000000000000000000000000, where the bit side +binds. The new clean-reuse bit supplier removes that bottleneck. Its exact +additional kappa contribution is recorded as the difference from this fair +control; the combined witness is limited by the new complex coefficient. + +All original files are manifest-bound and immutable. A copied supplier tree +is changed only through asserted literal edits. DERIVATION.json records every +old/new digest, changed pin and textual difference. Both full predecessor +supplier suites run before the changed admission. Expected records are checked +after recomputation, rather than used to obtain a PASS. + +This is a sufficient finite conditional construction. The inherited all-size +recursive suppliers, canonical/rank-zero compiler, compressed Clifford windows, +dirty banking/cover, routing, restored-row, fixed tape, common-grid, Gaussian +precision/recovery and analytic interfaces remain assumptions. No new full +Lean theorem or unconditional integer-multiplication exponent is asserted. +The target kappa > 0.002 is not attained by this witness. diff --git a/research/early-reset-source-banks/vendor/pr433/vendor/clifford_exact.py b/research/early-reset-source-banks/vendor/pr433/vendor/clifford_exact.py new file mode 100644 index 0000000000..166841a037 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/vendor/clifford_exact.py @@ -0,0 +1,149 @@ +"""Small exact Gaussian-dyadic Clifford compiler, independent of gx internals. +Paulis use i^p X^x Z^z. State vectors use integer Gaussian numerators / 2^d. +The tableau is supplemented by a literal circuit, so global phases are kept. +""" +from dataclasses import dataclass + +def parity(x):return x.bit_count()&1 +def rank(rows): + p={} + for x in rows: + while x: + b=x.bit_length()-1 + if b not in p:p[b]=x;break + x^=p[b] + return len(p) +def transpose(rows,n):return tuple(sum(((rows[j]>>i)&1)<>j&1);a[j],a[k]=a[k],a[j] + for i in range(n): + if i!=j and a[i]>>j&1:a[i]^=a[j] + assert [r&((1<>n for r in a) +def basis_extend(cols,n): + out=[] + for x in list(cols)+[1<len(out):out.append(x) + assert len(out)==n + return tuple(out) +def nullspace(rows,n): + a=list(rows);p=[];k=0 + for j in range(n): + t=next((i for i in range(k,len(a)) if a[i]>>j&1),None) + if t is None:continue + a[t],a[k]=a[k],a[t] + for i in range(len(a)): + if i!=k and a[i]>>j&1:a[i]^=a[k] + p.append(j);k+=1 + return tuple((1<>j)&1)<>i&1:out=pmul(out,T[i]) + for i in range(n): + if z>>i&1:out=pmul(out,T[n+i]) + return out +def compose(A,B):return tuple(apply(A,p) for p in B) +def inverse(T): + n=len(T)//2;cols=[x|(z<>n;u,v,p=apply(T,(x,z,0));assert (u,v)==identity(n)[j][:2];out.append((x,z,(-p)%4)) + return tuple(out) +def qvalue(Q,alpha,x,n): + return (sum(alpha[i] for i in range(n) if x>>i&1)+2*sum(parity((Q[i]>>(i+1))&(x>>(i+1))) for i in range(n) if x>>i&1))%4 +def mul_i(a,p): + x,y=a;p%=4 + return [(x,y),(-y,x),(-x,-y),(y,-x)][p] +@dataclass +class Op: + n:int + tab:tuple + circuit:list + def then(self,b): + assert self.n==b.n + return Op(self.n,compose(b.tab,self.tab),self.circuit+b.circuit) + def adjoint(self): + circ=[] + for e in reversed(self.circuit): + if e[0]=='P':circ.append(('P',inv(e[1],self.n))) + elif e[0]=='D':circ.append(('D',e[1],tuple((-x)%4 for x in e[2]))) + elif e[0]=='C':circ.append(('C',e[1],-e[2])) + elif e[0]=='phase':circ.append(('phase',(-e[1])%4)) + else:circ.append(e) + return Op(self.n,inverse(self.tab),circ) + def zero_state(self,basis=0): + N=1<>i)&1 for i in range(n)) + assert all(alpha[i]%2==(Q[i]>>i)&1 for i in range(n)) + return Op(n,tuple([(1<>i&1 else 0,1<>i&1 else 0) for i in range(n)]),[('C',q,sgn)]) +def xgate(n,b):return Op(n,tuple([(1<>i)&1)) for i in range(n)]),[('X',b)]) +def fourier(n,axes=None): + out=ident(n) + for i in range(n) if axes is None else axes:out=out.then(cgate(n,1<len(selected):picks.append(j);selected.append(x) + assert len(picks)==r and all(x>>r==0 for x in Bcols) + Br=transpose(selected,r);Bi=inv(Br,r);Dr=transpose([Dcols[j]&((1< 2: + x /= 2 + k += 1 + lo, hi = log_unit(x) + l2, u2 = log_unit(Q(2)) + lo, hi = lo+k*l2, hi+k*u2 + # Outward rational rounding keeps later certificates compact. + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + + +def exp_bounds(x): + require(0 <= x < 1, "exponential range") + term = total = Q(1) + for j in range(1, 13): + term *= x/j + total += term + tail = term*x/13/(1-x/14) + return total, total+tail + + +def moment(m, W, entries, saving): + lo = hi = Q(0) + for t, count in entries: + t, count = int(t), int(count) + require(0 < t < m and count > 0, "improper child") + l, u = log_bounds(Q(m, t)) + lower = exp_bounds(saving*l)[0] + upper = exp_bounds(saving*u)[1] + lo += Q(t*count, m*W)*lower + hi += Q(t*count, m*W)*upper + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + diff --git a/research/early-reset-source-banks/vendor/pr433/vendor/engines/moment.py b/research/early-reset-source-banks/vendor/pr433/vendor/engines/moment.py new file mode 100644 index 0000000000..7d697cb452 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/vendor/engines/moment.py @@ -0,0 +1,113 @@ +"""Independent prospective ordinary five-stage cost, never supplier admission. + +Consumes a raw one-invocation ledger made from the actual source/internal/target +paths. No packed profile is used as an input. Missing physical/finite/compiler +obligations must remain explicit in the accompanying report. +""" +from collections import Counter +from decimal import Decimal, localcontext, ROUND_FLOOR +from fractions import Fraction as F +from functools import lru_cache +from math import factorial +import hashlib, json, sys +from pathlib import Path + +DYAD = 1 << 224 + +def floor(x): return F(x.numerator*DYAD//x.denominator, DYAD) +def ceil(x): return -floor(-x) + +@lru_cache(None) +def logarithm(x): + """Mercator bounds after binary reduction; ln(2) via two Mercator sums. + + For 1 <= y < 2, log(y) is an alternating series in z=y-1. + We instead reduce to 1 <= y < 3/2, and bound log(3/2) and + log(2) by the same alternating series at z=1/2 and z=1/3, + using log(2)=log(3/2)+log(4/3). All sums are exact rationals. + """ + assert x >= 1 + k = 0 + while x >= 2: x /= 2; k += 1 + j = int(x >= F(3, 2)) + if j: x /= F(3, 2) + def mercator(y): + z=y-1 + assert 0 <= z <= F(1,2) + # An even partial sum is below log; the next term bounds its tail. + t=z; s=F(0) + for n in range(1, 225): + s += (t if n & 1 else -t)/n + t *= z + return s, s+t/225 + a,b=mercator(x); c,d=mercator(F(3,2)); e,f=mercator(F(4,3)) + return floor(a+(k+j)*c+k*e), ceil(b+(k+j)*d+k*f) + +def exponential(l,u): + assert 0 <= l <= u < F(1,10) + def poly(x): + s=t=F(1) + for j in range(1,25): t=t*x/j; s+=t + return s,t + lo,_=poly(l);hi,last=poly(u) + return floor(lo),ceil(hi+last*u/25/(1-u/26)) + +def moment(H,m,W,a,bad=False): + lo=hi=F(0) + for r,n in H.items(): + assert 0 < r < m and n > 0 + l,u=logarithm(F(m,r)); e,f=exponential(a*l,a*u) + p=F(r*n,m*W);lo+=p*e;hi+=p*f + if bad: + # Existing envelope shape, only conditionally portable to the new cover. + l,u=logarithm(F(m));e,f=exponential(a*l,a*u) + p=F(32*m*sum(H.values()),10**16*W) + lo+=p*e;hi+=p*f + return floor(lo),ceil(hi) + +def decimal(x): + with localcontext() as c: + c.prec=70 + return str(Decimal(x.numerator)/Decimal(x.denominator)) + +def certify(H,m,W,bad=False): + with localcontext() as c: + c.prec=70 + terms=[(Decimal(r*n)/Decimal(m*W),(Decimal(m)/Decimal(r)).ln()) for r,n in H.items()] + fallback=Decimal(32*m*sum(H.values()))/Decimal(10**16*W) if bad else Decimal(0) + lm=Decimal(m).ln();lo=Decimal(0);hi=Decimal('.003') + for _ in range(210): + a=(lo+hi)/2 + if sum(p*(a*l).exp() for p,l in terms)+fallback*(a*lm).exp()<1:lo=a + else:hi=a + q=int(((lo+hi)/2*10**24).to_integral_value(rounding=ROUND_FLOOR)) + lo=F(q,10**24);hi=lo+F(1,10**24) + lv=moment(H,m,W,lo,bad);hv=moment(H,m,W,hi,bad) + assert lv[1]<10 for v in slacks.values()),{k:str(v) for k,v in slacks.items() if v<=0} + assert min(margins.values())==minimum + assert margins['balanced_prefix']-minimum==eta and 1-eps-r==eta/2 + assert 1-eps*(1+c)==eta-eps*eta/4 + return dict(parameters=dict(a_bit=a,a_complex=b,tau=tau,sigma=sigma, + eta=eta,beta=beta,q=q,c=c,epsilon=eps,lambda_=lam, + lambda_prime=lp,alpha_squared_power=r,delta=delta, + C0=bridge['semantic']['C0'],C1=1,kappa=kappa), + strict_constraints=slacks,margins=margins,minimum_margin=minimum, + absorption_gap=minimum-kappa, + recurrence=dict(internal=internal,leaf=leaf,reservations=1-c)) diff --git a/research/early-reset-source-banks/vendor/pr433/vendor/export_records.py b/research/early-reset-source-banks/vendor/pr433/vendor/export_records.py new file mode 100644 index 0000000000..3632d37048 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/vendor/export_records.py @@ -0,0 +1,72 @@ +"""Export a bitE8/1 word to the PR249 record format read by PR #266's official cohort checkers and PR #315's engines. +usage: python3 export_records.py word.json[.gz] OUTDIR -> OUTDIR/{249-records.bin,249-states.json,frames.json} +Records are int32 six-tuples: MOVE(0,role,old,new,rank,0), ADD(1,dst,src,1,frame,phase), COPY(2,centre,temp,frame,ZERO,rank), +ERASE(3,centre,temp,frame,ZERO,0). A multi-source gate becomes one ADD per source, preceded by the MOVEs of every +register of the gate to the gate frame. Frames: integer basis rows B (label vectors of the frame's root lines in the +word's coordinates, a rational basis) and integer annihilator rows A (standard dot product), as PR #266 expects. +Dylan Crow, with Anthropic Claude assistance; Apache-2.0.""" +import sys, json, gzip, struct, os +from fractions import Fraction as Fr +from math import gcd +def load(p): + with (gzip.open(p,'rt') if p.endswith('.gz') else open(p)) as f: return json.load(f) +c=load(sys.argv[1]); out=sys.argv[2]; os.makedirs(out,exist_ok=True) +v,R,h=c['v'],c['R'],c['h']; n=2*v+R; lines=c['lines'] +def basis(idx): + rows=[]; piv=[]; B=[] + for i in idx: + x=[Fr(a) for a in lines[i]] + for p,r in zip(piv,rows): + if x[p]: f=x[p]/r[p]; x=[a-f*b for a,b in zip(x,r)] + nz=[k for k in range(h) if x[k]] + if nz: rows.append(x); piv.append(nz[0]); B.append(list(lines[i])) + return B,rows,piv +def annihilator(rows,piv): + # rows in echelon (pivot columns piv); free columns give the null space of the row space under the dot product + # reduce to RREF + R_=[r[:] for r in rows] + for i,(p,r) in enumerate(zip(piv,R_)): + R_[i]=[a/r[p] for a in r] + for i,p in enumerate(piv): + for j in range(len(R_)): + if j!=i and R_[j][p]: f=R_[j][p]; R_[j]=[a-f*b for a,b in zip(R_[j],R_[i])] + free=[k for k in range(h) if k not in piv]; A=[] + for f in free: + a=[Fr(0)]*h; a[f]=Fr(1) + for i,p in enumerate(piv): a[p]=-R_[i][f] + L=1 + for x in a: L=L*x.denominator//gcd(L,x.denominator) + ai=[int(x*L) for x in a]; g=0 + for x in ai: g=gcd(g,abs(x)) + A.append([x//g for x in ai]) + return A +frames={} +for k,idx in enumerate(c['frames']): + B,rows,piv=basis(idx); A=annihilator(rows,piv) if B else [[int(i==j) for j in range(h)] for i in range(h)] + assert all(sum(a*b for a,b in zip(x,y))==0 for x in A for y in B) and len(A)+len(B)==h + frames[str(k)]=dict(dim=len(B),B=B,A=A) +dim=[frames[str(k)]['dim'] for k in range(len(c['frames']))] +ZERO=[k for k in range(len(dim)) if dim[k]==0]; assert len(ZERO)==1; ZERO=ZERO[0] +cur=list(c['start']); rec=[] +def move(r,f): + if cur[r]!=f: rec.append((0,r,cur[r],f,dim[f]-dim[cur[r]],0)); cur[r]=f +def run(gates,ph): + for f,d,srcs in gates: + for r in [d]+srcs: move(r,f) + for s in srcs: rec.append((1,d,s,1,f,ph)) +run(c['D'],1); run(c['A'],2) +temp=n +for k,q in enumerate(c['ret']): + fq=cur[q]; rec.append((2,q,temp,fq,ZERO,dim[fq])) + for t,row in enumerate(c['scatter']): + if k in row: rec.append((1,v+t,temp,1,ZERO,3)) + rec.append((3,q,temp,fq,ZERO,0)) +run(c['B'],4); run(c['C'],5) +for r in range(n): move(r,c['final'][r]) +with open(out+'/249-records.bin','wb') as f: + for e in rec: f.write(struct.pack('<6i',*e)) +st=dict(n=n,v=v,h=h,R=R,ZERO=ZERO,initial={str(r):c['start'][r] for r in range(n)},final={str(r):c['final'][r] for r in range(n)}, + retained_totals=c['ret'],source_owned_roles=[],regs=[]) +json.dump(st,open(out+'/249-states.json','w'),sort_keys=True,separators=(',',':')) +json.dump(dict(frames=frames),open(out+'/frames.json','w'),sort_keys=True,separators=(',',':')) +print('exported',len(rec),'records,',len(frames),'frames, n',n,'ZERO',ZERO) diff --git a/research/early-reset-source-banks/vendor/pr433/vendor/hamming_packets.py b/research/early-reset-source-banks/vendor/pr433/vendor/hamming_packets.py new file mode 100644 index 0000000000..c129996656 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/vendor/hamming_packets.py @@ -0,0 +1,253 @@ +"""A structural prototype: mutable source bases and simultaneous signed packets. + +Input geometry is the pinned PR370 Hamming E8 root table. The binary realization, +packet construction, two-shear synthesis and arbitrary-dirt replay below are new +local experiments. This does NOT produce a complete improved E8 supplier. +""" +import gzip +import hashlib +import itertools as it +import json +import random +from collections import Counter,defaultdict +from fractions import Fraction as Q +from pathlib import Path + +OUT=Path('work/complex-network/hamming');OUT.mkdir(parents=True,exist_ok=True) +SRC=Path('work/pr370-source/research/e8-bit/data/bit/bitE8-r865.json.gz') +word=json.load(gzip.open(SRC));roots=word['lines'];v=len(roots) +G=[[sum(x*y for x,y in zip(a,b))//2 for b in roots] for a in roots] +C=[sum((1^(G[i][j]&1))<>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) + +def inside(a,b):return basis(a+b)==b + +indices=[] +for i,row in enumerate(C): + if len(basis([C[j] for j in indices]+[row]))>len(indices):indices.append(i) +assert len(indices)==9 +gram=[sum(((C[i]>>j)&1)<>i)&1)*((gram[i]&b).bit_count()&1) for i in range(9))&1 +orth=[] +for step in range(9): + choices=[x for x in range(1,512) if ip(x,x) and all(not ip(x,y) for y in orth)] + chosen=next(x for x in choices if step==8 or any(y!=x and not ip(x,y) for y in choices)) + orth.append(chosen) +assert all(ip(x,y)==int(i==j) for i,x in enumerate(orth) for j,y in enumerate(orth)) +ports=[] +for i in range(v): + row=sum(((C[i]>>j)&1)<>j)&1) for i in range(v) for j in range(v)) + +blocks=defaultdict(list);frame_lines={} +for i,r in enumerate(roots): + support=tuple(k for k,x in enumerate(r) if x) + if len(support)==4:blocks[support].append(i) + else:assert len(support)==1;frame_lines[support[0]]=i +assert len(blocks)==14 and all(len(xs)==8 for xs in blocks.values()) + +def sparse_add(rows,t,s,q): + for j,x in list(rows[s].items()): + z=rows[t].get(j,Q(0))+q*x + if z:rows[t][j]=z + else:rows[t].pop(j,None) + +def simulate(n,events): + rows=[{r:Q(1)} for r in range(n)] + for t,s,q in events:sparse_add(rows,t,s,q) + return rows + +def serialize(events):return [[t,s,q.numerator,q.denominator] for t,s,q in events] + +packet_table={};module_receipts=[];all_programs=[] +for block,ids in sorted(blocks.items()): + ids=sorted(ids);pos={s:i for i,s in enumerate(ids)} + tetrads=[sorted(s for s in ids if sum(roots[s][k]<0 for k in block)%2==p) for p in (0,1)] + assert all(len(t)==4 for t in tetrads) + faces=[] + for i,j in it.combinations(block,2): + for epsilon in (-1,1): + support=[s for s in ids if roots[s][i]*roots[s][j]==epsilon] + content={s:Q(roots[s][i]) for s in support} + frame=basis([ports[s] for s in support]);assert len(frame)==3 + key=(block,(i,j),epsilon);packet_table[key]=(content,frame) + faces.append((key,content,frame)) + pair_uses=defaultdict(list) + for f,(_,content,frame) in enumerate(faces): + for tet in tetrads: + pair=tuple(s for s in tet if s in content) + assert len(pair)==2 + pair_uses[pair].append(f) + assert len(pair_uses)==12 and all(len(fs)==2 for fs in pair_uses.values()) + bysource=defaultdict(list) + for pair in sorted(pair_uses): + for s in pair:bysource[s].append(pair) + # One of the three pair branches is carried by x itself, two by helpers. + regs={};nextreg=8;events=[];event_frames=[];cur=[basis([ports[s]]) for s in ids] + start=list(cur);dead=[] + def add(t,s,q,F): + assert t!=s and inside(cur[t],F) and inside(cur[s],F) + cur[t]=cur[s]=F;events.append((t,s,Q(q)));event_frames.append(F) + for s in ids: + for j,pair in enumerate(sorted(bysource[s])): + if j==0:reg=pos[s] + else: + reg=nextreg;nextreg+=1;cur.append(());start.append(()) + add(reg,pos[s],1,basis([ports[s]])) + regs[pair,s]=reg + assert nextreg==24 + partial={} + for pair,fs in sorted(pair_uses.items()): + s,t=pair;a,b=regs[pair,s],regs[pair,t];f,g=fs + alpha,beta=faces[f][1][s],faces[f][1][t] + gamma,delta=faces[g][1][s],faces[g][1][t] + assert alpha*delta-beta*gamma in (-2,2) + F=basis([ports[s],ports[t]]);assert len(F)==2 + add(a,b,beta/alpha,F) + k=gamma/(delta-gamma*beta/alpha) + add(b,a,k,F) + partial[f,pair]=(a,alpha) + partial[g,pair]=(b,delta-gamma*beta/alpha) + pre_packets=simulate(24,events) + def clean_rank(registers): + piv={} + for reg in registers: + row=[pre_packets[reg].get(i,Q(0)) for i in range(8)] + for j in sorted(piv): + q=row[j] + if q:row=[a-q*b for a,b in zip(row,piv[j])] + j=next((i for i,q in enumerate(row) if q),None) + if j is not None: + q=row[j];piv[j]=[a/q for a in row] + return len(piv) + choices=[[value for (ff,pair),value in partial.items() if ff==f] for f in range(12)] + rng=random.Random(38639);orientation=None + for trial in range(4096): + bits=rng.randrange(1<<12) + if clean_rank([pieces[1-((bits>>f)&1)][0] for f,pieces in enumerate(choices)])==8: + orientation=bits;break + assert orientation is not None + outputs=[] + for f,(key,content,F) in enumerate(faces): + pieces=[value for (ff,pair),value in partial.items() if ff==f] + assert len(pieces)==2 + if orientation>>f&1:pieces.reverse() + (a,alpha),(b,beta)=pieces + add(a,b,beta/alpha,F) + outputs.append((a,alpha));dead.append(b) + assert len(set(r for r,a in outputs))==12 and len(set(dead))==12 + assert not set(dead)&{r for r,a in outputs} + core=simulate(24,events) + for f,(reg,scale) in enumerate(outputs): + clean={ids[j]:scale*x for j,x in core[reg].items() if j<8 and x} + assert clean==faces[f][1] + + # Probe complete borrowing: output each packet, cancel its old dirt at label + # zero, then undo every source/helper operation at the full frame. + # Actual supplier consumers and their remaining chronology are NOT inferred. + n=36;main=events.copy();dirt=[];chosen_targets=[] + for f,(reg,scale) in enumerate(outputs): + main.append((24+f,reg,scale)) + for j,q in core[reg].items(): + if j>=8:dirt.append((24+f,j,-scale*q)) + valid=[t for t in range(v) if all((ports[t]&x).bit_count()%2==0 for x in faces[f][2])] + assert valid;chosen_targets.append(valid[0]) + cleanup=[(t,s,-q) for t,s,q in reversed(events)] + actual=simulate(n,dirt+main+cleanup) + for r in range(24):assert actual[r]=={r:Q(1)} + for f in range(12): + expected={24+f:Q(1)} + expected.update({pos[s]:q for s,q in faces[f][1].items()}) + assert actual[24+f]==expected + # A mutation of the compensator must corrupt at least one arbitrary dirt column. + wrong=simulate(n,main+cleanup) + assert any(wrong[r]!=actual[r] for r in range(24,36)) + # Inverse-transpose: transpose and negate each elementary shear in the SAME + # event order. Reversing as well would generally compute the wrong map. + dual=simulate(n,[(s,t,-q) for t,s,q in dirt+main+cleanup]) + for r in range(n): + expected={r:Q(1)} + if r<8: + expected.update({24+f:-content[ids[r]] for f,(_,content,F) in enumerate(faces) if ids[r] in content}) + assert dual[r]==expected + receipt={'block':block,'source_lines':ids,'packets':12,'pair_butterflies':12, + 'packet_additions':len(events),'live_source_registers_borrowed':8, + 'helper_registers':16,'total_source_and_helper_registers':24, + 'retired_register_clean_rank':8, + 'independent_pair_branch_comparison_helpers':48, + 'comparison_scope':'48 is a specified independent two-input-form implementation, not the helper count of the current r783 supplier.', + 'frame_rank_counts':dict(Counter(map(len,event_frames))), + 'all_dirty_columns_forward_and_inverse_transpose':n, + 'compensator_omission_rejected':True, + 'scope':'A 12-output packet factory and probe sinks. Not a complete 120-port supplier or global frame schedule.'} + module_receipts.append(receipt) + all_programs.append({'receipt':receipt,'start_frames':start,'events':serialize(events), + 'event_frames':event_frames,'outputs':[[r,str(q)] for r,q in outputs], + 'dead_registers':dead, + 'dirt':serialize(dirt),'cleanup':serialize(cleanup), + 'probe_target_ports':[ports[t] for t in chosen_targets]}) + +# Reconstruct the entire signed E8 neighbour correction from the packet family. +# This proves all 120 rational source columns of the abstract decomposition. +decomposition=[] +for target,r in enumerate(roots): + row=defaultdict(Q);terms=[];support=[i for i,x in enumerate(r) if x] + if len(support)==4: + c=tuple(support) + for d in blocks: + inter=tuple(sorted(set(c)&set(d))) + if len(inter)!=2:continue + i,j=inter;epsilon=r[i]*r[j];content,F=packet_table[d,inter,epsilon] + coefficient=-Q(r[i],2) + assert all((ports[target]&p).bit_count()%2==0 for p in F) + for s,a in content.items():row[s]+=coefficient*a + terms.append({'source_block':d,'pair':inter,'epsilon':epsilon,'coefficient':str(coefficient)}) + for s in blocks[c]+list(frame_lines.values()): + if s!=target and G[target][s]:row[s]-=Q(G[target][s],2) + else: + i=support[0] + for d in blocks: + if i in d: + for s in blocks[d]:row[s]-=Q(roots[s][i],2) + expected={s:-Q(G[target][s],2) for s in range(v) if s!=target and G[target][s]} + assert {s:a for s,a in row.items() if a}==expected + # Eight coordinate centers recover the diagonal after side corrections. + for s in range(v): + center=sum(Q(r[i]*roots[s][i],4) for i in range(8)) + assert center+row.get(s,Q(0))==int(s==target) + decomposition.append({'target':target,'cross_block_packets':terms,'side_support':len(expected)}) + +program_path=OUT/'PACKET-PROGRAMS.json.gz' +program_path.write_bytes(gzip.compress(json.dumps(all_programs,sort_keys=True,separators=(',',':')).encode(),mtime=0)) +report={'status':'PASS_STRUCTURAL_PACKET_PROTOTYPE_NOT_A_NEW_SUPPLIER', + 'source_sha256':hashlib.sha256(SRC.read_bytes()).hexdigest(), + 'binary_address_dimension':9,'binary_gram_rank':len(indices), + 'binary_ports':ports,'root_lines':roots, + 'binary_gram_identity':'p_s dot p_t = 1 + (root_s dot root_t / 2) mod 2', + 'modules':module_receipts,'signed_packets':len(packet_table), + 'full_target_decomposition_columns':120,'full_target_decomposition_entries':120*120, + 'program_sha256':hashlib.sha256(program_path.read_bytes()).hexdigest(), + 'decomposition':decomposition, + 'remaining':['Joint scheduling and charging of all packet fan-outs and target accumulations', + 'Forming all eight centers from the available mixed source basis without an uncharged restore', + 'Full 120-port arbitrary-dirt forward/backward program and restored work stocks', + 'Exact complex adapters and global phases; finite invoice; two independent prices and outer assembly'], + 'no_new_coarse_b_or_kappa_claim':True} +(OUT/'PROTOTYPE.json').write_text(json.dumps(report,indent=2)+'\n') +print('PASS: 14 factories, 168 signed packets; each factory uses 8 source + 16 helper registers') +print('PASS: exact dirty forward and inverse-transpose columns, omission controls, all 14400 decoder entries') +print('NOT A SUPPLIER: global scheduling, mixed-basis centers, phase and full price remain open') diff --git a/research/early-reset-source-banks/vendor/pr433/verify.py b/research/early-reset-source-banks/vendor/pr433/verify.py new file mode 100644 index 0000000000..101d9b0249 --- /dev/null +++ b/research/early-reset-source-banks/vendor/pr433/verify.py @@ -0,0 +1,49 @@ +"""Verify the selected two-supplier composition using Python's standard library.""" +import argparse,gzip,hashlib,json,os,shutil,subprocess,sys +from pathlib import Path +assert __debug__, 'Assertions must remain enabled' +ROOT=Path(__file__).resolve().parent +ap=argparse.ArgumentParser(description=__doc__) +ap.add_argument('output',type=Path,help='A new output directory outside this package') +ap.add_argument('--replay-phases',action='store_true',help='Recompute all selected Gaussian phase pairs instead of reusing their source-bound evidence') +a=ap.parse_args();out=a.output.resolve() +assert not out.exists() and not out.is_relative_to(ROOT) +def snapshot(): + return {p.relative_to(ROOT).as_posix():hashlib.sha256(p.read_bytes()).hexdigest() for p in ROOT.rglob('*') if p.is_file() and p.name!='MANIFEST.json'} +manifest=json.loads((ROOT/'MANIFEST.json').read_text());assert snapshot()==manifest['files'],'Source manifest mismatch' +sources=json.loads((ROOT/'SOURCES.json').read_text()) +for z in sources['imported_files']: + data=(ROOT/z['path']).read_bytes();assert hashlib.sha256(data).hexdigest()==z['sha256'] + if 'source_sha256' in z:assert hashlib.sha256(gzip.decompress(data)).hexdigest()==z['source_sha256'] +out.mkdir(parents=True) +def copy(src,dst): + p=out/dst;p.parent.mkdir(parents=True,exist_ok=True) + data=(ROOT/src).read_bytes();p.write_bytes(gzip.decompress(data) if src.endswith('.gz') and not dst.endswith('.gz') else data) +for src,dst in [ + ('inputs/e8-r865.json.gz','work/pr370-source/research/e8-bit/data/bit/bitE8-r865.json.gz'), + ('inputs/complex-ports.json.gz','work/higher-stage-e8/verified/gcert1-e8-retimed.json.gz'), + ('inputs/complex-template.json.gz','work/complex-nine-native/GLOBAL-TEMPLATE.json.gz'), + ('inputs/complex-data-phases.json.gz','work/complex-nine-native/DATA-PHASES.json'), + ('inputs/bit-geometry.json.gz','inherited/bit-geometry.json.gz'), + ('vendor/clifford_exact.py','work/odd-stages/clifford_exact.py')]:copy(src,dst) +for name in ('moment','base_two_moment','outer'):copy('vendor/engines/'+name+'.py','work/pr361/code/engines/'+name+'.py') +p=out/'bit426-source-centres';p.mkdir();(p/'bit-input.json').write_bytes(gzip.decompress((ROOT/'inputs/bit-r767.json.gz').read_bytes())) +env=dict(os.environ,E8_OUTPUT=str(out),E8_REPLAY_PHASES=str(int(a.replay_phases)),PYTHONDONTWRITEBYTECODE='1');env.pop('PYTHONOPTIMIZE',None) +steps=[] +def run(name,file,*args): + with (out/(name+'.log')).open('w') as log: + r=subprocess.run([sys.executable,'-B',str(ROOT/file),*map(str,args)],cwd=out,env=env,stdout=log,stderr=subprocess.STDOUT) + assert r.returncode==0,(name,str(out/(name+'.log'))) + steps.append(name);print('PASS',name,flush=True) +run('hamming_packets','vendor/hamming_packets.py') +for name in ('complex_construct','complex_audit','complex_emit','complex_phases','bit_construct'):run(name,'code/'+name+'.py') +run('bit_export','vendor/export_records.py',p/'bit-source-centres.json',p/'records') +run('bit_global','code/bit_global.py','--source',p,'--local-check',p,'--out',p/'global') +run('bit_audit','code/bit_audit.py','--local-check',p,'--out',p/'global') +for name in ('bit_price','complex_integrate','complex_replay','combined'):run(name,'code/'+name+'.py') +assert snapshot()==manifest['files'],'Package modified during verification' +r=json.loads((out/'RESULT.json').read_text());expected=json.loads((ROOT/'EXPECTED.json').read_text()) +for key,value in expected.items():assert r[key]==value,(key,r[key],value) +r['verification_steps']=steps;r['phase_mode']='full replay' if a.replay_phases else 'source-bound unchanged evidence';r['manifest_sha256']=hashlib.sha256((ROOT/'MANIFEST.json').read_bytes()).hexdigest() +(out/'RESULT.json').write_text(json.dumps(r,indent=2)+'\n') +print('PASS conditional kappa',r['kappa_decimal']) diff --git a/research/early-reset-source-banks/verify.py b/research/early-reset-source-banks/verify.py new file mode 100644 index 0000000000..8756feaabc --- /dev/null +++ b/research/early-reset-source-banks/verify.py @@ -0,0 +1,30 @@ +"""Network-free full replay of PR433 plus twelve source-bound early resets. +Prepared with OpenAI Codex assistance. Apache-2.0; original notices retained. +""" +import argparse,hashlib,json,os,subprocess,sys,time +from pathlib import Path +assert __debug__, 'Assertions must remain enabled' +assert sys.version_info>=(3,14), 'Python 3.14+ is required for the frozen parent gzip byte encoding' +ROOT=Path(__file__).resolve().parent +ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--output',type=Path,required=True);a=ap.parse_args();out=a.output.resolve() +assert not out.exists() and not out.is_relative_to(ROOT), 'Use a fresh output outside the package' +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def snapshot():return {p.relative_to(ROOT).as_posix():sha(p) for p in ROOT.rglob('*') if p.is_file() and p.relative_to(ROOT).as_posix()!='MANIFEST.json'} +m=json.loads((ROOT/'MANIFEST.json').read_text());assert snapshot()==m['files'],'Package integrity mismatch' +out.mkdir(parents=True);env=dict(os.environ,PYTHONDONTWRITEBYTECODE='1');env.pop('PYTHONOPTIMIZE',None);steps=[] +def run(name,*args): + log=out/(name+'.log');start=time.monotonic();print('RUN',name,flush=True) + with log.open('w') as f:r=subprocess.run([sys.executable,'-B',*map(str,args)],env=env,stdout=f,stderr=subprocess.STDOUT) + assert r.returncode==0,(name,r.returncode,str(log)) + steps.append(dict(name=name,exit_code=r.returncode,seconds=time.monotonic()-start,log_sha256=sha(log)));print('PASS',name,flush=True) +parent=out/'parent';source=parent/'bit426-source-centres/bit-source-centres.json';word=out/'constructed/bit-source-centres.json';candidate=out/'candidate' +run('parent-full-phase',ROOT/'vendor/pr433/verify.py',parent,'--replay-phases') +run('construct-twelve',ROOT/'constructor/construct.py','--source',source,'--out',out/'constructed') +run('independent-reset-controls',ROOT/'constructor/local_audit.py','--source',source,'--out',out/'LOCAL-AUDIT.json') +run('changed-global-admission',ROOT/'admission/verify.py','--word',word,'--expected-sha256','fc5b2fb84dbbdbcf9b1bb36ebf768f31130dd5a93edec3d12f52c8e4be66ce48','--base-source',ROOT/'vendor/pr433','--complex-proof',parent,'--work',candidate) +run('independent-invoices-outer',ROOT/'code/independent_audit.py',candidate,out/'independent') +r=json.loads((candidate/'RESULT.json').read_text());expected=json.loads((ROOT/'EXPECTED.json').read_text()) +for key,value in expected.items():assert r[key]==value,(key,r.get(key),value) +assert snapshot()==m['files'],'Package changed during replay' +receipt=dict(status='PASS_SOURCE_BOUND_R746_FULL_REPLAY',kappa=r['kappa'],kappa_decimal=r['kappa_decimal'],candidate_sha256=sha(word),manifest_sha256=sha(ROOT/'MANIFEST.json'),steps=steps,result_sha256=sha(candidate/'RESULT.json'),independent_sha256=sha(out/'independent/RESULT.json')) +(out/'VERIFICATION.json').write_text(json.dumps(receipt,indent=2)+'\n');print(receipt['status'],r['kappa_decimal'],flush=True)