diff --git a/.github/workflows/p112-common-slice.yml b/.github/workflows/p112-common-slice.yml index 37f99ca573..48047f61c4 100644 --- a/.github/workflows/p112-common-slice.yml +++ b/.github/workflows/p112-common-slice.yml @@ -15,9 +15,9 @@ jobs: if: github.repository == 'CrocSwap/integer-mult-bounds' runs-on: ubuntu-24.04 timeout-minutes: 20 - env: - TMPDIR: ${{ runner.temp }}/p112-common-slice steps: + - name: Initialise P112 work directory + run: echo "TMPDIR=$RUNNER_TEMP/p112-common-slice" >> "$GITHUB_ENV" - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with: fetch-depth: 0 diff --git a/research/staged544-r437-admission-audit/EXECUTION.json b/research/staged544-r437-admission-audit/EXECUTION.json new file mode 100644 index 0000000000..a327e5a5a6 --- /dev/null +++ b/research/staged544-r437-admission-audit/EXECUTION.json @@ -0,0 +1,78 @@ +{ + "schema_version": 1, + "scope": "Independent R437 OQ4 delta plus separately classified exact-head execution evidence; no supplier admission.", + "r437": { + "head": "a24f9ff95c12fd0b6792e3f710569237efd72db2", + "author_entry_point": "research/bit-p111-r437-gl464-470-20261018/verify.py", + "classification": "Independent execution of author code, distinct from the new import-free delta verifier.", + "hosted_python": "3.12.15", + "hosted_exit_code": 0, + "hosted_seconds": 101.474042232, + "hosted_receipt_sha256": "62e887dd357ee6fcf194e438d8b05154e80c03c62ff86699070bbd548bf7370e", + "local_python": "3.13.5", + "local_seconds": 107.03005529400002, + "local_status": "PASS_COLD_REPLAY_CANONICAL_WORD_ACTUAL_PROGRAM_FULL_INVOICE_AND_BIT_RECORD", + "local_receipt_sha256": "d7ac180ef71ad51bb59e034bdb73303291d37b54129d0e00156002fa9b04cf4e", + "c": "1736646042038446578551/1000000000000000000000000", + "local_commands": [ + {"script":"code/generate.py","exit_code":0}, {"script":"vendor/xcheck_p.py","exit_code":0}, + {"script":"code/word_audit.py","exit_code":0}, {"script":"code/catalog_check.py","exit_code":0}, + {"script":"code/source_history_scope.py","exit_code":0}, {"script":"vendor/export_records.py","exit_code":0}, + {"script":"code/local_counter.py","exit_code":0}, {"script":"vendor/global_k.py","exit_code":0}, + {"script":"code/match.py","exit_code":0}, {"script":"vendor/emit_k.py","exit_code":0}, + {"script":"vendor/audit_hosted_k.py","exit_code":0}, {"script":"vendor/assemble9.py","exit_code":0}, + {"script":"code/invoice_audit.py","exit_code":0} + ] + }, + "staged544_t385": { + "head": "de2cd5c58009205210e3bf328b0ef5cadf3903af", + "entry_point": "research/staged544-t385/full_replay.py", + "exit_code": 124, + "timeout_seconds": 780, + "jobs": 1, + "dependencies": ["numpy==2.2.6", "scipy==1.15.3", "sympy==1.14.0", "mpmath==1.3.0"], + "native_and_ancestry_reused": true, + "status": "TIME_LIMIT_WITH_PARTIAL_EXECUTION_ONLY", + "result_status": "PREPARED_REPLICA_SAME_WORD_DERIVATIVE_NOT_ADMITTED", + "completed_top_level_stages": [ + {"name":"owners","exit_code":0,"seconds":42.10427692499999,"log_sha256":"239d8562814d1627c19e7e6bf75f06ae2ef219b50c948bb612dcfa0f3f21ef1c"}, + {"name":"parent-lift","exit_code":0,"seconds":84.426416155,"log_sha256":"c5102a5a2c10b2a5e08927636187a9c1df2841a094c58f1a61326a2b11274483"}, + {"name":"rebind","exit_code":0,"seconds":7.864737166999987,"log_sha256":"4efcc424f53c49777d308af3bc568688d2eb0de9c0236aae9af6ab50190974a7"} + ], + "completed_discovery_substages": [ + {"name":"bind","exit_code":0,"seconds":5.427147880000007,"log_sha256":"71f679ce5a123fb58397fd6852ba64ce3832fd20e81a096bfda9a1cf3237237a"}, + {"name":"emit","exit_code":0,"seconds":162.92917068100002,"log_sha256":"cb7715dcffa5a5ec8e15559df8ad80620a6b1d1edd41b1f9ef1572711de318c5"} + ], + "uncompleted": ["discovery/audit", "remaining discovery checks", "outer-check_ledger.py", "outer-independent_check.py", "release"], + "no_assertion_failure_observed_in_retained_logs": true, + "complete_release_not_established": true + }, + "price_crosscheck": { + "status": "PASS_CREDITED_PR3700_PRICE_ENGINE_ON_BOTH_HEADS", + "classification": "Reuse of Sagar Thakrar PR3700 exact rational engine, not a new independent price implementation", + "engine_head": "aa0bd9fbc8700506b1fafcc55bca9bd32aced7d9", + "engine_sha256": "a648e0455cd43b4398183a0fd00f1d1cb4b0b887e563ed5a40b8a6a688c1b9d9", + "input_paths": ["research/bit-p111-r437-gl464-470-20261018/EXPECTED.json"], + "input_heads": ["36ff441479ff9c7e70d83f0becccd44da50effb8", "a24f9ff95c12fd0b6792e3f710569237efd72db2"], + "old_c": "868314126713557740143/500000000000000000000000", + "current_c": "1736646042038446578551/1000000000000000000000000", + "both_moment_upper_at_c_below_one": true, + "both_moment_lower_at_next_grid_above_one": true, + "grid_spacing": "1/1000000000000000000000000", + "old_profile_at_current_c_rejected": true + }, + "workflow": { + "repository": "Clear1nsight/integer-mult-bounds", + "run_id": 39186343975, + "commit": "6ce5b2ec7487f8f1c2331f018fd2a2758492d407", + "artifact_id": 12158762024, + "artifact_sha256": "8d58b5709f0542aa89cec8367d442dd84f7065c2b20649005697321185ebeb28", + "workflow_conclusion": "failure", + "explanation": "The final exit-code gate correctly rejected the T385 timeout; individual shell-step success is not mathematical PASS." + }, + "source_export": { + "run_id": 39186804067, + "commit": "54465a1dfba4bcb84b5de02f6c5ea611c36448d6", + "artifact_sha256": "c1435fca5a8182973edbd87280fc98e0bf144fe19f020d88f41c7c4e8efe63d4" + } +} diff --git a/research/staged544-r437-admission-audit/LICENSE b/research/staged544-r437-admission-audit/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/staged544-r437-admission-audit/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/staged544-r437-admission-audit/README.md b/research/staged544-r437-admission-audit/README.md new file mode 100644 index 0000000000..65225685e0 --- /dev/null +++ b/research/staged544-r437-admission-audit/README.md @@ -0,0 +1,56 @@ +# Current-head admission audit of staged544 and R437 + +This is a **partial admission audit, not an admission**. It contributes a new, import-free check of the R437 OQ4 template transition and records separately classified executions of the current R437 and staged544 T385 entry points. No selected-result file, construction, or frozen predecessor input is changed. + +## Result and scope + +The new checker compares PR3647's complete template at `36ff441479ff9c7e70d83f0becccd44da50effb8`, the head audited by Sagar Thakrar in PR3700, with the current `a24f9ff95c12fd0b6792e3f710569237efd72db2`. Both compressed templates are retained byte-for-byte with Git blob and SHA256 pins. No predecessor verifier is imported by `verify.py`. + +A backwards schedule scan rederives the idle windows from the inherited last-touch rule. A coordinate-set occupancy check verifies all 3,933 slots per replica, complete stage/helper coverage, chronological eligibility, and contiguous residual suffixes. Both complete owner maps are rebuilt, including all 125,856 helper occurrences per head and every source/target owner. The complete recursive comparison finds exactly 69 changed semantic leaves. They are the two slot fields, three residual-histogram entries, and two fields in each of 32 stage-6 helper-422 owner descriptors. Every other field, including both local programs, their hashes, the schedule, data routes, cover description, residual isometries, and physical-stock declarations, is unchanged. + +The one move is `[6,210,0,8,6,422]` to `[6,209,8,8,6,422]`. It gives the residual paid-profile delta `{26: 32, 34: -64, 42: 32}`, with zero change in child count or rank mass. Seven mutants are rejected by named semantic gates, covering overlap, capacity, chronology, one stale owner in the final replica, stale residual pricing, an altered local program, and an altered cover contract. The latter two pass the geometry gates but fail the exhaustive transition gate, preventing an older identity audit from being silently carried over a changed program. + +`RESULT.json` is recomputed, not an author PASS receipt. Direct replay under normal and optimised Python produced byte-identical receipts. The proof-relevant inputs for this bounded check are fully retained here; no foreign PR commit needs to exist in the reviewer's local Git object store. + +## Why the moment improves + +Under the inherited invoice, write the rank-dependent part as + +`M_H(c) = m^(c-1)/W * sum_r n_r*r^(1-c) + fallback(N,c)`. + +Here `m = 64`, `W = 28416`, and `N = sum_r n_r`. Since the checked move preserves `N`, its fallback term cancels exactly. For every `0 < c < 1`, the function `x^(1-c)` is strictly concave, since its second derivative is `-c*(1-c)*x^(-1-c) < 0`. As `(26+42)/2 = 34`, the complete change is + +`32*m^(c-1)/W * (26^(1-c) + 42^(1-c) - 2*34^(1-c)) < 0`. + +Thus the direction of the improvement does not depend on rounded root values. This is conditional on the unchanged invoice and physical hosting interface, not a new implementation of those interfaces. The exact current endpoint `1736646042038446578551/10^24` and failure of its next grid point were also cross-checked using Sagar Thakrar's existing PR3700 rational engine. That reuse is explicitly separate from the new independent transition checker and is not a new price implementation. + +## Executions and the unfinished staged544 audit + +At the pinned current R437 head, the author's self-contained cold entry point completed all 13 commands in both a clean hosted Python 3.12.15 run and a local Python 3.13.5 run. This is independent execution of author code, not an independent reimplementation of the word or whole invoice. The new checker does not re-prove PR3700's word identity, COPY contract, or precision argument. + +For staged544 T385, PR3802 at `de2cd5c58009205210e3bf328b0ef5cadf3903af`, the published `full_replay.py` was run with one job, a fresh work directory, pinned dependencies, and its declared native/ancestry reuse. The imposed 780-second limit was reached during `discovery/audit`. Top-level `owners`, `parent-lift`, and `rebind` completed with exit 0, as did discovery's `bind` and `emit` substages. The retained top-level status is `PREPARED_REPLICA_SAME_WORD_DERIVATIVE_NOT_ADMITTED`. No complete discovery, outer replay, final release, or independent staged544 admission is claimed. The timeout is not a counterexample to the construction. + +`EXECUTION.json` records the exact heads, environment, stage classification, hashes, and public workflow/artifact provenance. The workflow's final gate correctly failed on exit 124; the enclosing shell steps' success must not be mistaken for a successful proof replay. Existing author release receipts and this session's fresh results are distinct. + +## Reproduction + +```sh +python3 -B research/staged544-r437-admission-audit/verify.py +python3 -O -B research/staged544-r437-admission-audit/verify.py +python3 scripts/research_package.py --package research/staged544-r437-admission-audit --check-only +python3 scripts/research_package.py --package research/staged544-r437-admission-audit +``` + +The direct commands require only the standard library and read retained template data; they do not execute template instructions. The registered command covers only the new bounded transition checker, not `EXECUTION.json`'s historical author-code replays. The original execution workflow is at `Clear1nsight/integer-mult-bounds`, run `39186343975`, workflow commit `6ce5b2ec7487f8f1c2331f018fd2a2758492d407`. Source export is run `39186804067`, commit `54465a1dfba4bcb84b5de02f6c5ea611c36448d6`. Workflow artifacts expire; the two scientific template inputs are retained permanently in this package. + +## Open next questions + +The structured questions in `TASK.json` identify two remaining tasks. First, complete the exact T385 full wrapper in a larger fresh execution budget, preserving the native-reuse boundary and recording discovery, both outer stages, and the final release. Second, discharge a precisely identified all-size physical interface premise, including arbitrary capture dirt, SOURCE mutability, whole-call hosting, and precision/recovery. Neither another digit refinement nor an older-head PASS closes these obligations. + +## Attribution and coordination + +Credit ai-nanachi for PR3647's composed construction and actual templates; Sagar Thakrar for PR3700's independent old-head audit, the OQ4 placement idea, and the reused rational engine; Ali Romman for PR1043's helper470 deletion; and DaysSky, DreamingOfClouds, eumemic, and the selected chain's credited authors for the inherited hosting, word, and invoice interfaces. `UPSTREAM-NOTICE.md` and `LICENSE` are retained unchanged. This package does not claim discovery of the slot move. + +Credit dataisfire for PR3734's staged544 supplier, hexapode for PR3802's T385 allocation and full-wrapper packaging, ChaloupeMusic for PR3815's independent fixed-inventory ceiling, and the native/owner/outer authors credited by those packages. Existing audits and endpoint refinements were checked before selecting the current-head gap. + +New transition implementation, controls, execution, and write-up by Chris R (@Clear1nsight), with substantial OpenAI assistance. No independent human review or formal-kernel review is claimed. Canonical base is `20ecf2891d80b5acf18d980b2164fb44ea7faa90`, priority revision 6. Live PR search and relevant PR comments were read; Discussion coverage was unavailable, and an attempted coordination comment on PR3802 was denied by the integration with HTTP 403. This is a disclosed coordination limitation, not a claim that a reservation was posted. diff --git a/research/staged544-r437-admission-audit/RESULT.json b/research/staged544-r437-admission-audit/RESULT.json new file mode 100644 index 0000000000..f0f22dcdd2 --- /dev/null +++ b/research/staged544-r437-admission-audit/RESULT.json @@ -0,0 +1,103 @@ +{ + "after": { + "helper_owner_occurrences": 125856, + "idle_profile": { + "2": 13792, + "4": 14208, + "6": 14208, + "7": 21312, + "26": 32, + "42": 384 + }, + "slots_per_replica": 3933, + "window6": [ + 0, + 42, + [ + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "window6_remainders_per_replica": { + "2": 209, + "26": 1, + "42": 12 + } + }, + "before": { + "helper_owner_occurrences": 125856, + "idle_profile": { + "2": 13792, + "4": 14208, + "6": 14208, + "7": 21312, + "34": 64, + "42": 352 + }, + "slots_per_replica": 3933, + "window6": [ + 0, + 42, + [ + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "window6_remainders_per_replica": { + "2": 209, + "34": 2, + "42": 11 + } + }, + "changed_helper_owners": 32, + "child_count_delta": 0, + "negative_controls": [ + { + "name": "overlapping helper stripes", + "rejected_by": "slot overlap" + }, + { + "name": "overfull pending child", + "rejected_by": "slot capacity" + }, + { + "name": "illegal source window", + "rejected_by": "slot chronology" + }, + { + "name": "stale owner in last replica", + "rejected_by": "helper owner binding" + }, + { + "name": "stale residual invoice", + "rejected_by": "remainder census" + }, + { + "name": "changed local program", + "rejected_by": "exact transition" + }, + { + "name": "changed cover contract", + "rejected_by": "exact transition" + } + ], + "no_full_supplier_or_all_size_admission": true, + "paid_profile_delta": { + "26": 32, + "34": -64, + "42": 32 + }, + "rank_mass_delta": 0, + "semantic_leaf_changes": 69, + "status": "PASS_INDEPENDENT_R437_OQ4_TRANSITION", + "unchanged_local_programs": true, + "unchanged_schedule_and_other_fields": true +} diff --git a/research/staged544-r437-admission-audit/SOURCES.json b/research/staged544-r437-admission-audit/SOURCES.json new file mode 100644 index 0000000000..51629490af --- /dev/null +++ b/research/staged544-r437-admission-audit/SOURCES.json @@ -0,0 +1,14 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "priority_revision": 6, + "files": [ + {"git_blob": "67f085acd86acd7d4e03922d9cf4b26bca66fed5", "path": "docs/research/agent-task-catalog.json", "sha256": "47b42433f5a85809a3aadd29c2c339da2c6ed728e4f7762df6b88bccb7874cf0", "usage": "provenance"}, + {"git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", "path": "certificates/selected-result.json", "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129", "usage": "provenance"}, + {"git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", "path": "LICENSE", "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", "usage": "input"} + ], + "templates": [ + {"role": "previous", "repository": "ai-nanachi/integer-mult-bounds", "pr": 3647, "head": "36ff441479ff9c7e70d83f0becccd44da50effb8", "path": "research/bit-p111-r437-gl464-470-20261018/generated/GLOBAL-TEMPLATE.json.gz", "local_path": "inputs/previous-template.json.gz", "git_blob": "df9238596dbe8cd355a65aa170caa54f543c39cd", "sha256": "00dee04c5372ac300b678c4ac1e6770c178923099d2d4bf01be9e4bccd2a1e72"}, + {"role": "current", "repository": "ai-nanachi/integer-mult-bounds", "pr": 3647, "head": "a24f9ff95c12fd0b6792e3f710569237efd72db2", "path": "research/bit-p111-r437-gl464-470-20261018/generated/GLOBAL-TEMPLATE.json.gz", "local_path": "inputs/current-template.json.gz", "git_blob": "f56efc7ca3648d2070b791d4551a3d77dd7fdde4", "sha256": "6e03c76f5a4227394ea57e901eb7e93f4d1ee411ccfecd483fd44ea043550494"} + ] +} diff --git a/research/staged544-r437-admission-audit/TASK.json b/research/staged544-r437-admission-audit/TASK.json new file mode 100644 index 0000000000..ce6f07607b --- /dev/null +++ b/research/staged544-r437-admission-audit/TASK.json @@ -0,0 +1,48 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "priority_revision": 6, + "task_id": "independent-moment", + "author": "Chris R (@Clear1nsight), with substantial OpenAI assistance", + "ai_assistance": "Substantial OpenAI assistance with the new implementation, testing, execution, and write-up. No independent human or formal-kernel review is claimed.", + "actual_scope": "User-assigned independent admission audit of stronger staged544 and R437 constructions. Complete new R437 OQ4 template-transition audit; separately classify current-head author-code replays and the incomplete T385 full release.", + "scope_status": "refined", + "scope_change_reason": "Explicit assignment to the current stronger supplier heads. Prior #3700 coverage stops at the pre-OQ4 R437 template; staged544 root-only checks and allocation optimisations already exist.", + "bottleneck_link": "Current-head finite admission coverage must be distinguished from older-head identity checks, stored release authentication, and inherited all-size realization.", + "budget_minutes": 60, + "outcome": "partial", + "evidence": "RESULT.json contains a fresh import-free R437 transition audit with seven semantic mutants; EXECUTION.json distinguishes successful R437 execution from T385 timeout during discovery/audit.", + "stop_rule": "Retain the independently verified current-head delta and exact unresolved dependencies. Do not replace the missing full release or physical interface proof with extra digits, a new allocation census, or older-head PASS receipts.", + "original_card": { + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.", + "allowed_variations": ["Reconstruct either a source ledger or a numeric enclosure with a different method."], + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "first_experiment": "Prioritize a bounded independent audit of #2979: reconstruct one joint group and its single-lowering control, check the declared frames/chronology, then trace changed children, idle widths and cleanup buffers into the complete invoice and both supplier caps. Choose one still-missing implication after checking existing audits. Stop with exact unresolved dependencies if full admission exceeds the session; do not launch a new lowering census on an unvalidated premise or substitute extra root digits for mechanism checking.", + "first_step": { + "command": ["python3", "-B", "scripts/research_baseline.py"], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2979 joint rank-7 end-frame proposal and the revision-6 evidence status. Its claimed kappa is not selected. Compare coordinated changes with the losing single-change controls and locate the complete physical ledger; an aggregate moment alone does not validate the mechanism.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "id": "independent-moment", + "methods": ["Independently reconstruct a coordinated frame/circuit change and its single-change control, then derive the complete rank and physical ledger.", "Implement certified moment inequalities through a different exact enclosure method."], + "overlap_terms": ["independent moment", "rank histogram", "exact enclosure", "2979", "rank7 joint endframes", "paired extraction", "joint lowering"], + "question": "Does one changed supplier or assembly claim lack a source-bound independent check of a specific new implication?", + "scope_change_triggers": ["Importing the primary function and calling its output independent verification.", "Promoting #2979 from merged source archive to validated supplier solely from author PASS receipts or aggregate pricing."], + "starting_points": ["certificates/selected-result.json", "research/rank7-joint-endframes/README.md", "docs/research/research-family-status.md"] + }, + "open_questions": [ + { + "question": "Does the published T385 full_replay.py complete all seven stages and final release in a longer isolated run?", + "why_it_matters": "A prepared source-bound allocation and completed owner stages do not establish discovery, outer checks, or release.", + "first_step": "Use the exact de2cd5c head and dependency pins in EXECUTION.json, fresh work, and an explicitly larger execution budget. Do not restart from a mutated archive or treat the 780-second timeout as a mathematical failure.", + "blocked_by": "This session stopped during discovery/audit after owners, parent-lift, rebind, bind, and emit had completed." + }, + { + "question": "Which inherited physical complete-stream/whole-call hosting premise admits both current constructions?", + "why_it_matters": "Finite word and owner checks cannot prove the all-size SOURCE/compiler/hosting and precision/recovery interfaces.", + "first_step": "Give an exact source-bound interface-to-construction proof, including R437 capture dirt and staged544 changed helper paths, rather than another moment calculation.", + "blocked_by": "The selected all-size, mutable-SOURCE, physical hosting, analytic, and precision/recovery assumptions remain conditional." + } + ] +} diff --git a/research/staged544-r437-admission-audit/UPSTREAM-NOTICE.md b/research/staged544-r437-admission-audit/UPSTREAM-NOTICE.md new file mode 100644 index 0000000000..9b519b904d --- /dev/null +++ b/research/staged544-r437-admission-audit/UPSTREAM-NOTICE.md @@ -0,0 +1,71 @@ +# Notice + +Apache-2.0 (`LICENSE`, copied from #493's package). Prepared by eumemic with substantial Anthropic Claude +assistance. + +## New in this package + +- `code/gen_p3.py` (the generator of the punctured word: the L3 skeleton of #543 restricted to the live lines, the + pseudo-target totals, the phase-A mini-nodes and extra carriers), `code/pwordl.py` (word builder for a live subset + of the 120 lines; output in the bitE8/1 layout with the `ports_geom` and `punctured` fields introduced by #545), + `data/bitE8mut-p111.json.gz` (the word), `data/punct.json` (its frozen parameters), `discovery/choose.py` and + `discovery/search.py` (the nomination of P and of the parameters; not run by `verify.sh`). +- `code/gen_p3.py` carries `derive`, `ex_part` and `plan_thirds` from #543's `code/gen_l3.py` (eumemic), and + `data/plan-l3.json` is #543's CP-SAT plan, unchanged. `code/nodeopt.py`, `code/planio.py`, `code/mutants.py`, + `code/mutrec_b.py` and `code/provenance.py` are #543's files, unchanged. +- `code/xcheck_p.py`: #543's independent checker `code/xcheck.py` with nine listed edits for v <= 120 live labels + (root-line enumeration of the lattice, frame closure and target frames over the live labels) and a new part T (the + frame and COPY rank of every retained total at the scatter, and whether it is the hyperplane of a punctured line). +- `code/mutants_p.py` (punctured-design controls), `code/adapt9p.py` (#510's nine-stage files parameterised for + v <= 120 and any copy ranks, the way #545's `adapt.py` parameterises #493's eleven-stage files), `code/cited.py`, + `code/receipt_kappa.py`, `code/summary.py`, `verify.sh`, `EXPECTED.json`, `DEPENDS.json`, `requirements.txt`, + `data/complex-b.json`, `data/selection9-p111.json` and `data/hosting11-p111.json` (frozen nominations of #442's + hosting programme, rediscovered by `verify.sh`), `.github/workflows/e8-bit-p111.yml`. + +## Vendored, byte-identical (git blob ids in `SOURCE-pr*.json`, checked by `code/provenance.py`) + +- **PR #510 (DreamingOfClouds, with Claude Opus 5.5 via Claude Code), commit 64edee1** (`vendor/pr510/`): the same 19 + files as #543's package (#510's nine-stage chain with the files it vendors from #463, #443, #442 and #315, and #503's + R480 word). Their notices are listed in #543's NOTICE and in the files. +- **PR #545 (DreamingOfClouds, with Claude Opus 5.5 via Claude Code; draft), commit 376426f** (`vendor/pr545/`): + `code/adapt.py` and `code/punct_cfg.py`, run unchanged on this package's word; `data/bitE8mut-v111-r489.json.gz`, + `data/hosting-v111-r489.json` and `EXPECTED.json` (a control). +- **PR #548 (Dugongue), commit 66dbc2b** (`data/complex/pr548/`): `EXPECTED.json` and `evidence/EXACT-ASSEMBLY.json`. +- **PR #544 (chafreaky, with OpenAI Codex assistance), commit 4858bb3** (`data/complex/pr544/`): `EXPECTED.json` and + the Linux exact-assembly receipt. +- **PR #535 (icekylinx, with GPT-6 Astra assistance), commit 8b758a1** (`data/complex/pr535/`): `EXPECTED.json` and + `evidence/audit/EXACT-ASSEMBLY-PR493.json`. + +## Used from main, unchanged (pinned in `DEPENDS.json`) + +- `research/e8-bit-carrier-skeleton` (PR #493, eumemic): the skeleton modules and D4 partition the generator imports, + #370's checker (run here in #545's v <= 120 form), the official cohort checkers, `gram_frames.py`, the record + exporter, the geometries and the eleven-stage chain that #545's `adapt.py` parameterises, #442's hosting programme, + the R489 word, the control receipts and #315's engines. +- `research/direct-delivery504-global/EXPECTED.json` (PR #531, icekylinx): its complex b and kappa. + +## Cited, not rebuilt + +Complex coarse savings in `data/complex-b.json`, each bound to its PR's receipt by `code/cited.py`: PR #548 (primary; +open), PR #544 and PR #535 (open), PR #531 (merged), and PR #484, #471 and #458 (controls). + +## Ideas used + +- PR #545 (DreamingOfClouds): the punctured-star unit. Nine lines are neither sources nor targets; each retained total + is a pseudo-target that reads what the removed target would read, at frame rank 7, so the decoder constant is 63; + the rank-mass identity with v and the decoder constant as parameters; the parameterisation of the hub chain. +- PR #543 (eumemic): the R420 L3 skeleton with keepers read by targets and rewritten in phase B. +- PR #493 (eumemic), PR #503 and #510 (DreamingOfClouds), PR #425 (Zhihao Chen / jacklightChen), PR #370 (Dylan Crow), + PR #472, #445, #443 (chafreaky), PR #442 (DaysSky), PR #463 and #315 (DreamingOfClouds), PR #386 (Zhihao Chen): the + skeleton, the scalar-interface lemma, the format, and the pricing pipelines. +- PR #523 (icekylinx): the puncture pattern on the complex side, cited by #545. +- Jacob Sussman introduced the E8 unit. + +R437 composition: Ali Romman (@aliromman), with substantial OpenAI Codex assistance, authored the public1043 helper470 source-boundary deletion. Its exact canonical-main package and NOTICE are retained in public1043/. The new contribution here composes that credited deletion with the independently validated helper464 GL, then reconstructs actual owners, full invoice, independent checks and portable replay. + +Sagar Thakrar (thakrarsagar), PR3700 Open question4, proposed the exact +window6 two-leftover coalescing used by this follow-up. No code from that +PR is imported by the author pipeline; root independently replayed its +hosting and price engines. Full owner/template/invoice regeneration and +packaging used substantial OpenAI Codex assistance. All prior credits and +Apache-2.0 notices remain in place. diff --git a/research/staged544-r437-admission-audit/VERIFY.json b/research/staged544-r437-admission-audit/VERIFY.json new file mode 100644 index 0000000000..6cc7241306 --- /dev/null +++ b/research/staged544-r437-admission-audit/VERIFY.json @@ -0,0 +1,12 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": ["LICENSE"], + "commands": [{ + "argv": ["{python}", "-B", "{package}/verify.py"], + "checks": "Independent complete R437 OQ4 template transition, derived windows, all slots and owner maps, residual profile delta, seven semantic mutants, and exact receipt equality. Does not rerun author pipelines or establish full admission.", + "timeout_seconds": 60 + }] +} diff --git a/research/staged544-r437-admission-audit/inputs/current-template.json.gz b/research/staged544-r437-admission-audit/inputs/current-template.json.gz new file mode 100644 index 0000000000..f56efc7ca3 Binary files /dev/null and b/research/staged544-r437-admission-audit/inputs/current-template.json.gz differ diff --git a/research/staged544-r437-admission-audit/inputs/previous-template.json.gz b/research/staged544-r437-admission-audit/inputs/previous-template.json.gz new file mode 100644 index 0000000000..df9238596d Binary files /dev/null and b/research/staged544-r437-admission-audit/inputs/previous-template.json.gz differ diff --git a/research/staged544-r437-admission-audit/verify.py b/research/staged544-r437-admission-audit/verify.py new file mode 100644 index 0000000000..0350f02502 --- /dev/null +++ b/research/staged544-r437-admission-audit/verify.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Independent, source-bound OQ4 transition check. No predecessor code is imported. + +The selected idle-axis rule is a premise, not a physical all-size theorem. +This checker compares two complete templates and rederives their windows, +coordinate occupancy, owner maps, residual charges, and exact change set. +""" +from __future__ import annotations + +import argparse +import copy +import gzip +import hashlib +import json +from collections import Counter +from pathlib import Path +from typing import Any + +P = Path(__file__).resolve().parent + +class AuditFailure(ValueError): + pass + +def require(condition: bool, message: str) -> None: + if not condition: + raise AuditFailure(message) + +def differences(a: Any, b: Any, path: tuple = ()) -> list[tuple]: + """Enumerate the complete semantic difference, including added/deleted fields.""" + if type(a) is not type(b): + return [(path, a, b)] + if isinstance(a, dict): + result = [] + for key in sorted(a.keys() | b.keys()): + if key not in a or key not in b: + result.append((path + (key,), a.get(key), b.get(key))) + else: + result.extend(differences(a[key], b[key], path + (key,))) + return result + if isinstance(a, list): + if len(a) != len(b): + return [(path, ['length', len(a)], ['length', len(b)])] + result = [] + for index, (x, y) in enumerate(zip(a, b)): + result.extend(differences(x, y, path + (index,))) + return result + return [] if a == b else [(path, a, b)] + +def windows(schedule: list[dict]) -> dict[int, tuple[int, int, list[int]]]: + """For each child, scan backwards to its latest local or bridge touch. + + This is deliberately a backwards implementation of the retained rule, + independent of hosting_core.py's forward last-touch state machine. + Idle events are not touches under that rule. + """ + result = {} + for end, child in enumerate(schedule): + if child['kind'] != 'idle' or child['rank'] <= 0: + continue + pair, eligible = child['pair'], [] + for event in reversed(schedule[:end]): + kind = event['kind'] + if kind == 'bridge' and pair in (event['src'], event['dst']): + break + if kind == 'local_cover_sweep': + if event['pair'] == pair: + break + eligible.append(event['stage']) + result[child['idx']] = (pair, child['rank'], sorted(eligible)) + return result + +def template_audit(t: dict) -> dict: + require((t['replicas'], t['stages'], t['m'], t['h'], t['live'], + t['private_centre_reserve']) == (32, 9, 64, 8, 28416, 9), 'stock constants') + require(all(v == 0 for v in t['banks_per_stage'].values()), 'no unpriced banks') + win = windows(t['schedule']) + require({str(k): list(v) for k, v in win.items()} == t['hosting']['windows'], 'window derivation') + slots = t['hosting']['slots'] + require(len(slots) == 9 * 437, 'complete slot count') + by_role, used = {}, {(i, c): set() for i in win for c in range(222)} + for row in slots: + require(isinstance(row, list) and len(row) == 6 and all(type(v) is int for v in row), 'integer slot') + child, family, offset, width, stage, helper = row + require(child in win and 0 <= family < 222 and 0 <= helper < 437 and width == 8, 'slot dimensions') + require(stage in win[child][2], 'slot chronology') + require((stage, helper) not in by_role, 'duplicate helper role') + require(0 <= offset and offset + width <= win[child][1], 'slot capacity') + coords = set(range(offset, offset + width)) + require(not (used[child, family] & coords), 'slot overlap') + used[child, family].update(coords) + by_role[stage, helper] = row + require(set(by_role) == {(s, h) for s in range(9) for h in range(437)}, 'role coverage') + remainder = {str(i): Counter() for i in win} + for (child, family), coords in used.items(): + require(coords == set(range(len(coords))), 'contiguous remainder') + remainder[str(child)][str(win[child][1] - len(coords))] += 1 + require({i: dict(c) for i, c in remainder.items()} == t['hosting']['remainders'], 'remainder census') + calls = t['calls'] + require(len(calls) == 288, 'complete call count') + seen, checked = set(), 0 + local_events = {e['stage']: e for e in t['schedule'] if e['kind'] == 'local_cover_sweep'} + for call in calls: + stage, replica = call['stage'], call['replica'] + require(0 <= stage < 9 and 0 <= replica < 32 and (stage, replica) not in seen, 'call coverage') + seen.add((stage, replica)) + event = local_events[stage] + require(call['pair'] == event['pair'] and call['orientation'] == ('reverse' if event['reverse'] else 'forward'), 'call chronology') + owners = call['owners'] + require(len(owners) == 659, 'owner arity') + # The first 222 source/target owners follow the unchanged data route. + for register in range(222): + side, port = divmod(register, 111) + side ^= int(call['orientation'] == 'reverse') + family = replica * 888 + (2 * call['pair'] + side) * 111 + port + require(owners[register] == [family, ['data', stage, port]], 'data owner binding') + for helper in range(437): + child, family, offset, width, _, _ = by_role[stage, helper] + physical = replica * 888 + 222 * win[child][0] + family + require(owners[222 + helper] == [physical, ['hosted', child, offset, width]], 'helper owner binding') + checked += 1 + idle = Counter() + for c in remainder.values(): + for rank, multiplicity in c.items(): + if int(rank): + idle[int(rank)] += 32 * multiplicity + return {'helper_owner_occurrences': checked, 'slots_per_replica': len(slots), + 'idle_profile': dict(sorted(idle.items())), 'window6': list(win[6]), + 'window6_remainders_per_replica': dict(remainder['6'])} + +def audit(old: dict, new: dict) -> dict: + # Semantic gates precede the exact-transition gate, so the mutants exercise + # chronology, coordinate capacity, and actual owner binding, not just hashes. + a, b = template_audit(old), template_audit(new) + expected = [] + for replica in range(32): + call = 192 + replica + expected.append((('calls', call, 'owners', 644, 0), 888 * replica + 210, 888 * replica + 209)) + expected.append((('calls', call, 'owners', 644, 1, 2), 0, 8)) + expected += [(('hosting', 'remainders', '6', '26'), None, 1), + (('hosting', 'remainders', '6', '34'), 2, None), + (('hosting', 'remainders', '6', '42'), 11, 12), + (('hosting', 'slots', 3044, 1), 210, 209), + (('hosting', 'slots', 3044, 2), 0, 8)] + delta = differences(old, new) + require(delta == expected, 'exact transition') + # This exhausts every field, including local programs and their hashes, + # schedule, data routes, isometries, cover, stock, and unchanged owners. + profile_delta = {r: b['idle_profile'].get(r, 0) - a['idle_profile'].get(r, 0) + for r in a['idle_profile'].keys() | b['idle_profile'].keys()} + profile_delta = {r: n for r, n in sorted(profile_delta.items()) if n} + require(profile_delta == {26: 32, 34: -64, 42: 32}, 'paid-profile delta') + require(sum(profile_delta.values()) == sum(r*n for r, n in profile_delta.items()) == 0, + 'count and rank-mass conservation') + return {'status': 'PASS_INDEPENDENT_R437_OQ4_TRANSITION', + 'semantic_leaf_changes': len(delta), 'changed_helper_owners': 32, + 'before': a, 'after': b, 'paid_profile_delta': profile_delta, + 'unchanged_local_programs': True, 'unchanged_schedule_and_other_fields': True, + 'child_count_delta': 0, 'rank_mass_delta': 0, + 'no_full_supplier_or_all_size_admission': True} + +def controls(old: dict, new: dict) -> list[dict]: + cases = [] + def mutant(name, message, change): + bad = copy.deepcopy(new) + change(bad) + try: + audit(old, bad) + except AuditFailure as error: + require(str(error) == message, 'wrong control rejection for ' + name + ': ' + str(error)) + cases.append({'name': name, 'rejected_by': message}) + else: + raise AuditFailure('accepted mutant ' + name) + mutant('overlapping helper stripes', 'slot overlap', lambda x: x['hosting']['slots'][3044].__setitem__(2, 0)) + mutant('overfull pending child', 'slot capacity', lambda x: x['hosting']['slots'][3044].__setitem__(2, 40)) + mutant('illegal source window', 'slot chronology', lambda x: x['hosting']['slots'][3044].__setitem__(4, 2)) + mutant('stale owner in last replica', 'helper owner binding', lambda x: x['calls'][223]['owners'].__setitem__(644, old['calls'][223]['owners'][644])) + mutant('stale residual invoice', 'remainder census', lambda x: x['hosting']['remainders'].__setitem__('6', old['hosting']['remainders']['6'])) + # These leave all the new geometry gates valid and fail only the complete + # transition comparison. They guard against promoting old identity coverage + # after a seemingly unrelated word or template modification. + mutant('changed local program', 'exact transition', lambda x: x['local_programs']['forward'][0].__setitem__(0, 'INVALID')) + mutant('changed cover contract', 'exact transition', lambda x: x.__setitem__('cover', x['cover'] + ' changed')) + return cases + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--write-result', type=Path, help='Write the recomputed receipt to a new path.') + args = parser.parse_args() + sources = json.loads((P/'SOURCES.json').read_text()) + loaded = {} + for source in sources['templates']: + relative = Path(source['local_path']) + require(not relative.is_absolute() and '..' not in relative.parts, 'relative source path') + path = P/relative + require(path.is_file() and not path.is_symlink(), 'regular source file') + require(not any(parent.is_symlink() for parent in path.parents if parent != P.parent), 'no source aliases') + raw = path.read_bytes() + require(hashlib.sha256(raw).hexdigest() == source['sha256'], 'source SHA256') + require(hashlib.sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == source['git_blob'], 'source Git blob') + loaded[source['role']] = json.loads(gzip.decompress(raw)) + result = audit(loaded['previous'], loaded['current']) + result['negative_controls'] = controls(loaded['previous'], loaded['current']) + data = json.dumps(result, sort_keys=True, indent=2) + '\n' + if args.write_result: + with args.write_result.open('x', encoding='utf-8') as f: + f.write(data) + else: + require((P/'RESULT.json').read_text() == data, 'committed receipt equality') + print(data, end='') + +if __name__ == '__main__': + main()