diff --git a/research/r480-quad12-exact-seed12/CERTIFICATE.json b/research/r480-quad12-exact-seed12/CERTIFICATE.json new file mode 100644 index 0000000000..b25bbd6427 --- /dev/null +++ b/research/r480-quad12-exact-seed12/CERTIFICATE.json @@ -0,0 +1,615 @@ +{ + "classification": "finite construction; fixed-positive-transfer minimum; no new kappa", + "format": "r480-quad12-exact/1", + "independent_minimum": { + "completed_expansion_depths": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ], + "edges_from_completed_layers": 4163706, + "layers": [ + 1, + 14, + 125, + 830, + 4209, + 16312, + 48192, + 104127, + 162909, + 186564, + 163664, + 111454 + ], + "minimum": 11, + "shortest_programs": 252, + "visited_states": 798401 + }, + "local": { + "boolean_inputs": 64, + "reverse_decreased_entries": 26, + "reverse_increased_entries": 3, + "reverse_positive_after": [ + [ + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 2, + 5, + 1, + 1, + 1 + ], + [ + 0, + 1, + 3, + 1, + 1, + 1 + ], + [ + 0, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 0, + 1, + 1, + 1, + 0 + ], + [ + 0, + 0, + 1, + 1, + 0, + 1 + ] + ], + "reverse_positive_before": [ + [ + 5, + 2, + 1, + 2, + 10, + 10 + ], + [ + 3, + 2, + 1, + 1, + 7, + 7 + ], + [ + 2, + 1, + 1, + 1, + 5, + 5 + ], + [ + 2, + 1, + 0, + 1, + 4, + 4 + ], + [ + 12, + 6, + 3, + 5, + 27, + 26 + ], + [ + 12, + 6, + 3, + 5, + 26, + 27 + ] + ], + "signed_inverse_matrix": [ + [ + 1, + 0, + -1, + 0, + 0, + 0 + ], + [ + -1, + 0, + -1, + 1, + 1, + 1 + ], + [ + 0, + 1, + 1, + -1, + -1, + -1 + ], + [ + 0, + -1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 1, + -1, + 1, + 0 + ], + [ + 0, + 0, + 1, + -1, + 0, + 1 + ] + ], + "target_matrix": [ + [ + 3, + 2, + 3, + 3, + 1, + 1 + ], + [ + 3, + 3, + 4, + 3, + 1, + 1 + ], + [ + 2, + 2, + 3, + 3, + 1, + 1 + ], + [ + 3, + 3, + 4, + 4, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0 + ], + [ + 1, + 1, + 1, + 1, + 0, + 1 + ] + ] + }, + "negative_controls": { + "count": 20, + "rejected": [ + "deleted_gate_0", + "deleted_gate_1", + "deleted_gate_2", + "deleted_gate_3", + "deleted_gate_4", + "deleted_gate_5", + "deleted_gate_6", + "deleted_gate_7", + "deleted_gate_8", + "deleted_gate_9", + "deleted_gate_10", + "self_donor", + "boolean_index", + "stale_cleanup_endpoint_correct", + "omitted_cleanup", + "lowered_operation_frame", + "omitted_erase", + "endpoint_correct_precision_overflow", + "missing_shortest_program", + "duplicate_shortest_program" + ], + "stale_cleanup_scalar_control_passed": true + }, + "shortest_census": { + "all_shortest_fail_entrywise_guard": true, + "all_shortest_fit_complete_local_prefix": true, + "census_sha256": "ef4bf613933ee40c439cf8680bcc108bb4336f30aa4ff1d2d16b2bdb38aed657", + "guarded_minimum": 12, + "orbit_check": { + "members": [ + { + "frame": 314, + "permutations": [ + [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + [ + 0, + 1, + 2, + 3, + 5, + 4 + ] + ], + "quad": 12, + "start": 849, + "stop": 872 + } + ], + "permutations_per_quad": 720, + "quads": 60 + }, + "peer_head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "peer_index_permutation": [ + 2, + 3, + 1, + 4, + 0, + 5 + ], + "peer_pr": 1002, + "programs": 252, + "reverse_bound_range": [ + 3723720, + 3729576 + ], + "reverse_classes": [ + { + "B": 3723748, + "F": 176135, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "payload_bits": 102, + "payload_upper": "4849283013285012259638966656000", + "program_count": 36, + "representative_index": 72, + "reverse_matrix": [ + [ + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 3, + 2, + 3, + 1, + 1, + 1 + ], + [ + 2, + 1, + 3, + 1, + 1, + 1 + ], + [ + 2, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 0, + 1, + 1, + 1, + 0 + ], + [ + 0, + 0, + 1, + 1, + 0, + 1 + ] + ], + "reverse_sha256": "4b5e964862ade3db78d4294c5269515c7d1ec9f0d86d51bb55615ec5c91b327c" + }, + { + "B": 3729576, + "F": 176135, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "payload_bits": 102, + "payload_upper": "4864474018363267160643147264000", + "program_count": 36, + "representative_index": 168, + "reverse_matrix": [ + [ + 1, + 2, + 1, + 2, + 0, + 0 + ], + [ + 1, + 4, + 3, + 3, + 1, + 1 + ], + [ + 0, + 1, + 1, + 1, + 1, + 1 + ], + [ + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 2, + 1, + 1, + 1, + 0 + ], + [ + 0, + 2, + 1, + 1, + 0, + 1 + ] + ], + "reverse_sha256": "553722d188b0886ceedac3c60a1269a3003440c4331f4261809943a0f74d1867" + }, + { + "B": 3723720, + "F": 176135, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "payload_bits": 102, + "payload_upper": "4849210087075243718526297600000", + "program_count": 108, + "representative_index": 0, + "reverse_matrix": [ + [ + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 2, + 5, + 1, + 1, + 1 + ], + [ + 0, + 1, + 3, + 1, + 1, + 1 + ], + [ + 0, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 0, + 1, + 1, + 1, + 0 + ], + [ + 0, + 0, + 1, + 1, + 0, + 1 + ] + ], + "reverse_sha256": "6cd96ae2523843dee0fd0e3cc4974984bb9e33fc0a6a2d727e79b6293e956372" + }, + { + "B": 3727336, + "F": 176135, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "payload_bits": 102, + "payload_upper": "4858632523468760179794834944000", + "program_count": 72, + "representative_index": 18, + "reverse_matrix": [ + [ + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 4, + 3, + 3, + 1, + 1 + ], + [ + 0, + 1, + 1, + 1, + 1, + 1 + ], + [ + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 2, + 1, + 1, + 1, + 0 + ], + [ + 0, + 2, + 1, + 1, + 0, + 1 + ] + ], + "reverse_sha256": "a86cba08caf05e2011383714a80e3be98d3dbef135573ee9b072443ea7122361" + } + ] + }, + "source_sha256": "92e399e9a486b55229b5624632ac54f800dd9e022f2aee97f1e5f264bbc0ef5c", + "witness_sha256": "dae6de8d0f6a70ea2115830a82cb99c224acd1f782107e8d74d9f9f30d9f8bea", + "words": { + "candidate": { + "ADDs": 33934, + "B": 3723720, + "COPYs": 9, + "ERASEs": 9, + "F": 176135, + "MOVEs": 2940, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "paid_histogram": { + "1": 1200, + "2": 1440, + "4": 180, + "6": 120, + "8": 9 + }, + "paths_sha256": "2b384919c4b79258e608ceac2f71a9fa44d47d1b9e65c8fb55413de0388fd71a", + "payload_bits": 102, + "payload_upper": "4849210087075243718526297600000", + "rank_mass": 5592, + "records": 36892, + "word_sha256": "bfba01449da4964d861cd669ae8411b9b825bdef9b64ac233d161f74968d7048" + }, + "original": { + "ADDs": 33958, + "B": 3751204, + "COPYs": 9, + "ERASEs": 9, + "F": 176135, + "MOVEs": 2940, + "columns_each_direction": 720, + "local_prefix_cap_bits": 104, + "paid_histogram": { + "1": 1200, + "2": 1440, + "4": 180, + "6": 120, + "8": 9 + }, + "paths_sha256": "2b384919c4b79258e608ceac2f71a9fa44d47d1b9e65c8fb55413de0388fd71a", + "payload_bits": 102, + "payload_upper": "4921056267806722187755121024000", + "rank_mass": 5592, + "records": 36916, + "word_sha256": "8639e22008c24a5690dd250eba702fe5fca85ddd036dcbec20baba77b7e213ba" + } + } +} diff --git a/research/r480-quad12-exact-seed12/CLAIM.json b/research/r480-quad12-exact-seed12/CLAIM.json new file mode 100644 index 0000000000..94e1fadefe --- /dev/null +++ b/research/r480-quad12-exact-seed12/CLAIM.json @@ -0,0 +1,87 @@ +{ + "track": "bit supplier", + "assignment_seed": 12, + "randomness": "secrets.randbelow(100), operating-system randomness", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "created_utc": "2026-10-13T16:22:30.430978+00:00", + "object": { + "supplier": "PR503/510 historical R480", + "quad": 12, + "frame": 314, + "phase": "A", + "slice": [ + 849, + 872 + ], + "wires": [ + 307, + 355, + 415, + 439, + 494, + 518 + ] + }, + "method": "Exhaustive backward positive-integer row subtraction on six fixed wires, with at most 1000000 states; exact minimum if complete, otherwise scoped bounded evidence; test full cleanup and precision for any shorter witness.", + "expected_deliverable": "One finite circuit construction and exact scoped minimum, or a scoped negative result with complete reproducible evidence.", + "expected_finish_utc": "2026-10-13T17:05:00Z", + "candidates": [ + { + "task": "R480 quad12 exact positive-transfer factorization and minimum", + "decision": "chosen; distinct six-wire matrix and exact minimum obligation beyond PR823 sampled quad1 and PR1003 twelve-wire Q-node2" + }, + { + "task": "PR589 frame relocation with exact reframing", + "decision": "excluded; PR933 already closes this mechanism and a large depth-two sample" + }, + { + "task": "R439 decoder total sharing", + "decision": "excluded; PR848 records empty pair intersections; later helper-basis work is crowded" + } + ], + "coordination": { + "pinned_issues": [], + "access": "GitHub authenticated as bbMisk", + "local_claim_reason": "No pinned coordination issue exists; do not open a reservation issue." + }, + "initial_overlap": { + "open_prs_inspected": 700, + "latest_pr": 1004, + "related_prs": [ + 823, + 925, + 1003, + 933, + 848 + ] + }, + "scope": "No new kappa; paid recursive profile, upstream and selected frontier are outside the mutation scope.", + "contributor": "Hanson Sun (@bbMisk)", + "ai_assistance": "Substantial OpenAI Codex assistance; one agent; no independent human review.", + "overlap_refinement": { + "timestamp_utc": "2026-10-13T16:34:01.560695+00:00", + "predecessor_pr": 1002, + "predecessor_head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "finding": "PR1002 original frame272 is the same ordered 23-gate integer circuit after permutation [2,3,1,4,0,5]; its unconstrained minimum 11 has priority. Its submitted guarded word uses 12 gates.", + "scope_refinement": "Preserve the original R480 quad12 object. Add exhaustive enumeration and independent count of all shortest programs, and complete R480 prefix admission; claim only historical supplier construction and new complete shortest-program precision evidence.", + "bounded_orbit_check": "All 60 R480 quads and all 720 simultaneous wire permutations checked; seed12 is the only member of this exact positive-transfer orbit.", + "new_coverage_limit": "252 shortest programs; no search of other matrices, more gates, scratch wires or arbitrary F2 lifts.", + "expected_deliverable": "A precise R480 construction, full shortest-program census and contextual precision evidence; credit PR1002 rather than claim a new minimum." + }, + "result": { + "status": "completed finite construction and shortest-program census; ready for review", + "completed_utc": "2026-10-13T16:51:48.851065+00:00", + "complete_local_ADDs": [ + 33958, + 33934 + ], + "minimum": 11, + "prior_minimum_credit": "PR1002", + "shortest_programs": 252, + "reverse_classes": 4, + "local_controls": 20, + "native_bridge_controls": 96, + "result_link": "https://github.com/bbMisk/integer-mult-bounds/tree/research/r480-quad12-exact-seed12/research/r480-quad12-exact-seed12", + "no_new_kappa": true + } +} diff --git a/research/r480-quad12-exact-seed12/LICENSE b/research/r480-quad12-exact-seed12/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/r480-quad12-exact-seed12/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/r480-quad12-exact-seed12/MAKE-VERIFY.json b/research/r480-quad12-exact-seed12/MAKE-VERIFY.json new file mode 100644 index 0000000000..926984aede --- /dev/null +++ b/research/r480-quad12-exact-seed12/MAKE-VERIFY.json @@ -0,0 +1,10 @@ +{ + "exit_code": null, + "timed_out": true, + "command": "make verify", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "scope": "untouched detached base checkout", + "seconds": 180.00458062510006, + "timeout_seconds": 180, + "python": "3.14.6" +} diff --git a/research/r480-quad12-exact-seed12/MANIFEST.json b/research/r480-quad12-exact-seed12/MANIFEST.json new file mode 100644 index 0000000000..09fe36271c --- /dev/null +++ b/research/r480-quad12-exact-seed12/MANIFEST.json @@ -0,0 +1,38 @@ +{ + "format": "sha256-file-inventory/1", + "scope": "All package files except this inventory; contextual metadata is not mathematical admission evidence.", + "files": { + "CERTIFICATE.json": "df66931c2176e55177f1122c4976c1f259d2b0da23c6c6a82f915557be5069b7", + "CLAIM.json": "3d56fa0a797ba30802b85d2da350e05926dabe75bb627b4d1bbaf01db35b07c7", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "MAKE-VERIFY.json": "2720a886ee82d285d14f0f6f298d7d05dbd18e1c62388fe928f792f888f9d1b0", + "MINIMUM-CENSUS.json": "b5a1e30004af54185de9ded200158d08d8e98e7cf466b8672822a504491d0230", + "NATIVE-CERTIFICATE.json": "b82938c591661dd72cae8c21a164ea809fecd69e33a404772b720945d0cbce1a", + "NATIVE-ENVIRONMENT.json": "3cd9012a97fbef7dd4b53c3c26b158f87131a77201a3ee4370c641c542945c6d", + "NOTICE.md": "604252875a37d91491522042816219808083cbe387c265fe21a27b9421eb41a5", + "OVERLAP.json": "2b59aca7bb4fba9435f7218ae6408ac4dc90f37f65092e1e80c3c6219c458978", + "PR1002-WITNESS.json": "97008b84dc93a1b33364da0f168aacf1ec0011197685d4634784b820b03362ba", + "PROOF.md": "23ab56a5c8a3f381ea51c352a6c49dc8c39f2b2a7a0bb5659f92fddf092de15c", + "README.md": "0fa10456226f65b990abbc2dd788d72d0611f94958e5e08e2fc7ebceda836d7b", + "SOURCES.json": "ae3298dcb6021a5222b848f47ec5f5a89c536fd0673d9c083eb7f0bfdf60713a", + "VALIDATION.json": "76ad3fa4b57cc5f7d8bd538d61e5d72351a0fc30ef23128ab61f9ed946b0bf41", + "WITNESS.json": "57e0425b1308916804f36e69b032cbfcae362f993eb82aac68be246bbb8b15c4", + "common.py": "c0994445a8c4e3c7d24847a23681f8877e68ea539cd41e2c56826c72aadd7a06", + "evidence/candidate-grams.log": "6abafaf29f2829ad650bd36d3cac8c7c884db60c72c3a34d81e1877ea5baaba6", + "evidence/candidate-independent.log": "ba5ba6e656eb024ad6bf3715b6ae2111b29b6cf22163d6dce7f56aa65c33c4f2", + "evidence/candidate-interface.log": "254ccd381a40304afa6e9b70d8fb8fb6e6a52e5a074c58609b78b2eb8083856a", + "evidence/make-verify-tail.log": "ceeaeaf3b4595cbb2cb2477dfacd2305801f662ccbd5c19fb9152e57260a859f", + "evidence/native.log": "035bf17c2ea5e817c658ec614068b5cf593bc6384b47a021f1f734a4674c4093", + "evidence/original-grams.log": "6abafaf29f2829ad650bd36d3cac8c7c884db60c72c3a34d81e1877ea5baaba6", + "evidence/original-independent.log": "07a052b04e70aa8cf4d2a975d85b4247697eb7e0bf9fdf5ee7ddb95804d43145", + "evidence/original-interface.log": "4749067ba4c38405555852d11354c3453d889c9f9b4f51747bab11e1ffbd01e2", + "evidence/package-tests.log": "1d27218b088b8c1ca93c31b037305fdbd20068ef95b236b97a2667127f2bb5dc", + "evidence/python312-replay.log": "ea7d070323fefdd8a556880fabe34674a3f83ecd1fe65f55bf0d949531ca2f09", + "evidence/selected-tests.log": "2057bd9876c9ce29e93b83ddd4a29820ddf3f96489fd857df892e8563f81b971", + "native.py": "27442e7c1c6b1cdff4e83a9f7bc652f2af8103e3a77020cd571d323c4334e923", + "optimality.py": "da8fe0c49c5625d12714db44a77f5cf818e5211667d5629647f57e4d59b2fc5e", + "search.py": "69743a75daf5eb188e6740d52ab394789746ce4261ee1458655f5cea90e031b2", + "test_package.py": "a5e5bc012d60248849edea111f3a6af4e283c64a710c5ea2346ce7ae5b25114d", + "verify.py": "c233091fadce1dab67ef3a79da7235f0ee43de8a5ad04ab5d93959911a25ea61" + } +} diff --git a/research/r480-quad12-exact-seed12/MINIMUM-CENSUS.json b/research/r480-quad12-exact-seed12/MINIMUM-CENSUS.json new file mode 100644 index 0000000000..eeeb7e7bc3 --- /dev/null +++ b/research/r480-quad12-exact-seed12/MINIMUM-CENSUS.json @@ -0,0 +1 @@ +{"format":"r480-quad12-shortest-programs/1","minimum":11,"programs":[[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[1,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[1,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[1,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[1,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[1,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[1,2],[0,2]],[[1,3],[1,2],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,2],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,2],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,2],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,2],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,2],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,3],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,3],[1,0],[1,2],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,3],[1,2],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[1,0],[1,3],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,0],[1,2],[1,3],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[3,1],[0,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[3,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[3,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[3,2],[0,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[3,2],[0,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[3,2],[0,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[3,2],[0,2]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,5],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,5],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[5,3],[2,5],[4,3],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,4],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,4],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[2,4],[5,3],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[0,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,5],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,5],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[5,3],[2,5],[4,3],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,4],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,4],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,1],[3,0],[4,3],[2,4],[5,3],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[3,0],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[3,2],[1,0]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[0,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[0,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[3,2],[0,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[3,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[3,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[3,2],[1,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[3,2],[1,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[3,2],[1,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[3,2],[1,2]],[[1,3],[1,2],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[5,1],[4,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,2],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[4,1],[5,1],[2,5],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,2],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[5,1],[2,5],[4,1],[2,4],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,2],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[5,1],[4,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,2],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[4,1],[5,1],[2,4],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,2],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,3],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,3],[1,0],[1,2],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,3],[1,2],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[1,0],[1,3],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,0],[1,2],[1,3],[4,1],[2,4],[5,1],[2,5],[1,2],[2,3],[0,2],[3,1]],[[1,2],[0,3],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[4,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[4,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[5,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[5,1],[2,5],[2,4],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[2,5],[4,1],[2,4],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[2,5],[4,1],[2,4],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[4,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[4,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[5,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[5,1],[2,4],[2,5],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[2,4],[5,1],[2,5],[1,2],[0,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[2,4],[5,1],[2,5],[1,2],[0,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[5,1],[4,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[4,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[4,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[5,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[5,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[5,1],[2,5],[2,4],[0,2],[1,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[5,1],[2,5],[4,1],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[2,5],[4,1],[2,4],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[2,5],[4,1],[2,4],[0,2],[1,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[5,1],[4,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[5,1],[4,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[5,1],[4,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[5,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[5,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[5,1],[2,4],[2,5],[0,2],[1,2],[2,3],[3,1]],[[1,2],[0,3],[1,0],[4,1],[2,4],[5,1],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,2],[1,0],[4,1],[2,4],[5,1],[2,5],[0,2],[1,2],[2,3],[3,1]],[[0,3],[1,0],[1,2],[4,1],[2,4],[5,1],[2,5],[0,2],[1,2],[2,3],[3,1]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[1,2],[0,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[1,2],[0,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[1,2],[0,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[0,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[0,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[1,2],[0,2],[3,2]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,5],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,5],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,1],[3,0],[5,3],[2,5],[4,3],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,1],[3,0],[5,3],[4,3],[2,4],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,1],[3,0],[4,3],[5,3],[2,4],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,1],[3,0],[4,3],[2,4],[5,3],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[3,0],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[1,0],[3,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,5],[2,4],[0,2],[1,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[2,5],[4,3],[2,4],[0,2],[1,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[5,3],[4,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[5,3],[2,4],[2,5],[0,2],[1,2],[3,2]],[[1,2],[2,3],[1,0],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[1,2],[3,2]],[[1,2],[1,0],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[1,2],[3,2]],[[1,0],[1,2],[2,3],[3,1],[4,3],[2,4],[5,3],[2,5],[0,2],[1,2],[3,2]]]} diff --git a/research/r480-quad12-exact-seed12/NATIVE-CERTIFICATE.json b/research/r480-quad12-exact-seed12/NATIVE-CERTIFICATE.json new file mode 100644 index 0000000000..76a0a710f0 --- /dev/null +++ b/research/r480-quad12-exact-seed12/NATIVE-CERTIFICATE.json @@ -0,0 +1,1142 @@ +{ + "normalization": "Only seconds and local_scalar_stream removed; all other native fields retained.", + "schema": "r480-quad12-exact-native/1", + "words": { + "candidate": { + "legality": { + "all_final_frames_pass": true, + "common_frame_ADDs": 33934, + "containment_pairs_checked": 2350, + "copies": 9, + "donor_intersections": 0, + "erasures": 9, + "max_inherited_integer_abs": 2, + "nested_MOVEs": 2940, + "new_frame_ids_collision": false, + "nondegeneracy_checked_by_separate_exact_bank_audit": true, + "old_max_frame_id": 671, + "paid_histogram": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "rank_mass": 5592, + "records": 36892, + "scope": "Independent chronological geometry/copy/source-owner audit. F2 all-column replay is in the separately freshly compiled transform receipt; address transform theorem and bank completion remain separate.", + "selected_helpers": 0, + "selected_pairs": 0, + "source_owner_intersections": 0, + "status": "PASS_INDEPENDENT_COHORT_LEGALITY_SOURCE_OWNERS_AND_LIFECYCLE" + }, + "stages": { + "11": { + "bridge_additions": 2880, + "copied_center_original_source_immutable": true, + "formal_columns_checked": 1680, + "fresh_center_copies": 99, + "global_live_registers": 1680, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33934, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33934, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + }, + { + "omit_bridge": 6, + "rejected": true + }, + { + "omit_bridge": 7, + "rejected": true + }, + { + "omit_bridge": 8, + "rejected": true + }, + { + "omit_bridge": 9, + "rejected": true + }, + { + "omit_bridge": 10, + "rejected": true + }, + { + "omit_bridge": 11, + "rejected": true + }, + { + "omit_bridge": 12, + "rejected": true + }, + { + "omit_bridge": 13, + "rejected": true + }, + { + "omit_bridge": 14, + "rejected": true + }, + { + "omit_bridge": 15, + "rejected": true + }, + { + "omit_bridge": 16, + "rejected": true + }, + { + "omit_bridge": 17, + "rejected": true + }, + { + "omit_bridge": 18, + "rejected": true + }, + { + "omit_bridge": 19, + "rejected": true + }, + { + "omit_bridge": 20, + "rejected": true + }, + { + "omit_bridge": 21, + "rejected": true + }, + { + "omit_bridge": 22, + "rejected": true + }, + { + "omit_bridge": 23, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4849210087075243718526297600000", + "reverse_fresh_center_copies": 45, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3723720", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stage_additions": 373274, + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 10 + } + ], + "status": "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + }, + "5": { + "bridge_additions": 720, + "copied_center_original_source_immutable": true, + "five_stage_additions": 169670, + "formal_columns_checked": 960, + "fresh_center_copies": 45, + "global_live_registers": 960, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33934, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33934, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4849210087075243718526297600000", + "reverse_fresh_center_copies": 18, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3723720", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 4 + } + ], + "status": "PASS_NEW_COHORT249_ALL_FIVE_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + }, + "9": { + "bridge_additions": 2160, + "copied_center_original_source_immutable": true, + "formal_columns_checked": 1440, + "fresh_center_copies": 81, + "global_live_registers": 1440, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33934, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33934, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + }, + { + "omit_bridge": 6, + "rejected": true + }, + { + "omit_bridge": 7, + "rejected": true + }, + { + "omit_bridge": 8, + "rejected": true + }, + { + "omit_bridge": 9, + "rejected": true + }, + { + "omit_bridge": 10, + "rejected": true + }, + { + "omit_bridge": 11, + "rejected": true + }, + { + "omit_bridge": 12, + "rejected": true + }, + { + "omit_bridge": 13, + "rejected": true + }, + { + "omit_bridge": 14, + "rejected": true + }, + { + "omit_bridge": 15, + "rejected": true + }, + { + "omit_bridge": 16, + "rejected": true + }, + { + "omit_bridge": 17, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4849210087075243718526297600000", + "reverse_fresh_center_copies": 36, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3723720", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stage_additions": 305406, + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 33934, + "signed_inverse": false, + "stage": 8 + } + ], + "status": "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + } + } + }, + "original": { + "legality": { + "all_final_frames_pass": true, + "common_frame_ADDs": 33958, + "containment_pairs_checked": 2350, + "copies": 9, + "donor_intersections": 0, + "erasures": 9, + "max_inherited_integer_abs": 2, + "nested_MOVEs": 2940, + "new_frame_ids_collision": false, + "nondegeneracy_checked_by_separate_exact_bank_audit": true, + "old_max_frame_id": 671, + "paid_histogram": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "rank_mass": 5592, + "records": 36916, + "scope": "Independent chronological geometry/copy/source-owner audit. F2 all-column replay is in the separately freshly compiled transform receipt; address transform theorem and bank completion remain separate.", + "selected_helpers": 0, + "selected_pairs": 0, + "source_owner_intersections": 0, + "status": "PASS_INDEPENDENT_COHORT_LEGALITY_SOURCE_OWNERS_AND_LIFECYCLE" + }, + "stages": { + "11": { + "bridge_additions": 2880, + "copied_center_original_source_immutable": true, + "formal_columns_checked": 1680, + "fresh_center_copies": 99, + "global_live_registers": 1680, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33958, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33958, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + }, + { + "omit_bridge": 6, + "rejected": true + }, + { + "omit_bridge": 7, + "rejected": true + }, + { + "omit_bridge": 8, + "rejected": true + }, + { + "omit_bridge": 9, + "rejected": true + }, + { + "omit_bridge": 10, + "rejected": true + }, + { + "omit_bridge": 11, + "rejected": true + }, + { + "omit_bridge": 12, + "rejected": true + }, + { + "omit_bridge": 13, + "rejected": true + }, + { + "omit_bridge": 14, + "rejected": true + }, + { + "omit_bridge": 15, + "rejected": true + }, + { + "omit_bridge": 16, + "rejected": true + }, + { + "omit_bridge": 17, + "rejected": true + }, + { + "omit_bridge": 18, + "rejected": true + }, + { + "omit_bridge": 19, + "rejected": true + }, + { + "omit_bridge": 20, + "rejected": true + }, + { + "omit_bridge": 21, + "rejected": true + }, + { + "omit_bridge": 22, + "rejected": true + }, + { + "omit_bridge": 23, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4921056267806722187755121024000", + "reverse_fresh_center_copies": 45, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3751204", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stage_additions": 373538, + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 10 + } + ], + "status": "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + }, + "5": { + "bridge_additions": 720, + "copied_center_original_source_immutable": true, + "five_stage_additions": 169790, + "formal_columns_checked": 960, + "fresh_center_copies": 45, + "global_live_registers": 960, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33958, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33958, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4921056267806722187755121024000", + "reverse_fresh_center_copies": 18, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3751204", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 4 + } + ], + "status": "PASS_NEW_COHORT249_ALL_FIVE_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + }, + "9": { + "bridge_additions": 2160, + "copied_center_original_source_immutable": true, + "formal_columns_checked": 1440, + "fresh_center_copies": 81, + "global_live_registers": 1440, + "independent_dirty_registers": 480, + "local_odd_scalar_additions": 33958, + "local_raw_H": [ + [ + 1, + 1200 + ], + [ + 2, + 1440 + ], + [ + 4, + 180 + ], + [ + 6, + 120 + ], + [ + 8, + 9 + ] + ], + "local_registers": 720, + "local_scalar_additions": 33958, + "negative_controls": [ + { + "omit_bridge": 0, + "rejected": true + }, + { + "omit_bridge": 1, + "rejected": true + }, + { + "omit_bridge": 2, + "rejected": true + }, + { + "omit_bridge": 3, + "rejected": true + }, + { + "omit_bridge": 4, + "rejected": true + }, + { + "omit_bridge": 5, + "rejected": true + }, + { + "omit_bridge": 6, + "rejected": true + }, + { + "omit_bridge": 7, + "rejected": true + }, + { + "omit_bridge": 8, + "rejected": true + }, + { + "omit_bridge": 9, + "rejected": true + }, + { + "omit_bridge": 10, + "rejected": true + }, + { + "omit_bridge": 11, + "rejected": true + }, + { + "omit_bridge": 12, + "rejected": true + }, + { + "omit_bridge": 13, + "rejected": true + }, + { + "omit_bridge": 14, + "rejected": true + }, + { + "omit_bridge": 15, + "rejected": true + }, + { + "omit_bridge": 16, + "rejected": true + }, + { + "omit_bridge": 17, + "rejected": true + } + ], + "new_Q_categories": [ + 28, + 29 + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "4921056267806722187755121024000", + "reverse_fresh_center_copies": 36, + "scope": "All independent physical input columns over F2, including all arbitrary helper dirt, restored; external copied-center work closes to zero. New cohort scalar lift uses actual signed coefficients and computed cancellation-free bounds; unchanged source527 signed decoder remains separate defining evidence. Physical projector routing and paid rank/bank receipts are independently bound, not inferred from scalar check.", + "signed_lift_prefix": [ + { + "bits": 18, + "cancellation_free_signed_row_l1_upper": "176135", + "reverse": false + }, + { + "bits": 22, + "cancellation_free_signed_row_l1_upper": "3751204", + "reverse": true + } + ], + "signed_reverse_semantics": "Reverse ADD coefficient negated; reverse DISCARD is fresh COPY from recorded unchanged original center; reverse COPY is DISCARD. Each such block is inverse over every commutative coefficient ring, by elementary-shear induction.", + "stage_additions": 305622, + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 33958, + "signed_inverse": false, + "stage": 8 + } + ], + "status": "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" + } + } + } + } +} diff --git a/research/r480-quad12-exact-seed12/NATIVE-ENVIRONMENT.json b/research/r480-quad12-exact-seed12/NATIVE-ENVIRONMENT.json new file mode 100644 index 0000000000..351521590c --- /dev/null +++ b/research/r480-quad12-exact-seed12/NATIVE-ENVIRONMENT.json @@ -0,0 +1,8 @@ +{ + "python": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]", + "platform": "macOS-27.0.1-arm64-arm-64bit-Mach-O", + "compiler": "Apple clang version 21.0.0 (clang-2100.1.1.101)\nTarget: arm64-apple-darwin27.0.0\nThread model: posix\nInstalledDir: /Library/Developer/CommandLineTools/usr/bin\n", + "boost_include": "/Users/hansonsun/Documents/Codex/2026-10-13/x20/work/boost_1_87_0", + "boost_version_header_sha256": "de3c73716db521194a767801a45f78f466e83e06cbae476fa2492be39d820252", + "boost_cpp_int_sha256": "4099045e8ac3e3507779c08980272b261a86498a23a4d0bb0786849f5424595a" +} diff --git a/research/r480-quad12-exact-seed12/NOTICE.md b/research/r480-quad12-exact-seed12/NOTICE.md new file mode 100644 index 0000000000..303cc28584 --- /dev/null +++ b/research/r480-quad12-exact-seed12/NOTICE.md @@ -0,0 +1,9 @@ +# Attribution and source notice + +All new work is licensed under the repository's Apache-2.0 license. Prepared for Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance in research, implementation, verification and writing. No independent human or multi-agent review is claimed. + +DreamingOfClouds' [PR503](https://github.com/CrocSwap/integer-mult-bounds/pull/503)/510 supplies the historical R480 word, carried unchanged in the [PR555](https://github.com/CrocSwap/integer-mult-bounds/pull/555)/589 package. eumemic's [PR493](https://github.com/CrocSwap/integer-mult-bounds/pull/493) supplies the mutable-source skeleton and interface adaptation. Credit Dylan Crow for the independent word checker, exporter, native record format and legality checks; DaysSky for bridged stage replay and hosting; Zhihao Chen for the mutable-basis interface; Jacob Sussman for the E8 unit; and all predecessor notices retained in research/e8-bit-carrier-skeleton/NOTICE.md and research/e8-bit-p111-tuned/NOTICE.md. These notices and upstream sources are not edited. + +Ross Richardson's [PR925](https://github.com/CrocSwap/integer-mult-bounds/pull/925) supplies the row-subtraction search and separate breadth-first minimum checker adapted here. This contribution extends them to count and enumerate all shortest programs and price their complete R480 prefix classes. Its native driver is adapted from Ross Richardson's [PR925](https://github.com/CrocSwap/integer-mult-bounds/pull/925), crediting Ali Romman's [PR688](https://github.com/CrocSwap/integer-mult-bounds/pull/688) harness. The local verification contracts follow mtpsl's [PR691](https://github.com/CrocSwap/integer-mult-bounds/pull/691) and Gareth Davidson's [PR952](https://github.com/CrocSwap/integer-mult-bounds/pull/952); their implementations informed the independent record and complete-word checks. + +The initial independent nomination matched the circuit class already treated in woklerx's [PR1002](https://github.com/CrocSwap/integer-mult-bounds/pull/1002). That contribution has priority for the unconstrained eleven-gate and guarded twelve-gate minima. Its WITNESS.json is retained byte for byte at head 93e1a42c773a73bb55adddf35d71ed6b6c1d5748, with source hashes and an explicit wire map. This package contributes the complete shortest-program census, contextual R480 precision admission and native historical-supplier evidence. Hao Yan's [PR823](https://github.com/CrocSwap/integer-mult-bounds/pull/823) treats R480 quad 1, and ToikY's [PR1003](https://github.com/CrocSwap/integer-mult-bounds/pull/1003) treats R480 Q-node 2; their savings are not composed here. The full-prefix admission precedents [PR857](https://github.com/CrocSwap/integer-mult-bounds/pull/857), [PR906](https://github.com/CrocSwap/integer-mult-bounds/pull/906) and [PR980](https://github.com/CrocSwap/integer-mult-bounds/pull/980) are credited; the general admission idea is not claimed as new. diff --git a/research/r480-quad12-exact-seed12/OVERLAP.json b/research/r480-quad12-exact-seed12/OVERLAP.json new file mode 100644 index 0000000000..49fc19e8df --- /dev/null +++ b/research/r480-quad12-exact-seed12/OVERLAP.json @@ -0,0 +1,83 @@ +{ + "checked_utc": "2026-10-13T16:50:10.528359+00:00", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "refreshed_main": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "all_open_prs_count": 714, + "latest_pr": 1019, + "pinned_issues": [], + "related": [ + { + "number": 1017, + "title": "Independent verification: complete R439 single-ADD omission atlas", + "head": "b66839f4707e4580524b0f4031d4edc1be939e27", + "user": "woklerx", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1017" + }, + { + "number": 1016, + "title": "Negative result: PR952 frame assignments cannot improve its bit moment", + "head": "83e8e4ce9a556eb890c02af79b43b1505fd9cead", + "user": "ToikY", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1016" + }, + { + "number": 1015, + "title": "Finite bit construction: multi-write shear programs for all ten R439 phase-B blocks (24,305 -> 24,053 ADDs, no new kappa)", + "head": "7588c797f4a4e9f2b9fc663cfa6e35afcac05e06", + "user": "navinor", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1015" + }, + { + "number": 1003, + "title": "Finite bit construction: R480 Q-node2 saves 18 ADDs (no new kappa)", + "head": "b0eda846c34413dabd1e75402b8ad730f8940ff2", + "user": "ToikY", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1003" + }, + { + "number": 1002, + "title": "Finite bit construction: frame272 reaches a guarded 12-ADD minimum (no new kappa)", + "head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "user": "woklerx", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1002" + }, + { + "number": 980, + "title": "Finite bit construction: full-prefix admission saves 240 R439 ADDs (no new kappa)", + "head": "ba1cf68bef0c97dfb120add04304e2de0db6f29c", + "user": "bitplane", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/980" + }, + { + "number": 823, + "title": "Research construction: shorten historical R480 quad 1 by 12 XORs (no new kappa)", + "head": "83d547e30fed98682ffc6eacbeeaafa96cfb42fb", + "user": "FanPUYen", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/823" + } + ], + "prior_result": { + "pr": 1002, + "head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "same_ordered_integer_program": true, + "wire_map": [ + 2, + 3, + 1, + 4, + 0, + 5 + ], + "priority": "prior unconstrained 11 and guarded 12 minima credited to PR1002", + "new_evidence": "complete 252-program census, four R480 contextual precision classes, native historical R480 construction; no composition of other PR savings" + }, + "additional_open_r480_scopes": { + "823": "quad1, source head pinned in related", + "1003": "Q-node2, source head pinned in related" + }, + "new_r439_scopes": { + "1015": "phase-B multi-write blocks, distinct matrix/word region", + "1016": "frame-assignment negative result for PR952", + "1017": "single-ADD omission atlas for restored-helper D" + } +} diff --git a/research/r480-quad12-exact-seed12/PR1002-WITNESS.json b/research/r480-quad12-exact-seed12/PR1002-WITNESS.json new file mode 100644 index 0000000000..fbf2746c1d --- /dev/null +++ b/research/r480-quad12-exact-seed12/PR1002-WITNESS.json @@ -0,0 +1,258 @@ +{ + "assignment_seed": 6, + "dead_end_distance": 999, + "distance_histogram": { + "0": 1, + "1": 13, + "10": 170901, + "11": 131522, + "12": 67957, + "13": 21526, + "14": 3592, + "15": 318, + "16": 24, + "17": 2, + "2": 113, + "3": 733, + "4": 3559, + "5": 13002, + "6": 36321, + "7": 75746, + "8": 122830, + "9": 162075, + "999": 58188 + }, + "edges": 5005248, + "frame": 272, + "minimum": 11, + "original": [ + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 0, + 1 + ], + [ + 0, + 4 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 5, + 1 + ], + [ + 5, + 4 + ], + [ + 2, + 1 + ], + [ + 2, + 4 + ], + [ + 3, + 1 + ], + [ + 1, + 4 + ], + [ + 4, + 0 + ], + [ + 4, + 5 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 1, + 0 + ], + [ + 1, + 5 + ], + [ + 3, + 0 + ], + [ + 3, + 5 + ], + [ + 3, + 2 + ], + [ + 2, + 0 + ], + [ + 2, + 5 + ] + ], + "overlap_selection": { + "found": true, + "length": 12, + "pr": 936, + "prunes": 100, + "states": 233, + "word_sha256": "3a11fc4675cd708316f9b0d398e0c3b73d626de0f824c5ed9b9c96279cfef091" + }, + "phase": "A", + "registers": [ + 242, + 294, + 296, + 302, + 316, + 501 + ], + "replacement": [ + [ + 3, + 1 + ], + [ + 1, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 2 + ], + [ + 1, + 5 + ], + [ + 0, + 4 + ], + [ + 0, + 2 + ], + [ + 1, + 0 + ], + [ + 2, + 1 + ], + [ + 4, + 2 + ], + [ + 3, + 2 + ] + ], + "reverse_guard": { + "attempts": [ + { + "found": false, + "length": 11, + "prunes": 11, + "states": 30 + }, + { + "found": true, + "length": 12, + "prunes": 0, + "states": 13 + } + ], + "found": true, + "minimum": 12, + "prunes": 11, + "states": 43 + }, + "start": 725, + "states": 868423, + "stop": 748, + "unconstrained_replacement": [ + [ + 3, + 2 + ], + [ + 3, + 1 + ], + [ + 1, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 4 + ], + [ + 1, + 5 + ], + [ + 0, + 4 + ], + [ + 1, + 0 + ], + [ + 4, + 1 + ], + [ + 3, + 1 + ], + [ + 2, + 1 + ] + ] +} diff --git a/research/r480-quad12-exact-seed12/PROOF.md b/research/r480-quad12-exact-seed12/PROOF.md new file mode 100644 index 0000000000..5be1b767cf --- /dev/null +++ b/research/r480-quad12-exact-seed12/PROOF.md @@ -0,0 +1,42 @@ +# Fixed-transfer minimum, complete census and precision admission + +The object is phase A, slice [849,872), at frame 314 of the pinned [PR503](https://github.com/CrocSwap/integer-mult-bounds/pull/503)/510 R480 word. In local order its six existing registers are [307,355,415,439,494,518]. Each elementary ADD changes one destination by adding a distinct source. Replacing these integer additions by XOR gives the actual bit circuit. The old and new programs have the same six-by-six positive integer matrix, so they agree modulo two on every incoming state, including arbitrary helper dirt. Their signed inverse matrices also agree exactly. + +The fixed matrix is: + +```text +3 2 3 3 1 1 +3 3 4 3 1 1 +2 2 3 3 1 1 +3 3 4 4 1 1 +1 1 1 1 1 0 +1 1 1 1 0 1 +``` + +## Minimum and exhaustive shortest-program count + +Any positive unit-ADD program starts at the identity matrix and only increases entries. Every intermediate row therefore remains at least its corresponding identity row. Removing a possible last ADD subtracts one source row from one destination row, provided the result stays entrywise above the identity. This condition is necessary for every possible final gate. Conversely, a sequence of such subtractions that reaches identity reverses to a legal positive program. Repeated writes and arbitrary source/destination choices are allowed; no destination-once restriction is imposed. + +Every subtraction strictly decreases total matrix mass. The backward graph is finite and acyclic. The adapted [PR925](https://github.com/CrocSwap/integer-mult-bounds/pull/925) row-tuple recursion examines every legal successor of each reachable state and computes its exact distance to identity. It visits 868,423 states and 5,005,248 edges. The minimum is 11. The stopping rule is complete graph exhaustion, with a one-million-state failure limit; the actual run completes below that limit. The seed 12 selects the object, not a random sample of this graph. + +A separate flat-byte breadth-first implementation, also adapted and credited to [PR925](https://github.com/CrocSwap/integer-mult-bounds/pull/925), imports no search code. It checks the complete layers of depths zero through ten before first reaching identity at depth eleven. It visits 798,401 states and processes 4,163,706 edges from completed layers. Path multiplicities are accumulated when different gate orders meet the same state. Every shortest path has a shortest prefix, so retaining only minimum-depth arrivals loses no shortest program. This independently counts 252 shortest programs. + +The supplied census has 252 distinct eleven-gate programs. Each is checked independently against the fixed target matrix. The independent total count, distinctness and validity together establish that the census contains every shortest program in this class. The census is not a proof about general Boolean circuits, signed additions, extra registers or different integer lifts. + +## Four reverse classes and the local guard + +The 252 programs fall into four classes with identical reverse positive matrices, of sizes 108, 72, 36 and 36. Every shortest program increases exactly three entries relative to the old reverse positive matrix. Thus none meets the entrywise reverse guard. [PR1002](https://github.com/CrocSwap/integer-mult-bounds/pull/1002) supplies a twelve-gate witness that does meet it after relabeling; the complete census independently corroborates the guarded minimum of twelve. + +[PR1002](https://github.com/CrocSwap/integer-mult-bounds/pull/1002) has priority for the eleven-versus-twelve minimum statement. The explicit map from this package's local indices to its indices is [2,3,1,4,0,5]. The verifier checks equality of the original ordered gate lists after that map, not just an abstract matrix coincidence. No code from that pending contribution is executed. An overlap census tests all 60 R480 quads under all 720 wire permutations; only quad 12 has this exact positive transfer. + +## Complete-word substitution and costs + +Each replacement uses all six old registers at one unchanged frame, with no external read inside the replaced slice. Equal Boolean boundary states preserve every later read. C is rebuilt as the literal reverse of all z-destination gates in A and B at the full frame, preserving the inherited scalar-interface contract. No borrowed wire or unpaid operation is introduced. Every register follows its original ordered frame path; the independent record emitter and native checker verify this, including copy lifecycles and source restoration. + +Twelve forward ADDs and twelve cleanup ADDs are removed. The complete cost, including dirt compensation, scatter, source reads, cleanup and frame operations, is 33,934 ADDs, 2,940 MOVEs, nine COPYs and nine ERASEs. The paid histogram and rank mass remain unchanged, so this is a finite scalar saving, not a recurrence-exponent improvement. + +For precision, the checker interprets every emitted scalar instruction in both orientations with nonnegative bounds, including temporary copies and resets. The old forward/reverse maxima are 176,135 and 3,751,204. The four shortest-program classes have reverse maxima 3,723,720, 3,727,336, 3,723,748 and 3,729,576, respectively, with the same forward maximum. The inherited local envelope is 64 times F cubed times B squared; every class fits strictly below 2 to the power 104. + +One representative suffices for each reverse class because its forward and reverse positive maps are identical to those of every member. Within either substituted block, positive additions are coordinatewise monotone, so the largest internal value occurs by the block's end. Identical boundary maps therefore give identical complete-word maximum bounds. Every census member is also checked to touch all six wires. Complete set-valued replay verifies the chosen word on all 720 input columns, and the unchanged C++ harness verifies the five-, nine- and eleven-stage formal columns. + +This establishes only the stated finite contract and scoped minima. The native local envelope is not a newly certified whole-hosted invoice. All inherited physical, compiler, precision/tape and analytic assumptions remain; no proof-assistant certification of the multiplication theorem is asserted. diff --git a/research/r480-quad12-exact-seed12/README.md b/research/r480-quad12-exact-seed12/README.md new file mode 100644 index 0000000000..450c69f4ee --- /dev/null +++ b/research/r480-quad12-exact-seed12/README.md @@ -0,0 +1,49 @@ +# R480 quad 12: complete shortest-circuit census and prefix admission + +This finite bit-supplier construction replaces the historical [PR503](https://github.com/CrocSwap/integer-mult-bounds/pull/503)/510 R480 quad 12 with 11 rather than 23 ADDs. Its mandatory literal cleanup saves another 12, reducing the complete local word from 33,958 to 33,934 ADDs. No new kappa is claimed. + +The exact minimum has prior art in [PR1002](https://github.com/CrocSwap/integer-mult-bounds/pull/1002). After the first local experiment, an overlap comparison found that [PR1002](https://github.com/CrocSwap/integer-mult-bounds/pull/1002)'s R439 frame272 is the identical ordered circuit under a wire permutation. That contribution already establishes an unconstrained minimum of 11 and a reverse-guarded minimum of 12. Its committed witness is retained unchanged for comparison. This package credits that result and adds an exhaustive census of all 252 shortest programs, four reverse-transfer classes, and their admission in the historical R480 word. No new-minimum priority or combination with other suppliers is claimed. + +Every shortest program increases three entries of the local reverse positive matrix. Nevertheless, all four reverse classes fit the complete R480 local prefix allowance. Their forward bound is 176,135, and their reverse bounds range from 3,723,720 to 3,729,576. The chosen class has the smallest reverse bound among the 252 shortest programs; its 108 members share that bound. The original reverse bound is 3,751,204. Both original and chosen words need 102 bits under the inherited 104-bit local cap. This is a concrete distinction between a sufficient local entrywise guard and complete-word precision admission. + +## Reproduce + +The primary replay requires Python 3.10+ and no additional packages. Run the command below from the repository root. It rebuilds the complete search and census, checks the independent breadth-first count, verifies every local Boolean input, emits and checks both complete words, and exercises 20 adverse cases. The optional native command needs a C++17 compiler and Boost headers. Set BOOST_INCLUDE to the directory containing boost/multiprecision/cpp_int.hpp; the default is /usr/include. CXX selects the compiler. Pass either command `--output /new/dir` to preserve all logs in a fresh directory. They reject an existing output directory. Certificate regeneration is explicit. + +```sh +python3 -I -B research/r480-quad12-exact-seed12/verify.py --replay-search +``` + +Expected: + +```text +PASS_R480_QUAD12 minimum=11 shortest=252 reverse_classes=4 block=23->11 ADDs=33958->33934 columns=720 controls=20 no_new_kappa +``` + +For the native replay: + +```sh +BOOST_INCLUDE=/path/to/boost python3 -I -B research/r480-quad12-exact-seed12/native.py +``` + +Expected: `PASS_R480_QUAD12_NATIVE words=2 columns=960/1440/1680 bridge_controls=96 ADDs=33958->33934`. + +Package failure-mode checks: + +```sh +python3 -I -B research/r480-quad12-exact-seed12/test_package.py -v +``` + +Expected: four tests pass, including a minimal offline replay in a path with spaces under `-I -O`, a corrupted certificate, a corrupted source and existing-output preservation. + +The chosen word preserves all 720 arbitrary-input columns, including 480 dirty helpers, every register's frame path, 2,940 MOVEs, nine rank-eight COPY/ERASE pairs, and the paid rank mass 5,592. Its paid histogram is unchanged. The C++ replay checks both words at five, nine and eleven stages, covering 960, 1,440 and 1,680 formal columns per word and rejecting 96 omitted-bridge controls. All 672 frame Gram checks and the retained mutable-source interface checks pass. Native bounds and bills agree exactly with the independent Python replay. + +## Review map and limits + +[WITNESS.json](WITNESS.json) contains the literal substitution and complete row-subtraction DAG counts. [MINIMUM-CENSUS.json](MINIMUM-CENSUS.json) lists all 252 distinct shortest programs. [CERTIFICATE.json](CERTIFICATE.json) binds the independent minimum/count, four contextual prefix checks, complete costs and negative controls. [NATIVE-CERTIFICATE.json](NATIVE-CERTIFICATE.json) retains every native receipt field except elapsed time and the input path. [PROOF.md](PROOF.md) explains the finite search class, completeness argument, composition and accounting. [SOURCES.json](SOURCES.json) records SHA-256 and Git-blob identities, with contextual sources separated from runtime inputs. + +The exact base is 2921874911956718fcaaaf9396fe8267b3cfa9f0. Its selected [PR942](https://github.com/CrocSwap/integer-mult-bounds/pull/942) result remains conditional kappa 0.001661960547713947 with unchanged [PR589](https://github.com/CrocSwap/integer-mult-bounds/pull/589) bits. The R480 word is historical, and this contribution does not replace the selected supplier. Only this research package is added. No helper, source access, copy, frame change, restoration or recursive child is omitted from the complete local accounting. + +The result is restricted to six existing wires, positive unit ADDs, one exact integer transfer and its literal cleanup. It does not minimize arbitrary XOR circuits, circuits with scratch, or the whole supplier. Full hosted emission, a global invoice, supplier binding and outer assembly remain separate. The inherited all-size/compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic obligations remain conditional. Finite tests do not formally verify the multiplication theorem. No selected cold replay, full-suite pass, remote CI pass or measured multiplication speedup is claimed. Validation details and the bounded repository-wide attempt are recorded in VALIDATION.json. + +Prepared for Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance in research, implementation, verification and writing. One AI agent; no independent human review. Apache-2.0. See [NOTICE.md](NOTICE.md) for predecessor attribution. diff --git a/research/r480-quad12-exact-seed12/SOURCES.json b/research/r480-quad12-exact-seed12/SOURCES.json new file mode 100644 index 0000000000..dc1057a471 --- /dev/null +++ b/research/r480-quad12-exact-seed12/SOURCES.json @@ -0,0 +1,121 @@ +{ + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "historical_supplier_heads": { + "503": "3f27147013fdd4fa0aed825cb47bff3376c452eb", + "510": "64edee18af02aab0c1696b677a0287dd0146381b" + }, + "execution_inputs": { + "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-dead-totals/data/bitE8mut-r480.json.gz": { + "sha256": "92e399e9a486b55229b5624632ac54f800dd9e022f2aee97f1e5f264bbc0ef5c", + "git_blob": "8e59c4b5380d522b1c1cb930029a71556b2fa65f" + }, + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": { + "sha256": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "git_blob": "3632d370486a02f5456f7643ced03f8c925b2350" + }, + "research/e8-bit-carrier-skeleton/code/bit/independent/relax.py": { + "sha256": "d6e9f58de3fa41f538516b6227c249d61fb30f0f6843027cc8a07a1a372fa6b6", + "git_blob": "a37e8b8176080d4a977bb48bd25f92f4a62b156b" + }, + "research/e8-bit-carrier-skeleton/code/bit/independent/checkword.py": { + "sha256": "11bf9620ca9db16d52d9fe806b814fc9ec9a89c4d7645354d1861d96f6e805ad", + "git_blob": "da4e0fe05067184d4dab1e130ae1384c1fa983f5" + }, + "research/e8-bit-carrier-skeleton/code/bit/independent/interface.py": { + "sha256": "2c63a039f97e3a11ce5a6b83302d4f5beda160c1db14164a5a9b0855aeb19d3c", + "git_blob": "8beb87c39a07e389c8f83f32ab9d17f8097ed9b1" + }, + "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": { + "sha256": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "git_blob": "f6d7afe3e623208c4207b6a683a1e3e49249e31c" + }, + "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": { + "sha256": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "git_blob": "cb1233c7e96b1aa8bbf4d2e4165d75ab0dca64b9" + }, + "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": { + "sha256": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "git_blob": "42bb232fbec4de703e70cc13dc2f39a3b43a3a01" + }, + "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": { + "sha256": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "git_blob": "82d69f7c5d044c9887c96b90c97f5639083ecd14" + }, + "research/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py": { + "sha256": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608", + "git_blob": "b740d47295c02692260d7cc01874a49fe48f78ab" + }, + "research/e8-bit-carrier-skeleton/code/pricing/moment.py": { + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "git_blob": "7d697cb45203fe72d97037403d6da41f71f3b7fd" + }, + "research/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py": { + "sha256": "98cd03bc9582e7bd0ab194c191ea8eea940539e510051443ab9fd3e572a364ab", + "git_blob": "7f16d930302ae879c562dd58e085d9747fcac077" + }, + "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": { + "sha256": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "git_blob": "fc5664e929d9a81d9b4926bee049a93330be86ec" + } + }, + "context_only_not_runtime": { + "research/r439-frame267-seed01/search.py": { + "sha256": "10eaa07ea45c791733e33bb04ee7c2587ae68c538db92ba22103879a5a7448c7", + "git_blob": "48db43e1d70f1f3f056ac8b0dffbf9501cb2d567" + }, + "research/r439-frame267-seed01/optimality.py": { + "sha256": "096422e0f5aec874461814de815df724a5bb10cf24d58e3145cc7fa1992c97ad", + "git_blob": "93067b9df53cc28535e8d9a5c9dc1728c6bc8b16" + }, + "research/r439-frame267-seed01/native.py": { + "sha256": "102a891ce20e43e309bd8ffe2ab5270c2897aedd95ab820dea39b162b6b71f6b", + "git_blob": "7a8b5eeacb1784aa2090aa18139dcf10fa0c7e7f" + }, + "research/r439-six-wire-boolean/verify.py": { + "sha256": "85afc79d0a0d6e64f632ecb2f69d1107ddd7a717ecf17665647d5e4caf907148", + "git_blob": "3131c9c08ef1f2398267a18b6b5a3ca0da166df1" + }, + "research/e8-bit-carrier-skeleton/NOTICE.md": { + "sha256": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "git_blob": "5a0ecdcd2c7fad0488740a1da0f633b73b56a809" + }, + "CONTRIBUTING.md": { + "sha256": "1cae543effcabab91dab7f78423ee9283e60fb504f10848483d153331cd72bc4", + "git_blob": "acda5f534dd9e54eb80479cd15ccc12fafe39792" + }, + "docs/research/pr-ledger.md": { + "sha256": "3599d82c7e47728217ffc6662eed365f2c136a20ccca393accc3ff228ff6163d", + "git_blob": "f89195ef785d96e7a4b4a132a50e56e0aee57f6d" + }, + "docs/research/current-status.md": { + "sha256": "9ef8355371d93f344e0462796d515d40a065c4f19534a8540b8d959b51a02aaa", + "git_blob": "28925b5905e93e5d473916a3e236f1821b2d61d6" + }, + "certificates/selected-result.json": { + "sha256": "1d35283cb0ce3f8db1f285683933517f9e87475d295e2b6316399ad9928c81c3", + "git_blob": "3d7529d77a5f22d8c6f64f98bd5a0e71b8eee892" + }, + "docs/research/community-batch952-review.md": { + "sha256": "04db59dfc2c31453229b6061bbf59547e71ce3abdc0ce0f6779144bb0dde127b", + "git_blob": "512ce9f18b32007bea71452eb5f3eb85c4d577ad" + }, + "research/community-frontier942-audit/ASSEMBLY.json": { + "sha256": "4b2894956e594e408e111d806c842f2ed2c32aefcadff93fad69ff0b46f1991a", + "git_blob": "9e71e9c1a1c1cbd1979f0c7bac87495322cbfad0" + }, + "research/e8-bit-p111-tuned/SOURCE-pr510.json": { + "sha256": "5e84c26ba837ce029acd1b5089e5533d2ebde793deede84215322112e95e06f8", + "git_blob": "f44af5ca75faa5871c020fa3154abbb1c2b4b3d4" + } + }, + "comparison_inputs": { + "research/r480-quad12-exact-seed12/PR1002-WITNESS.json": { + "sha256": "97008b84dc93a1b33364da0f168aacf1ec0011197685d4634784b820b03362ba", + "git_blob": "fbf2746c1de5296c215d12dd78ada338155f8f60", + "upstream_path": "research/r439-frame272-seed06/WITNESS.json", + "source_pr": 1002, + "source_head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "scope": "Exact prior ordered-circuit and guarded-witness comparison; no peer implementation imported." + } + } +} diff --git a/research/r480-quad12-exact-seed12/VALIDATION.json b/research/r480-quad12-exact-seed12/VALIDATION.json new file mode 100644 index 0000000000..43fd37a3df --- /dev/null +++ b/research/r480-quad12-exact-seed12/VALIDATION.json @@ -0,0 +1,75 @@ +{ + "classification": "finite construction and complete shortest-program precision census; no new kappa", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "assignment_seed": 12, + "tested_python": [ + "3.14.6", + "3.12.2" + ], + "primary_command": "python3 -I -B research/r480-quad12-exact-seed12/verify.py --replay-search", + "primary_result": "PASS_R480_QUAD12 minimum=11 shortest=252 reverse_classes=4 block=23->11 ADDs=33958->33934 columns=720 controls=20 no_new_kappa", + "primary_checks": { + "full_DAG_states": 868423, + "full_DAG_edges": 5005248, + "BFS_states": 798401, + "BFS_completed_layer_edges": 4163706, + "shortest_programs": 252, + "reverse_classes": 4, + "complete_dirty_columns_each_orientation": 720, + "local_Boolean_inputs_per_program": 64, + "frame_Grams_per_word": 672, + "negative_controls": 20 + }, + "native": { + "command": "BOOST_INCLUDE=/path/to/boost python3 -I -B research/r480-quad12-exact-seed12/native.py", + "status": "PASS", + "words": 2, + "stages": [ + 5, + 9, + 11 + ], + "formal_columns_each_word": [ + 960, + 1440, + 1680 + ], + "rejected_bridge_controls": 96, + "compiler": "Apple clang 21.0.0", + "boost": "1.87.0", + "boost_archive_sha256": "af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89", + "boost_archive_source": "https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.bz2", + "native_Python_full_bill_and_bound_equality": true + }, + "package_tests": { + "count": 4, + "status": "PASS", + "optimized_minimal_offline_replay": true, + "corrupt_receipt_and_source_rejected": true, + "existing_output_preserved": true + }, + "selected_record": { + "status": "PASS", + "tests": 25, + "kappa": "0.001661960547713947" + }, + "repository_wide_attempt": { + "exit_code": null, + "timed_out": true, + "command": "make verify", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "scope": "untouched detached base checkout", + "seconds": 180.00458062510006, + "timeout_seconds": 180, + "python": "3.14.6", + "tail": " 9128,\n 9240,\n 10912,\n 5656,\n 8456,\n 4284,\n 7598,\n 4872,\n 7448,\n 4536,\n 7803,\n 4228,\n 8232,\n 4872,\n 7482,\n 7224,\n 5901,\n 8400,\n 11550,\n 1512,\n 5180,\n 0,\n 87\n ],\n \"certificate_equal\": true\n }\n}\npython3 scripts/partial_swap_network.py\nPASS partial-swap kappa=942293/500000000000 = 1.884586e-6\n29 strict constraints; 7 strict assembly margins; bit/complex moments and precision guard\n", + "orphan_process_check": "No endpoint-gauge or detached-base test children remain." + }, + "remaining": [ + "No selected cold replay", + "No whole-hosted invoice or outer assembly for this candidate", + "No remote CI pass claimed", + "No full multiplication theorem or unrestricted XOR optimum" + ], + "source_scope": "Only this package added; source archives, upstream, selected frontier and original checkers unchanged." +} diff --git a/research/r480-quad12-exact-seed12/WITNESS.json b/research/r480-quad12-exact-seed12/WITNESS.json new file mode 100644 index 0000000000..ef1aeabfad --- /dev/null +++ b/research/r480-quad12-exact-seed12/WITNESS.json @@ -0,0 +1,182 @@ +{ + "assignment_seed": 12, + "dead_end_distance": 999, + "distance_histogram": { + "0": 1, + "1": 13, + "10": 170901, + "11": 131522, + "12": 67957, + "13": 21526, + "14": 3592, + "15": 318, + "16": 24, + "17": 2, + "2": 113, + "3": 733, + "4": 3559, + "5": 13002, + "6": 36321, + "7": 75746, + "8": 122830, + "9": 162075, + "999": 58188 + }, + "edges": 5005248, + "frame": 314, + "minimum": 11, + "original": [ + [ + 4, + 0 + ], + [ + 4, + 1 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 0 + ], + [ + 5, + 1 + ], + [ + 5, + 2 + ], + [ + 5, + 3 + ], + [ + 0, + 2 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 3 + ], + [ + 3, + 4 + ], + [ + 3, + 5 + ], + [ + 3, + 0 + ], + [ + 3, + 1 + ], + [ + 2, + 4 + ], + [ + 2, + 5 + ], + [ + 1, + 4 + ], + [ + 1, + 5 + ], + [ + 1, + 0 + ], + [ + 0, + 4 + ], + [ + 0, + 5 + ] + ], + "phase": "A", + "quad": 12, + "registers": [ + 307, + 355, + 415, + 439, + 494, + 518 + ], + "replacement": [ + [ + 1, + 2 + ], + [ + 2, + 3 + ], + [ + 1, + 0 + ], + [ + 3, + 1 + ], + [ + 5, + 3 + ], + [ + 4, + 3 + ], + [ + 2, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 2 + ], + [ + 1, + 2 + ], + [ + 0, + 2 + ] + ], + "shortest_programs": 252, + "start": 849, + "states": 868423, + "stop": 872 +} diff --git a/research/r480-quad12-exact-seed12/common.py b/research/r480-quad12-exact-seed12/common.py new file mode 100644 index 0000000000..ebe8db0c19 --- /dev/null +++ b/research/r480-quad12-exact-seed12/common.py @@ -0,0 +1,52 @@ +"""Pinned inputs for the R480 quad12 experiment; Apache-2.0. + +Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance. +""" +import gzip +import hashlib +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +WORD = "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-dead-totals/data/bitE8mut-r480.json.gz" +BIT = "research/e8-bit-carrier-skeleton/code/bit" +REGS = [307, 355, 415, 439, 494, 518] +START, STOP, FRAME = 849, 872, 314 + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def canonical(value): + return json.dumps(value, sort_keys=True, separators=(",", ":")).encode() + + +def digest(value): + return hashlib.sha256(canonical(value)).hexdigest() + + +def load(path): + return json.loads(Path(path).read_text()) + + +def check_sources(): + pins = load(HERE / "SOURCES.json") + for name, expected in {**pins["execution_inputs"], **pins.get("comparison_inputs", {})}.items(): + data = (ROOT / name).read_bytes() + need(hashlib.sha256(data).hexdigest() == expected["sha256"], "source SHA256 mismatch: " + name) + blob = hashlib.sha1(b"blob " + str(len(data)).encode() + b"\0" + data).hexdigest() + need(blob == expected["git_blob"], "source Git blob mismatch: " + name) + return pins + + +def original_word(): + check_sources() + word = json.loads(gzip.decompress((ROOT / WORD).read_bytes())) + need((word["v"], word["R"], word["h"]) == (120, 480, 8), "wrong historical word") + block = word["A"][START:STOP] + need(len(block) == 23 and all(f == FRAME and len(ss) == 1 for f, _, ss in block), "source slice") + need(sorted({r for _, d, ss in block for r in [d, *ss]}) == REGS, "source registers") + return word diff --git a/research/r480-quad12-exact-seed12/evidence/candidate-grams.log b/research/r480-quad12-exact-seed12/evidence/candidate-grams.log new file mode 100644 index 0000000000..0d1b03bada --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/candidate-grams.log @@ -0,0 +1 @@ +PASS e8ham Gram: 672 frames checked, all nondegenerate and positive definite; prime witnesses valid; max determinant bits 17; primes [2]; by dim {0: 1, 1: 120, 2: 180, 4: 70, 6: 180, 7: 120, 8: 1} diff --git a/research/r480-quad12-exact-seed12/evidence/candidate-independent.log b/research/r480-quad12-exact-seed12/evidence/candidate-independent.log new file mode 100644 index 0000000000..59e02ea373 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/candidate-independent.log @@ -0,0 +1,7 @@ +labels: 120 distinct lines of norm 2 (pairwise |ip| <= 1), spanning rank 8 +legality + exact F2 on all 720 columns: PASS (gates D/A/B/C = 120/2696/240/2696) +relaxed check: 1154 gates have a source register as destination; all 120 sources restored exactly +nondegeneracy: 671 used frames, all Gram dets > 0 (positive-definite form); primes in dets: [2] +histogram {1: 6000, 2: 7200, 4: 1140, 6: 600, 7: 240, 8: 45, 14: 240, 18: 240} m 40 W 960 mass 38280 deficit 120 (4v-5L = 120 ) maxchild 18 +no envelope saving in [0.00128681343906332590, 0.00128681343906332590] +bad envelope saving in [0.00128681343819851354, 0.00128681343819851354] diff --git a/research/r480-quad12-exact-seed12/evidence/candidate-interface.log b/research/r480-quad12-exact-seed12/evidence/candidate-interface.log new file mode 100644 index 0000000000..5f619e7ea1 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/candidate-interface.log @@ -0,0 +1,3 @@ +PASS PR #425 interface hypotheses: no target feeds a source or helper; D at frame 0 (targets <- helpers); C = literal U^-1 at the full frame (2696 gates); B writes only targets + sources written in phase A: 577 gates into 117 of 120 source registers, at frame dimensions {4: 577}; operands: {'source': 577} + phase-B gates reading a (rewritten) source register: 120; the matching 577 cleanup gates restore every source diff --git a/research/r480-quad12-exact-seed12/evidence/make-verify-tail.log b/research/r480-quad12-exact-seed12/evidence/make-verify-tail.log new file mode 100644 index 0000000000..bb3f6777f8 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/make-verify-tail.log @@ -0,0 +1,30 @@ + 9128, + 9240, + 10912, + 5656, + 8456, + 4284, + 7598, + 4872, + 7448, + 4536, + 7803, + 4228, + 8232, + 4872, + 7482, + 7224, + 5901, + 8400, + 11550, + 1512, + 5180, + 0, + 87 + ], + "certificate_equal": true + } +} +python3 scripts/partial_swap_network.py +PASS partial-swap kappa=942293/500000000000 = 1.884586e-6 +29 strict constraints; 7 strict assembly margins; bit/complex moments and precision guard diff --git a/research/r480-quad12-exact-seed12/evidence/native.log b/research/r480-quad12-exact-seed12/evidence/native.log new file mode 100644 index 0000000000..4c10b800ff --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/native.log @@ -0,0 +1,2 @@ +PASS_R480_QUAD12 minimum=11 shortest=252 reverse_classes=4 block=23->11 ADDs=33958->33934 columns=720 controls=20 no_new_kappa +PASS_R480_QUAD12_NATIVE words=2 columns=960/1440/1680 bridge_controls=96 ADDs=33958->33934 diff --git a/research/r480-quad12-exact-seed12/evidence/original-grams.log b/research/r480-quad12-exact-seed12/evidence/original-grams.log new file mode 100644 index 0000000000..0d1b03bada --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/original-grams.log @@ -0,0 +1 @@ +PASS e8ham Gram: 672 frames checked, all nondegenerate and positive definite; prime witnesses valid; max determinant bits 17; primes [2]; by dim {0: 1, 1: 120, 2: 180, 4: 70, 6: 180, 7: 120, 8: 1} diff --git a/research/r480-quad12-exact-seed12/evidence/original-independent.log b/research/r480-quad12-exact-seed12/evidence/original-independent.log new file mode 100644 index 0000000000..b149708324 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/original-independent.log @@ -0,0 +1,7 @@ +labels: 120 distinct lines of norm 2 (pairwise |ip| <= 1), spanning rank 8 +legality + exact F2 on all 720 columns: PASS (gates D/A/B/C = 120/2708/240/2708) +relaxed check: 1154 gates have a source register as destination; all 120 sources restored exactly +nondegeneracy: 671 used frames, all Gram dets > 0 (positive-definite form); primes in dets: [2] +histogram {1: 6000, 2: 7200, 4: 1140, 6: 600, 7: 240, 8: 45, 14: 240, 18: 240} m 40 W 960 mass 38280 deficit 120 (4v-5L = 120 ) maxchild 18 +no envelope saving in [0.00128681343906332590, 0.00128681343906332590] +bad envelope saving in [0.00128681343819851354, 0.00128681343819851354] diff --git a/research/r480-quad12-exact-seed12/evidence/original-interface.log b/research/r480-quad12-exact-seed12/evidence/original-interface.log new file mode 100644 index 0000000000..4d5240036f --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/original-interface.log @@ -0,0 +1,3 @@ +PASS PR #425 interface hypotheses: no target feeds a source or helper; D at frame 0 (targets <- helpers); C = literal U^-1 at the full frame (2708 gates); B writes only targets + sources written in phase A: 577 gates into 117 of 120 source registers, at frame dimensions {4: 577}; operands: {'source': 577} + phase-B gates reading a (rewritten) source register: 120; the matching 577 cleanup gates restore every source diff --git a/research/r480-quad12-exact-seed12/evidence/package-tests.log b/research/r480-quad12-exact-seed12/evidence/package-tests.log new file mode 100644 index 0000000000..2e534bc155 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/package-tests.log @@ -0,0 +1,9 @@ +test_existing_output_survives (__main__.Package.test_existing_output_survives) ... ok +test_independent_minimum_detects_wrong_claims (__main__.Package.test_independent_minimum_detects_wrong_claims) ... ok +test_minimal_offline_optimized_replay_and_corruptions (__main__.Package.test_minimal_offline_optimized_replay_and_corruptions) ... ok +test_source_location_and_wire_binding (__main__.Package.test_source_location_and_wire_binding) ... ok + +---------------------------------------------------------------------- +Ran 4 tests in 19.504s + +OK diff --git a/research/r480-quad12-exact-seed12/evidence/python312-replay.log b/research/r480-quad12-exact-seed12/evidence/python312-replay.log new file mode 100644 index 0000000000..caafbc402d --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/python312-replay.log @@ -0,0 +1 @@ +PASS_R480_QUAD12 minimum=11 shortest=252 reverse_classes=4 block=23->11 ADDs=33958->33934 columns=720 controls=20 no_new_kappa diff --git a/research/r480-quad12-exact-seed12/evidence/selected-tests.log b/research/r480-quad12-exact-seed12/evidence/selected-tests.log new file mode 100644 index 0000000000..fdc00242c7 --- /dev/null +++ b/research/r480-quad12-exact-seed12/evidence/selected-tests.log @@ -0,0 +1,30 @@ +test_ordinary_nested_inventory (test_selected_inventory_links.SelectedInventoryLinks.test_ordinary_nested_inventory) ... ok +test_pinned_contained_file_alias (test_selected_inventory_links.SelectedInventoryLinks.test_pinned_contained_file_alias) ... ok +test_reject_nested_directory_links (test_selected_inventory_links.SelectedInventoryLinks.test_reject_nested_directory_links) ... ok +test_reject_pinned_escaping_file_alias (test_selected_inventory_links.SelectedInventoryLinks.test_reject_pinned_escaping_file_alias) ... ok +test_reject_self_and_two_link_cycles (test_selected_inventory_links.SelectedInventoryLinks.test_reject_self_and_two_link_cycles) ... ok +test_reject_unenumerated_links (test_selected_inventory_links.SelectedInventoryLinks.test_reject_unenumerated_links) ... ok +test_reject_unlisted_contained_file_alias (test_selected_inventory_links.SelectedInventoryLinks.test_reject_unlisted_contained_file_alias) ... ok +test_reject_wrong_alias_digest (test_selected_inventory_links.SelectedInventoryLinks.test_reject_wrong_alias_digest) ... ok +test_inventory_proof_in_both_layouts (test_selected_proof_binding.SelectedProofBinding.test_inventory_proof_in_both_layouts) ... ok +test_legacy_relative_key_is_not_repository_relative (test_selected_proof_binding.SelectedProofBinding.test_legacy_relative_key_is_not_repository_relative) ... ok +test_missing_and_outside_proofs_rejected (test_selected_proof_binding.SelectedProofBinding.test_missing_and_outside_proofs_rejected) ... ok +test_normalized_proof_path (test_selected_proof_binding.SelectedProofBinding.test_normalized_proof_path) ... ok +test_old_digest_and_arithmetic_guards_remain (test_selected_proof_binding.SelectedProofBinding.test_old_digest_and_arithmetic_guards_remain) ... ok +test_optimized_cli_still_fails_closed (test_selected_proof_binding.SelectedProofBinding.test_optimized_cli_still_fails_closed) ... ok +test_receipts_remain_mutable (test_selected_proof_binding.SelectedProofBinding.test_receipts_remain_mutable) ... ok +test_reject_same_bytes_at_unpinned_path (test_selected_proof_binding.SelectedProofBinding.test_reject_same_bytes_at_unpinned_path) ... ok +test_reject_unpinned_primary_proof (test_selected_proof_binding.SelectedProofBinding.test_reject_unpinned_primary_proof) ... ok +test_resolved_aliases_preserve_existing_path_semantics (test_selected_proof_binding.SelectedProofBinding.test_resolved_aliases_preserve_existing_path_semantics) ... ok +test_source_membership_cannot_be_added_without_inventory_match (test_selected_proof_binding.SelectedProofBinding.test_source_membership_cannot_be_added_without_inventory_match) ... ok +test_supplement_only_proof_in_both_layouts (test_selected_proof_binding.SelectedProofBinding.test_supplement_only_proof_in_both_layouts) ... ok +test_current_selection (test_selected_result.SelectedResult.test_current_selection) ... ok +test_optimized_interpreter_fails_closed (test_selected_result.SelectedResult.test_optimized_interpreter_fails_closed) ... ok +test_reject_changed_supplement (test_selected_result.SelectedResult.test_reject_changed_supplement) ... ok +test_reject_detached_claim_or_proof (test_selected_result.SelectedResult.test_reject_detached_claim_or_proof) ... ok +test_repository_package_inventory_fails_closed (test_selected_result.SelectedResult.test_repository_package_inventory_fails_closed) ... ok + +---------------------------------------------------------------------- +Ran 25 tests in 1.010s + +OK diff --git a/research/r480-quad12-exact-seed12/native.py b/research/r480-quad12-exact-seed12/native.py new file mode 100644 index 0000000000..6405a3fa12 --- /dev/null +++ b/research/r480-quad12-exact-seed12/native.py @@ -0,0 +1,124 @@ +"""Compare the original and replacement words with the pinned cohort checkers. + +Adapted from Ali Romman PR688 and Ross Richardson PR925 by Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance. Apache-2.0. +""" +import json +import os +import shlex +import subprocess +import sys + + +def run(root, out): + package = root / "research/e8-bit-carrier-skeleton" + bit = package / "code/bit" + checkers = bit / "checkers" + python = [sys.executable, "-I", "-B"] + compiler = shlex.split(os.environ.get("CXX", "c++")) + include = os.environ.get("BOOST_INCLUDE", "/usr/include") + flags = ["-O2", "-std=c++17", "-DHDIM=8", "-DNCOPY=9", "-DVPORTS=120", "-DRHELP=480", + "-I" + str(package / "portable-include"), "-I" + str(checkers), "-I" + include] + bindir = out / "bin" + bindir.mkdir() + + def call(name, command): + with (out / (name + ".log")).open("w") as log: + subprocess.run(list(map(str, command)), check=True, stdout=log, stderr=subprocess.STDOUT) + + call("compile-legality", compiler + flags + ["-o", bindir / "legality", checkers / "legality_h.cpp"]) + for pairs in (2, 4, 5): + call("compile-columns" + str(pairs), compiler + flags + ["-DKPAIRS=" + str(pairs), "-o", + bindir / ("columns" + str(pairs)), checkers / "columns_k.cpp"]) + call("relax", python + [bit / "independent/relax.py", out / "relaxed"]) + results = {} + python_receipt = json.loads((out / "RESULT.json").read_text())["words"] + for name in ("original", "candidate"): + call(name + "-independent", [sys.executable, "-I", "-B", out / "relaxed/checkword_mut.py", + out / (name + ".json.gz"), package / "code/pricing"]) + base = out / name + records, cin, cout = (base / item for item in ("records", "cin", "cout")) + call(name + "-cohort", python + [bit / "regression/stage_cohort.py", records, records, cin, cout]) + call(name + "-legality", [bindir / "legality", cin, cout, cout / "legality.json"]) + legality = json.loads((cout / "legality.json").read_text()) + if legality["status"] != "PASS_INDEPENDENT_COHORT_LEGALITY_SOURCE_OWNERS_AND_LIFECYCLE": + raise ValueError("Legality did not pass") + results[name] = {"legality": legality, "stages": {}} + for pairs in (2, 4, 5): + receipt = cout / ("columns.json" if pairs == 2 else "columns" + str(pairs) + ".json") + call(name + "-columns" + str(pairs), [bindir / ("columns" + str(pairs)), + cout / "COHORT249-RECORDS.bin", receipt]) + data = json.loads(receipt.read_text()) + expected_status = ("PASS_NEW_COHORT249_ALL_FIVE_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" if pairs == 2 + else "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL") + if data["status"] != expected_status: + raise ValueError("Formal columns did not pass") + expected = 6 * (pairs - 1) + if (len(data["negative_controls"]) != expected + or not all(c["rejected"] for c in data["negative_controls"])): + raise ValueError("A bridge control failed") + if data["formal_columns_checked"] != 240 * pairs + 480: + raise ValueError("Wrong formal column count") + reference = python_receipt[name] + prefixes = [int(p["cancellation_free_signed_row_l1_upper"]) for p in data["signed_lift_prefix"]] + expected_profile = [[int(k), v] for k, v in reference["paid_histogram"].items()] + if (prefixes != [reference["F"], reference["B"]] + or data["payload_prefix_upper"] != reference["payload_upper"] + or data["local_scalar_additions"] != reference["ADDs"] + or data["local_raw_H"] != expected_profile): + raise ValueError("Native and independent Python accounting disagree") + data.pop("seconds", None) + data.pop("local_scalar_stream", None) + results[name]["stages"][str(2 * pairs + 1)] = data + for stages in ("5", "9", "11"): + old, new = (results[name]["stages"][stages] for name in ("original", "candidate")) + if old["local_raw_H"] != new["local_raw_H"] or old["local_scalar_additions"] - new["local_scalar_additions"] != 24: + raise ValueError("Paid profile or XOR saving differs") + if int(new["payload_prefix_upper"]) > int(old["payload_prefix_upper"]): + raise ValueError("Payload bound increased") + for a, b in zip(old["signed_lift_prefix"], new["signed_lift_prefix"]): + if a["reverse"] != b["reverse"] or int(b["cancellation_free_signed_row_l1_upper"]) > int(a["cancellation_free_signed_row_l1_upper"]): + raise ValueError("Signed bound increased") + return results + + +def main(): + import argparse + import hashlib + import platform + import tempfile + from pathlib import Path + + here = Path(__file__).resolve().parent + root = here.parents[1] + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--write-certificate', action='store_true') + parser.add_argument('--output', type=Path, help='new output directory; preserve all native logs') + args = parser.parse_args() + pins = json.loads((here / 'SOURCES.json').read_text()) + for path, expected in pins['execution_inputs'].items(): + if hashlib.sha256((root / path).read_bytes()).hexdigest() != expected['sha256']: + raise ValueError('source hash mismatch: ' + path) + if not (Path(os.environ.get('BOOST_INCLUDE', '/usr/include')) / 'boost/multiprecision/cpp_int.hpp').is_file(): + raise ValueError('Set BOOST_INCLUDE to the directory containing boost/multiprecision/cpp_int.hpp') + with tempfile.TemporaryDirectory(prefix='r480-quad12-exact-native-') as temporary: + work = args.output.resolve() if args.output else Path(temporary) / 'work' + # The verifier refuses an existing path, and emits the two bound inputs. + subprocess.run([sys.executable, '-I', '-B', str(here / 'verify.py'), '--output', str(work)], check=True) + result = run(root, work) + receipt = {'schema': 'r480-quad12-exact-native/1', 'words': result, + 'normalization': 'Only seconds and local_scalar_stream removed; all other native fields retained.'} + path = here / 'NATIVE-CERTIFICATE.json' + if args.write_certificate: + path.write_text(json.dumps(receipt, sort_keys=True, indent=2) + '\n') + elif json.dumps(receipt, sort_keys=True) != json.dumps(json.loads(path.read_text()), sort_keys=True): + raise ValueError('native certificate mismatch') + (work / 'ENVIRONMENT.json').write_text(json.dumps({'python': sys.version, 'platform': platform.platform(), + 'compiler': subprocess.check_output(shlex.split(os.environ.get('CXX', 'c++')) + ['--version'], text=True), + 'boost_include': os.environ.get('BOOST_INCLUDE', '/usr/include'), + 'boost_version_header_sha256': hashlib.sha256((Path(os.environ.get('BOOST_INCLUDE', '/usr/include')) / 'boost/version.hpp').read_bytes()).hexdigest(), + 'boost_cpp_int_sha256': hashlib.sha256((Path(os.environ.get('BOOST_INCLUDE', '/usr/include')) / 'boost/multiprecision/cpp_int.hpp').read_bytes()).hexdigest()}, indent=2) + '\n') + print('PASS_R480_QUAD12_NATIVE words=2 columns=960/1440/1680 bridge_controls=96 ADDs=33958->33934') + + +if __name__ == '__main__': + main() diff --git a/research/r480-quad12-exact-seed12/optimality.py b/research/r480-quad12-exact-seed12/optimality.py new file mode 100644 index 0000000000..db91e51cca --- /dev/null +++ b/research/r480-quad12-exact-seed12/optimality.py @@ -0,0 +1,55 @@ +"""Independent breadth-first proof of the fixed integer-transfer minimum. + +Uses flat integer matrices, breadth-first layers and no search.py imports. +The graph contains every possible last positive ADD, including repeated writes. +Ross Richardson PR925; adapted for this package by Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance. Apache-2.0. +""" + + +def check_minimum(matrix, claimed): + if type(claimed) is not int or not 0 <= claimed <= 23: + raise ValueError('invalid claimed distance') + if len(matrix) != 6 or any(len(row) != 6 for row in matrix): + raise ValueError('matrix shape') + if any(type(x) is not int or not 0 <= x <= 255 for row in matrix for x in row): + raise ValueError('matrix entries') + target = bytes(x for row in matrix for x in row) + identity = bytes(int(i == j) for i in range(6) for j in range(6)) + # Count every path of the minimum depth, even when commuting gates merge. + frontier, seen, layers = {target: 1}, {target}, [1] + edges = 0 + for depth in range(claimed + 1): + if identity in frontier: + if depth != claimed: + raise ValueError('claimed minimum exceeds independent distance') + return {'minimum': depth, 'shortest_programs': frontier[identity], + 'layers': layers, 'visited_states': len(seen), + 'edges_from_completed_layers': edges, + 'completed_expansion_depths': list(range(depth))} + if depth == claimed: + raise ValueError('claimed minimum is below independent distance') + following = {} + for state, ways in frontier.items(): + # Candidate last gate d += s; removing it must leave >= I entrywise. + for destination in range(0, 36, 6): + for source in range(0, 36, 6): + if destination == source: + continue + reduced = [] + for col in range(6): + entry = state[destination + col] - state[source + col] + if entry < int(col == destination // 6): + break + reduced.append(entry) + if len(reduced) != 6: + continue + edges += 1 + previous = state[:destination] + bytes(reduced) + state[destination + 6:] + if previous not in seen: + following[previous] = following.get(previous, 0) + ways + seen.update(following) + frontier = following + layers.append(len(frontier)) + if len(seen) > 1_000_000: + raise ValueError('independent state budget exceeded') + raise ValueError('unreachable') diff --git a/research/r480-quad12-exact-seed12/search.py b/research/r480-quad12-exact-seed12/search.py new file mode 100644 index 0000000000..18564f8877 --- /dev/null +++ b/research/r480-quad12-exact-seed12/search.py @@ -0,0 +1,136 @@ +"""Exact nonnegative row-subtraction DAG for one fixed integer transfer. + +Adapted from Ross Richardson PR925 by Hanson Sun (@bbMisk), with substantial OpenAI Codex assistance. Apache-2.0. +No search across frames, wires, integer transfers or general F2 circuits. +""" +import argparse +from collections import Counter +from functools import cache +import gzip +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +WORD = ROOT / 'research/e8-bit-p111-tuned/vendor/pr510/e8-r480-dead-totals/data/bitE8mut-r480.json.gz' +REGS = [307, 355, 415, 439, 494, 518] +IDENTITY = tuple(tuple(int(i == j) for j in range(6)) for i in range(6)) + + +def transfer(ops): + rows = list(IDENTITY) + for dst, src in ops: + rows[dst] = tuple(x + y for x, y in zip(rows[dst], rows[src])) + return tuple(rows) + + +def nominate(original): + target = transfer(original) + distances, choices, path_counts = {}, {}, {} + edges = 0 + states = 0 + infinity = 999 # Strictly above the original 23-step witness. + + @cache + def distance(rows): + nonlocal edges, states + states += 1 + if states > 1_000_000: + raise ValueError('state budget exceeded; no optimum established') + if rows == IDENTITY: + distances[rows] = 0 + path_counts[rows] = 1 + return 0 + best = infinity + ways = 0 + for dst in range(6): + for src in range(6): + if dst == src or rows[dst][dst] - rows[src][dst] < 1: + continue + difference = tuple(x - y for x, y in zip(rows[dst], rows[src])) + if min(difference) < 0: + continue + previous = list(rows) + previous[dst] = difference + previous = tuple(previous) + edges += 1 + length = 1 + distance(previous) + if length < best: + best = length + choices[rows] = (dst, src, previous) + ways = path_counts[previous] + elif length == best and best < infinity: + ways += path_counts[previous] + distances[rows] = best + path_counts[rows] = ways + return best + + minimum = distance(target) + if minimum >= infinity: + raise ValueError('no positive-addition factorization found') + programs = [] + + def enumerate_shortest(rows, backward): + if rows == IDENTITY: + programs.append(list(reversed(backward))) + return + for dst in range(6): + for src in range(6): + if dst == src or rows[dst][dst] - rows[src][dst] < 1: + continue + difference = tuple(x-y for x, y in zip(rows[dst], rows[src])) + if min(difference) < 0: + continue + previous = list(rows) + previous[dst] = difference + previous = tuple(previous) + if distances[previous] + 1 == distances[rows]: + enumerate_shortest(previous, backward + [[dst, src]]) + + if path_counts[target] > 100_000: + raise ValueError('shortest-program enumeration budget exceeded') + enumerate_shortest(target, []) + if len(programs) != path_counts[target]: + raise ValueError('enumeration does not match the independent DAG path count') + backward, current = [], target + while current != IDENTITY: + dst, src, current = choices[current] + backward.append([dst, src]) + return {'replacement': list(reversed(backward)), 'minimum': minimum, + 'states': len(distances), 'edges': edges, + 'shortest_programs': path_counts[target], 'programs': programs, + 'distance_histogram': {str(k): v for k, v in sorted(Counter(distances.values()).items())}, + 'dead_end_distance': infinity} + + +def original_ops(): + word = json.loads(gzip.decompress(WORD.read_bytes())) + segment = word['A'][849:872] + if len(segment) != 23 or any(f != 314 or len(ss) != 1 for f, _, ss in segment): + raise ValueError('source slice changed') + return [[REGS.index(dst), REGS.index(ss[0])] for _, dst, ss in segment] + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--write-witness', action='store_true') + args = parser.parse_args() + import runpy + runpy.run_path(str(HERE / "common.py"))["check_sources"]() + old = original_ops() + result = {'phase': 'A', 'start': 849, 'stop': 872, 'frame': 314, 'quad': 12, + 'registers': REGS, 'assignment_seed': 12, 'original': old, **nominate(old)} + census = {'format': 'r480-quad12-shortest-programs/1', 'minimum': result['minimum'], + 'programs': result.pop('programs')} + path = HERE / 'WITNESS.json' + census_path = HERE / 'MINIMUM-CENSUS.json' + if args.write_witness: + path.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n') + census_path.write_text(json.dumps(census, separators=(',', ':')) + '\n') + elif (result != json.loads(path.read_text()) or census != json.loads(census_path.read_text())): + raise ValueError('search witness or complete census mismatch') + print(f"PASS_R480_QUAD12_SEARCH states={result['states']} edges={result['edges']} minimum={result['minimum']} programs={result['shortest_programs']}") + + +if __name__ == '__main__': + main() diff --git a/research/r480-quad12-exact-seed12/test_package.py b/research/r480-quad12-exact-seed12/test_package.py new file mode 100644 index 0000000000..49f4a583a1 --- /dev/null +++ b/research/r480-quad12-exact-seed12/test_package.py @@ -0,0 +1,92 @@ +"""Admission and packaging failure modes. Hanson Sun, Codex assistance; Apache-2.0.""" +import copy +import json +import os +from pathlib import Path +import runpy +import shutil +import subprocess +import sys +import tempfile +import unittest + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +class Package(unittest.TestCase): + def test_independent_minimum_detects_wrong_claims(self): + check = runpy.run_path(str(HERE / "optimality.py"))["check_minimum"] + identity = [[int(i == j) for j in range(6)] for i in range(6)] + one = copy.deepcopy(identity) + one[0][1] = 1 + self.assertEqual(check(identity, 0)["minimum"], 0) + self.assertEqual(check(one, 1)["minimum"], 1) + commuting = copy.deepcopy(one) + commuting[2][3] = 1 + self.assertEqual(check(commuting, 2)["shortest_programs"], 2) + with self.assertRaisesRegex(ValueError, "below independent distance"): + check(one, 0) + with self.assertRaisesRegex(ValueError, "exceeds independent distance"): + check(one, 2) + with self.assertRaisesRegex(ValueError, "invalid claimed distance"): + check(one, True) + + def test_source_location_and_wire_binding(self): + v = runpy.run_path(str(HERE / "verify.py")) + original = v["C"]["original_word"]() + witness = json.loads((HERE / "WITNESS.json").read_text()) + for field, value in (("start", 848), ("frame", 313), ("assignment_seed", True), + ("registers", list(reversed(witness["registers"])))): + bad = copy.deepcopy(witness) + bad[field] = value + with self.subTest(field=field), self.assertRaisesRegex(ValueError, "witness location"): + v["build"](original, bad) + + def test_existing_output_survives(self): + with tempfile.TemporaryDirectory() as directory: + marker = Path(directory) / "marker" + marker.write_text("retain") + result = subprocess.run([sys.executable, "-I", "-O", "-B", str(HERE / "verify.py"), + "--output", directory], capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn("FileExistsError", result.stderr) + self.assertEqual(marker.read_text(), "retain") + + def test_minimal_offline_optimized_replay_and_corruptions(self): + with tempfile.TemporaryDirectory(prefix="quad12 minimal path with spaces ") as directory: + root = Path(directory) + package = root / HERE.relative_to(ROOT) + shutil.copytree(HERE, package, ignore=shutil.ignore_patterns("__pycache__")) + pins = json.loads((HERE / "SOURCES.json").read_text()) + for relative in pins["execution_inputs"]: + target = root / relative + target.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(ROOT / relative, target) + command = [sys.executable, "-I", "-O", "-B", str(package / "verify.py")] + env = {**os.environ, "PYTHONOPTIMIZE": "2", "PYTHONPATH": "/nonexistent/quad12"} + + def run(*extra): + return subprocess.run(command + list(extra), text=True, capture_output=True, env=env) + + good = run() + self.assertEqual(good.returncode, 0, good.stdout + good.stderr) + certificate = package / "CERTIFICATE.json" + before = certificate.read_bytes() + corrupted = json.loads(before) + corrupted["independent_minimum"]["layers"][0] = True + certificate.write_text(json.dumps(corrupted)) + bad = run() + self.assertNotEqual(bad.returncode, 0) + self.assertIn("certificate mismatch", bad.stderr) + certificate.write_bytes(before) + source = root / next(iter(pins["execution_inputs"])) + source.write_bytes(source.read_bytes() + b"corrupt") + bad = run("--write-certificate") + self.assertNotEqual(bad.returncode, 0) + self.assertIn("source SHA256 mismatch", bad.stderr) + self.assertEqual(certificate.read_bytes(), before) + + +if __name__ == "__main__": + unittest.main() diff --git a/research/r480-quad12-exact-seed12/verify.py b/research/r480-quad12-exact-seed12/verify.py new file mode 100644 index 0000000000..1b1c503016 --- /dev/null +++ b/research/r480-quad12-exact-seed12/verify.py @@ -0,0 +1,399 @@ +"""Finite R480 quad12 construction, exact minimum and complete local accounting. + +Hanson Sun (@bbMisk), substantial OpenAI Codex assistance; Apache-2.0. +Whole-word checks follow the contracts of PR691/925/952. The record emitter +and set-valued replay below do not import the supplier exporter or search. +""" +import argparse +from collections import Counter +import copy +import gzip +import itertools +import json +from pathlib import Path +import runpy +import struct +import subprocess +import sys +import tempfile + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +HERE, ROOT, REGS = C["HERE"], C["ROOT"], C["REGS"] +need, digest, load = C["need"], C["digest"], C["load"] + + +def same(a, b, message): + # Reject bool-for-int substitutions and preserve every JSON field. + need(C["canonical"](a) == C["canonical"](b), message) + + +def transfer(ops, signed_inverse=False): + need(type(ops) is list, "gate list") + columns = [] + for col in range(6): + values = [int(i == col) for i in range(6)] + for gate in ops[::-1] if signed_inverse else ops: + need(type(gate) is list and len(gate) == 2, "gate pair") + d, s = gate + need(type(d) is int and type(s) is int and 0 <= d < 6 and 0 <= s < 6 and d != s, + "gate indices") + values[d] += (-1 if signed_inverse else 1) * values[s] + columns.append(values) + return [list(row) for row in zip(*columns)] + + +def local_check(old, new): + target = transfer(old) + same(transfer(new), target, "positive integer transfer") + same(transfer(old, True), transfer(new, True), "signed inverse transfer") + need({r for op in new for r in op} == set(range(6)), "all six frame paths retained") + for bits in range(64): + endpoints = [] + for ops in (old, new): + values = [(bits >> i) & 1 for i in range(6)] + for d, s in ops: + values[d] ^= values[s] + endpoints.append(values) + for d, s in ops[::-1]: + values[d] ^= values[s] + need(values == [(bits >> i) & 1 for i in range(6)], "local inverse") + same(*endpoints, "Boolean transfer") + before, after = transfer(old[::-1]), transfer(new[::-1]) + return {"target_matrix": target, "signed_inverse_matrix": transfer(new, True), + "reverse_positive_before": before, "reverse_positive_after": after, + "reverse_increased_entries": sum(y > x for a, b in zip(before, after) for x, y in zip(a, b)), + "reverse_decreased_entries": sum(y < x for a, b in zip(before, after) for x, y in zip(a, b)), + "boolean_inputs": 64} + + +def cleanup(word): + v = word["v"] + return [[1, d, list(ss)] for _, d, ss in reversed(word["A"] + word["B"]) + if not v <= d < 2 * v] + + +def build(word, witness): + same({k: witness[k] for k in ("phase", "start", "stop", "frame", "quad", "registers", "assignment_seed")}, + {"phase": "A", "start": 849, "stop": 872, "frame": 314, "quad": 12, + "registers": REGS, "assignment_seed": 12}, "witness location") + old = [[REGS.index(d), REGS.index(ss[0])] for _, d, ss in word["A"][849:872]] + same(witness["original"], old, "witness source operations") + new = witness["replacement"] + local = local_check(old, new) + need(len(new) == 11 and type(witness["minimum"]) is int and witness["minimum"] == 11, "11-gate witness") + result = copy.deepcopy(word) + result["A"][849:872] = [[314, REGS[d], [REGS[s]]] for d, s in new] + result["C"] = cleanup(result) + return result, local + + +def rank(rows): + """Fraction-free row elimination, separate from the exporter's Fractions.""" + a = [list(row) for row in rows] + pivot = 0 + for col in range(8): + found = next((i for i in range(pivot, len(a)) if a[i][col]), None) + if found is None: + continue + a[pivot], a[found] = a[found], a[pivot] + for i in range(pivot + 1, len(a)): + if a[i][col]: + x, y = a[pivot][col], a[i][col] + a[i] = [x * p - y * q for p, q in zip(a[i], a[pivot])] + pivot += 1 + return pivot + + +def frame_paths(word): + paths = [[f] for f in word["start"]] + for phase in ("D", "A", "B", "C"): + for f, d, ss in word[phase]: + for r in [d, *ss]: + if paths[r][-1] != f: + paths[r].append(f) + for r, f in enumerate(word["final"]): + if paths[r][-1] != f: + paths[r].append(f) + return paths + + +def emit(word, dims): + n, v = 2 * word["v"] + word["R"], word["v"] + cur = list(word["start"]) + events = [] + paths = [[f] for f in cur] + hist, counts = Counter(), Counter() + + def move(r, f): + if cur[r] != f: + need(set(word["frames"][cur[r]]) <= set(word["frames"][f]), "non-nested frame") + delta = dims[f] - dims[cur[r]] + need(delta > 0, "non-increasing climb") + events.append((0, r, cur[r], f, delta, 0)) + hist[delta] += 1 + cur[r] = f + paths[r].append(f) + + for phase, number in (("D", 1), ("A", 2), ("scatter", 3), ("B", 4), ("C", 5)): + if phase == "scatter": + for k, q in enumerate(word["ret"]): + events.append((2, q, n, cur[q], 0, dims[cur[q]])) + hist[dims[cur[q]]] += 1 + events.extend((1, v + i, n, 1, 0, 3) for i, row in enumerate(word["scatter"]) if k in row) + events.append((3, q, n, cur[q], 0, 0)) + else: + for f, d, ss in word[phase]: + need(d not in ss and len(set(ss)) == len(ss), "distinct gate operands") + for r in [d, *ss]: + need(type(r) is int and 0 <= r < n, "register index") + move(r, f) + events.extend((1, d, s, 1, f, number) for s in ss) + for r, f in enumerate(word["final"]): + move(r, f) + counts.update(e[0] for e in events) + return events, {"ADDs": counts[1], "MOVEs": counts[0], "COPYs": counts[2], "ERASEs": counts[3], + "records": len(events), "paid_histogram": dict(sorted(hist.items())), + "rank_mass": sum(k * v for k, v in hist.items()), "paths_sha256": digest(paths)} + + +def replay(word, events): + n, v = 2 * word["v"] + word["R"], word["v"] + expected = [{i} if not v <= i < 2 * v else {i, i - v} for i in range(n)] + [set()] + bounds = [] + for reverse in (False, True): + columns = [{i} for i in range(n)] + [set()] + positive = [1] * n + [0] + active = None + bound = 1 + for op, a, b, c, f, z in events[::-1] if reverse else events: + if op == 0: + continue + if reverse and op in (2, 3): + op = 5 - op + if op == 1: + need(a != b and c == 1 and a < n, "native ADD contract") + need(b != n or active is not None, "closed temporary read") + need(a != active, "copied center mutation") + columns[a] ^= columns[b] + positive[a] += positive[b] + bound = max(bound, positive[a]) + elif op == 2: + need(active is None and b == n and not columns[n], "fresh copy") + active = a + columns[n] = set(columns[a]) + positive[n] = positive[a] + elif op == 3: + need(active == a and b == n and columns[n] == columns[a], "restore before erase") + active = None + columns[n] = set() + positive[n] = 0 + else: + raise ValueError("record opcode") + need(active is None and columns == expected, "all-column dirty endpoint") + bounds.append(bound) + f, b = bounds + payload = 64 * f ** 3 * b ** 2 + need(payload < 1 << 104, "104-bit local prefix cap") + return {"columns_each_direction": n, "F": f, "B": b, "payload_upper": str(payload), + "payload_bits": payload.bit_length(), "local_prefix_cap_bits": 104} + + +def word_contract(word): + v = word["v"] + need(word["C"] == cleanup(word), "literal cleanup contract") + need(all(f == 0 and v <= d < 2*v and all(s >= 2*v for s in ss) for f, d, ss in word["D"]), "D interface") + need(all(not v <= d < 2*v and all(not v <= s < 2*v for s in ss) for _, d, ss in word["A"]), "A interface") + need(all(v <= d < 2*v for _, d, _ in word["B"]), "B interface") + + +def census_shape(programs, independent_count): + need(type(programs) is list and len(programs) == independent_count, "shortest-program count") + need(len({C["canonical"](p) for p in programs}) == independent_count, "duplicate shortest program") + need(all(type(p) is list and len(p) == 11 for p in programs), "shortest-program length") + + +def shortest_census(original, witness, dims, minimum, selected_bounds): + census = load(HERE / "MINIMUM-CENSUS.json") + need(census["format"] == "r480-quad12-shortest-programs/1", "census format") + same(census["minimum"], 11, "census minimum") + programs = census["programs"] + census_shape(programs, minimum["shortest_programs"]) + same(witness["shortest_programs"], len(programs), "DAG/BFS count agreement") + groups = {} + for i, program in enumerate(programs): + local = local_check(witness["original"], program) + need(local["reverse_increased_entries"] == 3, "every shortest program violates the local reverse guard") + key = digest(local["reverse_positive_after"]) + group = groups.setdefault(key, {"indices": [], "matrix": local["reverse_positive_after"]}) + group["indices"].append(i) + reports = [] + for key, group in sorted(groups.items()): + first = group["indices"][0] + recipe = copy.deepcopy(witness) + recipe["replacement"] = programs[first] + word, _ = build(original, recipe) + word_contract(word) + same(frame_paths(word), frame_paths(original), "census exact register frame paths") + events, bill = emit(word, dims) + bounds = replay(word, events) + for name in ("ADDs", "MOVEs", "COPYs", "ERASEs", "paid_histogram", "rank_mass", "paths_sha256"): + same(bill[name], selected_bounds[name], "census full-word cost/path: " + name) + same(bounds["F"], selected_bounds["F"], "census forward bound") + reports.append({"reverse_sha256": key, "reverse_matrix": group["matrix"], + "program_count": len(group["indices"]), "representative_index": first, **bounds}) + need(selected_bounds["B"] == min(x["B"] for x in reports), "selected shortest word is not best in reverse bound") + + # This relabeling was found only after the initial fixed-object experiment. + # The prior circuit/minimum is credited, not claimed as a new discovery. + peer = load(HERE / "PR1002-WITNESS.json") + permutation = [2, 3, 1, 4, 0, 5] # this wire index -> PR1002 wire index + same([[permutation[d], permutation[s]] for d, s in witness["original"]], peer["original"], "peer ordered-circuit equivalence") + inverse = [permutation.index(i) for i in range(6)] + guarded = [[inverse[d], inverse[s]] for d, s in peer["replacement"]] + prior_check = local_check(witness["original"], guarded) + need(len(guarded) == 12 and prior_check["reverse_increased_entries"] == 0, "prior 12-gate guard witness") + + # All original R480 quads; this is an overlap check, not another synthesis. + orbit, offset, quad = [], 0, 0 + target = transfer(witness["original"]) + for frame, items in itertools.groupby(original["A"], lambda gate: gate[0]): + block = list(items) + regs = sorted({r for _, d, ss in block for r in [d, *ss]}) + if len(regs) == 6 and len(block) > 8 and all(len(ss) == 1 for _, _, ss in block): + mat = transfer([[regs.index(d), regs.index(ss[0])] for _, d, ss in block]) + matches = [list(p) for p in itertools.permutations(range(6)) + if all(target[i][j] == mat[p[i]][p[j]] for i in range(6) for j in range(6))] + if matches: + orbit.append({"quad": quad, "frame": frame, "start": offset, "stop": offset + len(block), + "permutations": matches}) + quad += 1 + offset += len(block) + need(quad == 60 and len(orbit) == 1 and orbit[0]["quad"] == 12, "R480 orbit census") + return {"census_sha256": digest(census), "programs": len(programs), "reverse_classes": reports, + "reverse_bound_range": [min(x["B"] for x in reports), max(x["B"] for x in reports)], + "all_shortest_fail_entrywise_guard": True, "all_shortest_fit_complete_local_prefix": True, + "peer_pr": 1002, "peer_head": "93e1a42c773a73bb55adddf35d71ed6b6c1d5748", + "peer_index_permutation": permutation, "guarded_minimum": 12, + "orbit_check": {"quads": quad, "permutations_per_quad": 720, "members": orbit}} + + +def controls(original, candidate, witness, dims): + rejected = [] + + def reject(name, function, substring): + try: + function() + except ValueError as e: + need(substring in str(e), "wrong rejection for " + name + ": " + str(e)) + rejected.append(name) + return + raise ValueError("control accepted: " + name) + + for i in range(11): + new = witness["replacement"][:i] + witness["replacement"][i+1:] + reject("deleted_gate_" + str(i), lambda new=new: local_check(witness["original"], new), "positive integer") + bad = copy.deepcopy(witness["replacement"]) + bad[0] = [bad[0][0], bad[0][0]] + reject("self_donor", lambda: transfer(bad), "gate indices") + bad[0] = [True, 2] + reject("boolean_index", lambda: transfer(bad), "gate indices") + # Endpoint-correct stale cleanup must still fail the literal interface/cost contract. + stale = copy.deepcopy(candidate) + stale["C"] = copy.deepcopy(original["C"]) + stale_events, stale_cost = emit(stale, dims) + replay(stale, stale_events) + need(stale_cost["ADDs"] == 33946, "stale cleanup positive control cost") + reject("stale_cleanup_endpoint_correct", lambda: word_contract(stale), "literal cleanup") + missing = copy.deepcopy(candidate) + missing["C"].pop() + missing_events, _ = emit(missing, dims) + reject("omitted_cleanup", lambda: replay(missing, missing_events), "endpoint") + wrong_frame = copy.deepcopy(candidate) + wrong_frame["A"][849][0] = 0 + reject("lowered_operation_frame", lambda: emit(wrong_frame, dims), "frame") + events, _ = emit(candidate, dims) + erase = next(i for i, e in enumerate(events) if e[0] == 3) + reject("omitted_erase", lambda: replay(candidate, events[:erase] + events[erase+1:]), "fresh copy") + # Endpoint equivalence alone accepts a cancelling pair with a 200-bit positive lift. + inflated = copy.deepcopy(candidate) + pair = [[314, REGS[0], [REGS[1]]], [314, REGS[1], [REGS[0]]]] * 80 + inflated["A"][849:849] = pair + pair[::-1] + inflated["C"] = cleanup(inflated) + word_contract(inflated) + huge_events, _ = emit(inflated, dims) + reject("endpoint_correct_precision_overflow", lambda: replay(inflated, huge_events), "prefix cap") + programs = load(HERE / "MINIMUM-CENSUS.json")["programs"] + reject("missing_shortest_program", lambda: census_shape(programs[:-1], len(programs)), "count") + duplicate = [programs[0], *programs[:-1]] + reject("duplicate_shortest_program", lambda: census_shape(duplicate, len(programs)), "duplicate") + return {"rejected": rejected, "count": len(rejected), "stale_cleanup_scalar_control_passed": True} + + +def call(work, name, command): + with (work / (name + ".log")).open("w") as log: + result = subprocess.run([str(x) for x in command], stdout=log, stderr=subprocess.STDOUT) + need(result.returncode == 0, name + " failed; see " + str(work / (name + ".log"))) + + +def run(work, replay_search=False): + original = C["original_word"]() + witness = load(HERE / "WITNESS.json") + candidate, local = build(original, witness) + # The inherited BFS uses flat byte matrices and does not import the row-DAG search. + minimum = runpy.run_path(str(HERE / "optimality.py"))["check_minimum"](local["target_matrix"], 11) + if replay_search: + call(work, "search", [sys.executable, "-I", "-B", HERE / "search.py"]) + dims = [rank([original["lines"][i] for i in f]) for f in original["frames"]] + reports = {} + for name, word in (("original", original), ("candidate", candidate)): + word_contract(word) + same(frame_paths(word), frame_paths(original), "exact register frame paths") + filename = work / (name + ".json.gz") + filename.write_bytes(gzip.compress(C["canonical"](word), mtime=0)) + events, bill = emit(word, dims) + bounds = replay(word, events) + record_dir = work / name / "records" + call(work, name + "-export", [sys.executable, "-I", "-B", ROOT / C["BIT"] / "export_records.py", filename, record_dir]) + raw = (record_dir / "249-records.bin").read_bytes() + need(raw == b"".join(struct.pack("<6i", *event) for event in events), "independent record export") + native_frames = load(record_dir / "frames.json")["frames"] + same([native_frames[str(i)]["dim"] for i in range(len(dims))], dims, "independent frame ranks") + call(work, name + "-interface", [sys.executable, "-I", "-B", ROOT / C["BIT"] / "independent/interface.py", filename]) + call(work, name + "-grams", [sys.executable, "-I", "-B", ROOT / C["BIT"] / "checkers/gram_frames.py", record_dir, + "--gram", "e8ham", "--h", "8", "--positive"]) + reports[name] = {"word_sha256": digest(word), **bill, **bounds} + a, b = reports["original"], reports["candidate"] + for key in ("MOVEs", "COPYs", "ERASEs", "paid_histogram", "rank_mass", "paths_sha256"): + same(a[key], b[key], "changed " + key) + need(a["ADDs"] == 33958 and b["ADDs"] == 33934, "complete ADD saving") + need(b["F"] == a["F"] and b["B"] < a["B"], "complete positive bounds") + census = shortest_census(original, witness, dims, minimum, b) + return {"format": "r480-quad12-exact/1", "classification": "finite construction; fixed-positive-transfer minimum; no new kappa", + "source_sha256": C["check_sources"]()["execution_inputs"][C["WORD"]]["sha256"], + "witness_sha256": digest(witness), "local": local, "independent_minimum": minimum, + "shortest_census": census, + "words": reports, "negative_controls": controls(original, candidate, witness, dims)} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, help="fresh output directory for all logs and emitted words") + parser.add_argument("--write-certificate", action="store_true") + parser.add_argument("--replay-search", action="store_true") + args = parser.parse_args() + with tempfile.TemporaryDirectory(prefix="r480-quad12-") as temporary: + work = args.output.resolve() if args.output else Path(temporary) / "run" + work.mkdir(parents=True, exist_ok=False) + report = run(work, args.replay_search) + receipt = HERE / "CERTIFICATE.json" + if args.write_certificate: + receipt.write_text(json.dumps(report, indent=2, sort_keys=True) + "\n") + else: + same(report, load(receipt), "certificate mismatch") + (work / "RESULT.json").write_text(json.dumps(report, indent=2, sort_keys=True) + "\n") + print("PASS_R480_QUAD12 minimum=11 shortest=252 reverse_classes=4 block=23->11 ADDs=33958->33934 columns=720 controls=" + + str(report["negative_controls"]["count"]) + " no_new_kappa") + + +if __name__ == "__main__": + main()