From 5c6c32db4449aa661aca3c37416df0d7593908bd Mon Sep 17 00:00:00 2001 From: ToikY <27568617+ToikY@users.noreply.github.com> Date: Fri, 16 Oct 2026 05:20:50 -0700 Subject: [PATCH] Audit PR2917 paired-helper frame ledger with exhaustive finite sets Reconstruct both providers, nine frame-projection stages, thirteen exact frame refits and cleanup syntax from pinned operations. Preserve scope, predecessor credit, semantic failure controls and reproducible receipts. No frontier, supplier-admission or kappa change. --- .../paired-helper-frame-ledger/INPUTS.json | 105 + research/paired-helper-frame-ledger/README.md | 161 ++ .../paired-helper-frame-ledger/RESULT.json | 1728 +++++++++++++++++ .../SOURCE-CREDITS.md | 40 + .../paired-helper-frame-ledger/SOURCES.json | 29 + research/paired-helper-frame-ledger/TASK.json | 108 ++ .../VALIDATION.json | 36 + .../paired-helper-frame-ledger/VERIFY.json | 51 + .../data/PARENT-base.json.gz | Bin 0 -> 69992 bytes .../data/PARENT-extra.json.gz | Bin 0 -> 69989 bytes .../data/TRANSFORM-299.json | 274 +++ .../data/TRANSFORM-304.json | 296 +++ .../data/TRANSFORM-320.json | 249 +++ .../data/TRANSFORM-331.json | 266 +++ .../data/TRANSFORM-412.json | 258 +++ .../data/TRANSFORM-424.json | 250 +++ .../data/TRANSFORM-428.json | 258 +++ .../data/TRANSFORM-499.json | 322 +++ .../data/TRANSFORM-511.json | 298 +++ .../data/WORD-base.json.gz | Bin 0 -> 69818 bytes .../data/WORD-extra.json.gz | Bin 0 -> 69814 bytes research/paired-helper-frame-ledger/ledger.py | 558 ++++++ .../paired-helper-frame-ledger/test_verify.py | 274 +++ research/paired-helper-frame-ledger/verify.py | 127 ++ 24 files changed, 5688 insertions(+) create mode 100644 research/paired-helper-frame-ledger/INPUTS.json create mode 100644 research/paired-helper-frame-ledger/README.md create mode 100644 research/paired-helper-frame-ledger/RESULT.json create mode 100644 research/paired-helper-frame-ledger/SOURCE-CREDITS.md create mode 100644 research/paired-helper-frame-ledger/SOURCES.json create mode 100644 research/paired-helper-frame-ledger/TASK.json create mode 100644 research/paired-helper-frame-ledger/VALIDATION.json create mode 100644 research/paired-helper-frame-ledger/VERIFY.json create mode 100644 research/paired-helper-frame-ledger/data/PARENT-base.json.gz create mode 100644 research/paired-helper-frame-ledger/data/PARENT-extra.json.gz create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-299.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-304.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-320.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-331.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-412.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-424.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-428.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-499.json create mode 100644 research/paired-helper-frame-ledger/data/TRANSFORM-511.json create mode 100644 research/paired-helper-frame-ledger/data/WORD-base.json.gz create mode 100644 research/paired-helper-frame-ledger/data/WORD-extra.json.gz create mode 100644 research/paired-helper-frame-ledger/ledger.py create mode 100644 research/paired-helper-frame-ledger/test_verify.py create mode 100644 research/paired-helper-frame-ledger/verify.py diff --git a/research/paired-helper-frame-ledger/INPUTS.json b/research/paired-helper-frame-ledger/INPUTS.json new file mode 100644 index 0000000000..d2ce0f0617 --- /dev/null +++ b/research/paired-helper-frame-ledger/INPUTS.json @@ -0,0 +1,105 @@ +{ + "source_repository": "CrocSwap/integer-mult-bounds", + "source_pr": 2917, + "source_commit": "224bd5e56041c40078ff6b5fa7393733a215de5c", + "files": [ + { + "path": "data/PARENT-base.json.gz", + "source_path": "research/paired-helper-extension/data/PARENT-base.json.gz", + "git_blob": "6303cfd847033481d1e662e2a2fd467caf5f6429", + "sha256": "3657ad53ebe5f156f307a903479e919f2fe812811ce5d5f15e72c3aaf68dfde3", + "bytes": 69992 + }, + { + "path": "data/PARENT-extra.json.gz", + "source_path": "research/paired-helper-extension/data/PARENT-extra.json.gz", + "git_blob": "38af2b6ea76002df44de3c8045b24ce622782b9f", + "sha256": "b975492ff4cbec0d619cdf2da34f55ce3b20c8a541132e4339cc6c8ae3b2e487", + "bytes": 69989 + }, + { + "path": "data/TRANSFORM-299.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-299.json", + "git_blob": "897a8917195dbcc334293d6509215640a9c852ad", + "sha256": "781585f68449c30f63e40ee4bf58d1fa194e4faf8cf4394505437fc15137ba34", + "bytes": 2881 + }, + { + "path": "data/TRANSFORM-304.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-304.json", + "git_blob": "e04d29425033122f76dcd7c6658ea95a6cf27d3d", + "sha256": "024515c6e47d952dfaf307fcefda9f2106049ccc28875ae620d95241fdec72ed", + "bytes": 3084 + }, + { + "path": "data/TRANSFORM-320.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-320.json", + "git_blob": "9c8490c8643214e00eebcc50f45089e4e866d1c4", + "sha256": "0e4c0216221ab21c4bf48a11eab34ff6cc245014d664dc1523cfae9d437dc00d", + "bytes": 2630 + }, + { + "path": "data/TRANSFORM-331.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-331.json", + "git_blob": "7d35aab299dcd034ec9ecd67877bbe911c1a960c", + "sha256": "355bcfd60ffcb672f66882e66bae1b046d1bfb979f725b411b034f811dfb68bb", + "bytes": 2812 + }, + { + "path": "data/TRANSFORM-412.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-412.json", + "git_blob": "e62dd449d7ce79fc99cd128855d324ee6b554cd8", + "sha256": "54328a8436d7abed6433da5e4384a36ad95b266070479b496e0e96416a5f5a79", + "bytes": 2498 + }, + { + "path": "data/TRANSFORM-424.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-424.json", + "git_blob": "4fae6d1bb371f8407a8cd33b47dda8ccd64be7c6", + "sha256": "42747fa1332af1ca0827edebfff7490ee761f84f662527f593e975a502400dbc", + "bytes": 2399 + }, + { + "path": "data/TRANSFORM-428.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-428.json", + "git_blob": "1593c52045af30bbb15063d29ec1460c79d84ef9", + "sha256": "89e8fbd5a5d1d64d386cdc38f257cae18d8e7428e868f618ed1f0be5a22aba3e", + "bytes": 2501 + }, + { + "path": "data/TRANSFORM-499.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-499.json", + "git_blob": "7c22cd7a667f9fab088174aae93768d474794061", + "sha256": "f86eef40cd96b45c67755903eae6a86432e2aeb6d53812621222db7c062d88f6", + "bytes": 3463 + }, + { + "path": "data/TRANSFORM-511.json", + "source_path": "research/paired-helper-extension/data/TRANSFORM-511.json", + "git_blob": "7c7bf4b1a18ccdce241d2e8f7d5c1149c5dd3fbe", + "sha256": "48e0749f1c82594841c88923a38b0308ed777639631a4c3f2414500617f2e34b", + "bytes": 3109 + }, + { + "path": "data/WORD-base.json.gz", + "source_path": "research/paired-helper-extension/data/WORD-base.json.gz", + "git_blob": "9be0aa5349dbc8c928a46089a7695e224d0e4d16", + "sha256": "fec3c120db1a35022944628d34b56a36f2456248c274c2eaba1a325cdc690ce8", + "bytes": 69818 + }, + { + "path": "data/WORD-extra.json.gz", + "source_path": "research/paired-helper-extension/data/WORD-extra.json.gz", + "git_blob": "40b38365ea4b841101405ebd2c4fdcadcb8b9808", + "sha256": "e4d0c617df85bf8a824ff68310ca3373dc017c1ebf9ea733056a3ee4a784b36f", + "bytes": 69814 + }, + { + "path": "SOURCE-CREDITS.md", + "source_path": "research/paired-helper-extension/CREDITS.md", + "git_blob": "153868a3ebcf56962716f6222f0f542a9417e502", + "sha256": "a4e845cbd7cd430d7b53899b3148fb908c3af1924137412e44f19a9031fdc86a", + "bytes": 2337 + } + ] +} diff --git a/research/paired-helper-frame-ledger/README.md b/research/paired-helper-frame-ledger/README.md new file mode 100644 index 0000000000..8b4460456d --- /dev/null +++ b/research/paired-helper-frame-ledger/README.md @@ -0,0 +1,161 @@ +# Independent finite frame ledger for PR2917 + +**Finite accounting audit; no new κ or supplier admission.** This package checks +Mason Hale's nine additional paired-helper extractions in +[PR2917](https://github.com/CrocSwap/integer-mult-bounds/pull/2917), pinned at +`224bd5e56041c40078ff6b5fa7393733a215de5c`. Both `base` and `extra` providers pass. +The immediate parent is Jeremy Diviney's [PR2908](https://github.com/CrocSwap/integer-mult-bounds/pull/2908) +at `51309592971e3b5be935599eed2a95404dc7781e`. + +## What this adds + +The predecessor `vendor/preload_move.py:frame_report` and +`vendor/audit_local.py` both use essentially the same pivot-basis and climb +calculation. Here a frame is its complete subset of `GF(2)^9`: at most 512 +vectors, constructed by XOR closure. Dimensions are obtained from cardinality; +containment and equality are set operations. No predecessor Python is imported +or executed. This is a different implementation of the **frame implication**, +not a claim of independent verification of the whole construction. + +The new replay derives every positive climb, every separate centre descent, +and the terminal climbs from the ordered operations. It checks actual subspaces, +not merely dimensions, including signed prelude warps, all 512 images of each +invertible warp map, dual perpendicular transport, lifted frame maps and the +symplectic identity. It then compares the derived histogram with the word's +report. It reconstructs nine sequential **frame projections**, checks each +declared old-frame preimage and candidate index, and compares the final +frame-bearing sections with the frozen final word. Compensation algebra is not +part of that projection. + +| Derived quantity, for either provider | Parent | Final | +| --- | ---: | ---: | +| Paid profile | 2407 H1 + 640 H2 + 262 H3 + 128 H4 + 26 H5 + 8 H8 | 2416 H1 + 640 H2 + 280 H3 + 110 H4 + 26 H5 + 8 H8 | +| Positive paid events | 3471 | 3480 | +| Paid rank mass | 5179 | 5170 | +| Sum of 408 helper widths | 3323 | 3314 | +| Width inventory | 4:26, 5:2, 7:62, 8:87, 9:231 | 4:26, 5:2, 7:62, 8:96, 9:222 | +| Private cleanup buffers | 73 | 82 | + +The extraction order is `424, 428, 412, 331, 299, 320, 511, 304, 499`. +Each of the first three steps changes the profile by `3 H1 - 2 H2`; each of +the last six changes it by `H2 + 3 H3 - 3 H4`. Therefore the net change is +`9 H1 + 18 H3 - 18 H4`. Each extracted helper changes width from nine to eight; +all other widths are unchanged. + +All **13** declared frame edits satisfy the stronger geometric identity +`new_frame = old_frame ∩ E_normal`, with `E_normal` the extraction hyperplane. +Twelve edits lower an A-operation frame from dimension eight to seven. The +thirteenth lowers helper499's inherited `restore[40]` scale frame from nine to +eight. Restoring only that frame to FULL makes its later rank-eight touch at +`restore[114]` illegal, although the scalar operation itself is unchanged. + +A useful cross-check telescopes the frame dimensions. Warps preserve dimension; +ordinary climbs sum to endpoint dimension minus entrance dimension. Centre +readout descents are charged separately and do not lower the main-word carrier. +The source/target contribution is `112*8 + 112*8 = 1792`; eight centre descents +contribute 64. Thus: + +``` +parent: 1792 + 3323 + 64 = 5179 +final: 1792 + 3314 + 64 = 5170 +``` + +The cleanup audit independently constructs the inverse-reverse **syntax** of +the forward non-target program, omitting the prelude, and substitutes `704+h` +for every protected helper `h`. It checks every actual cleanup operation, +reciprocal/negated coefficient, inverse warp identifier, full frame and private +buffer name. The buffer sets equal exactly `704 + helper_final`, with no direct +cleanup reference to a protected helper. This does **not** prove that those +buffers return to zero. Intermediate stage cleanup is derived syntax, not +comparison against separately stored stage words. + +## Reproduce + +Python 3.12, standard library only. From repository root: + +```sh +python3.12 -I -B research/paired-helper-frame-ledger/verify.py +python3.12 -I -B research/paired-helper-frame-ledger/test_verify.py +python3.12 -I -B -O research/paired-helper-frame-ledger/verify.py +python3.12 -I -B -O research/paired-helper-frame-ledger/test_verify.py +python3.12 -B scripts/research_package.py --package research/paired-helper-frame-ledger +``` + +Expected marker: `PASS_PAIRED_HELPER_FRAME_LEDGER`. Verification is read-only. +The local environment, successful commands and reviewed code hashes are recorded +in [VALIDATION.json](VALIDATION.json); hosted CI is separate. +`RESULT.json` records both providers, all stage profiles, exact edit locations, +section histograms and hashes of the derived event ledgers. To inspect every +paid event and helper width, use `verify.py --details` and redirect stdout to a +file **outside** the package. This output is freshly calculated, not loaded from +the frozen receipt. Exact comparison uses canonical JSON so that Boolean and +floating aliases cannot stand in for integer receipts. + +`INPUTS.json` pins the four gzip words, nine transform JSON files and retained +credit text by SHA256, byte length and Git blob. The wrapper also pins the +manifest itself. These are immutable source bytes, not regenerated compressed +outputs. The source commit and original paths were authenticated against Git +at intake; offline replay checks the frozen source inventory and bytes. +`SOURCES.json` pins the original catalogue and selected-record provenance; +they are not live mathematical inputs. The generic metadata check needs that +base Git history. The standalone replay needs only this directory. + +Controls cover equal-rank unequal frames, chronological ordering, warp preimages +and invertible but wrong maps, omitted endpoint charges, forged inventories, +the helper499 scale refit, cleanup aliases/inverses/types, transform bindings, +input corruption and strict JSON. A separate XOR-pivot oracle checks all 128 +generating subsets of the seven nonzero three-bit vectors, their 16 subspaces +and all 256 ordered containment pairs. Checks remain active under `-O`. + +## Scope and overlap + +The `independent-moment` card was selected with OS nonce +`9e2c1aa952cf9f74c87b48ad6e7d6ac1` from priority revision 5 at main +`8c8bcecb03def61bca701dd3b045932d39c48022`. Its rank-ledger method was refined +to this new nine-step input. The +[canonical claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/2612#discussioncomment-18972911) +records the boundary with mdumitrean's concurrent allocation work on PR2917. +The entry overlap search covered 476 open PR bodies including drafts, 2657 +local notes/tasks/ledger records, and manually inspected relevant current +Discussion threads. Cached PR pagination is a non-atomic snapshot; Discussion +pagination, arbitrary diffs and unpublished work were not exhaustively covered. +No matches would not certify novelty. See `TASK.json` for exact coverage and +remaining questions. + +This audit does not replay the predecessor's scalar or free-operator identities, +compensation correctness, 632-column forward/dual audit, native implementation, +buffer-zero proof, owner allocation, physical stock, precision, moment/root +calculation, outer admission or all-size/compiler hypotheses. It does not +change the selected record, any predecessor package, or the frontier. The +82 cleanup names do not establish an 82-register feasible physical schedule; +the inherited ambient dimension 73 is a different quantity. + +## Open next questions + +1. Does the pinned final word, including compensation and cleanup, have the + claimed operator endpoint and zero-buffer behavior? A reviewer can first + authenticate PR2917's full source closure and replay its declared operator + checks. This package supplies only the frame/accounting component; primary + success and independent coverage must remain separate. +2. Does a source-bound native owner allocation for that unchanged word satisfy + complete physical-stock, precision and outer-admission obligations? Continue + from the current canonical allocation claim, first checking its exact word + and allocation pins. A local cap or profile alone cannot discharge those + obligations. That work is intentionally left to its active owner. + +## Credit + +Prepared by ToikY with substantial OpenAI Codex assistance, including separate +AI implementation, adversarial-test and mathematical-review agents. This is +not independent human review or proof-assistant verification. New code and +documentation are Apache-2.0. + +Mason Hale contributed the nine extractions and 13 enabling frame edits in +PR2917. Jeremy Diviney supplied the immediate paired-helper408 construction +and compensation/cleanup architecture in PR2908. Jeremy Kothe supplied the +preload and frame chronology in PR2894 (`18d03c447886895ef9abf888398178e0428533ca`) +and PR2833. Retained upstream attribution, including Yiyang Lu, Dugongue, +Marius-Paul Dumitrean, Philippe Van Velzen, Tekalign and icekylinx, appears in +the byte-identical [SOURCE-CREDITS.md](SOURCE-CREDITS.md). Its descriptions of +the primary package's replay are predecessor statements, not checks claimed +by this audit. No predecessor executable code is vendored here. diff --git a/research/paired-helper-frame-ledger/RESULT.json b/research/paired-helper-frame-ledger/RESULT.json new file mode 100644 index 0000000000..bb07c8c263 --- /dev/null +++ b/research/paired-helper-frame-ledger/RESULT.json @@ -0,0 +1,1728 @@ +{ + "chains": { + "base": { + "buffer_count_after": 82, + "buffer_count_before": 73, + "changed_helpers": [ + 299, + 304, + 320, + 331, + 412, + 424, + 428, + 499, + 511 + ], + "final_event_ledger_sha256": "33daf04bbdd450dcdecc40f05c25ba0e04380943573633990a47c8b26b91dea8", + "frame_edits": [ + { + "candidate_index": 3651, + "from_dimension": 8, + "helper": 331, + "new_span_sha256": "dc89cd351a8af45367d54bc73baa3c99595986e30951d98abf8717a37fccd830", + "old_span_sha256": "4ebc3780540c8fcc5c683833dbdf14375648901c4e660068a8cec8c5ecf1eb3e", + "parent_index": 3633, + "section": "A", + "step": 4, + "to_dimension": 7 + }, + { + "candidate_index": 3652, + "from_dimension": 8, + "helper": 331, + "new_span_sha256": "dc89cd351a8af45367d54bc73baa3c99595986e30951d98abf8717a37fccd830", + "old_span_sha256": "4ebc3780540c8fcc5c683833dbdf14375648901c4e660068a8cec8c5ecf1eb3e", + "parent_index": 3634, + "section": "A", + "step": 4, + "to_dimension": 7 + }, + { + "candidate_index": 3664, + "from_dimension": 8, + "helper": 299, + "new_span_sha256": "69ad7523b0a21deb996f19d6d93baaf73370c98aad3ba4484f04c79651090496", + "old_span_sha256": "40cc187f8f5825ad4831ed21da97af9bb7438b394732fd5c053ecdf0f820183b", + "parent_index": 3645, + "section": "A", + "step": 5, + "to_dimension": 7 + }, + { + "candidate_index": 3665, + "from_dimension": 8, + "helper": 299, + "new_span_sha256": "69ad7523b0a21deb996f19d6d93baaf73370c98aad3ba4484f04c79651090496", + "old_span_sha256": "40cc187f8f5825ad4831ed21da97af9bb7438b394732fd5c053ecdf0f820183b", + "parent_index": 3646, + "section": "A", + "step": 5, + "to_dimension": 7 + }, + { + "candidate_index": 3706, + "from_dimension": 8, + "helper": 320, + "new_span_sha256": "e1e1bac96f49a7ca282cd5c94bad9b094d3aae0d9e6063c0a4081bd7efe25c1e", + "old_span_sha256": "0acb2bc5936caea7a87000fcd106bc9a1cef4945ed84fb5c86c5aef239c26ac4", + "parent_index": 3688, + "section": "A", + "step": 6, + "to_dimension": 7 + }, + { + "candidate_index": 3707, + "from_dimension": 8, + "helper": 320, + "new_span_sha256": "e1e1bac96f49a7ca282cd5c94bad9b094d3aae0d9e6063c0a4081bd7efe25c1e", + "old_span_sha256": "0acb2bc5936caea7a87000fcd106bc9a1cef4945ed84fb5c86c5aef239c26ac4", + "parent_index": 3689, + "section": "A", + "step": 6, + "to_dimension": 7 + }, + { + "candidate_index": 3722, + "from_dimension": 8, + "helper": 511, + "new_span_sha256": "d0ca0bf574a48007cb74121587ba26e59090e752af3e9761582215ec3307c509", + "old_span_sha256": "518ec4a75b278eeb2dc2c9504391473a405e7fec03967031b3240005050cf41d", + "parent_index": 3700, + "section": "A", + "step": 7, + "to_dimension": 7 + }, + { + "candidate_index": 3723, + "from_dimension": 8, + "helper": 511, + "new_span_sha256": "d0ca0bf574a48007cb74121587ba26e59090e752af3e9761582215ec3307c509", + "old_span_sha256": "518ec4a75b278eeb2dc2c9504391473a405e7fec03967031b3240005050cf41d", + "parent_index": 3701, + "section": "A", + "step": 7, + "to_dimension": 7 + }, + { + "candidate_index": 3758, + "from_dimension": 8, + "helper": 304, + "new_span_sha256": "031be785d281abb715d9962ca45d4b764662d23733ca4a13b952950a04801cc0", + "old_span_sha256": "7c5801dc48303004557b9e4fd5f72b31e11992ef3179b660e1703b30c5fc39cd", + "parent_index": 3734, + "section": "A", + "step": 8, + "to_dimension": 7 + }, + { + "candidate_index": 3759, + "from_dimension": 8, + "helper": 304, + "new_span_sha256": "031be785d281abb715d9962ca45d4b764662d23733ca4a13b952950a04801cc0", + "old_span_sha256": "7c5801dc48303004557b9e4fd5f72b31e11992ef3179b660e1703b30c5fc39cd", + "parent_index": 3735, + "section": "A", + "step": 8, + "to_dimension": 7 + }, + { + "candidate_index": 3761, + "from_dimension": 8, + "helper": 499, + "new_span_sha256": "b75d2cf1ecc579645b30853bf62e1af3b06f61c6ceca252227a07215c152671e", + "old_span_sha256": "955ddec25a50749e29e4cb389ff15f505a9a51d86999cee5a4f8aa2782ab0a4d", + "parent_index": 3740, + "section": "A", + "step": 9, + "to_dimension": 7 + }, + { + "candidate_index": 3762, + "from_dimension": 8, + "helper": 499, + "new_span_sha256": "b75d2cf1ecc579645b30853bf62e1af3b06f61c6ceca252227a07215c152671e", + "old_span_sha256": "955ddec25a50749e29e4cb389ff15f505a9a51d86999cee5a4f8aa2782ab0a4d", + "parent_index": 3741, + "section": "A", + "step": 9, + "to_dimension": 7 + }, + { + "candidate_index": 40, + "from_dimension": 9, + "helper": 499, + "new_span_sha256": "51059fc188aae1804ab10b7033ae56696faa63b18a888cd154288115af3b2a3a", + "old_span_sha256": "61f3f6fd3aa109e05aa31cc4d74f333d17c8f73ced22284db2209e96a39884af", + "parent_index": 40, + "section": "restore", + "step": 9, + "to_dimension": 8 + } + ], + "frame_sections_checked": [ + "A", + "B", + "restore", + "helper_final", + "start_extra", + "centers", + "center_frames", + "target_levels", + "cut", + "warps", + "ports", + "removed", + "prelude_events" + ], + "parent_event_ledger_sha256": "1c7cbfbfcd9be00c61bbe1baf50822ad4fb567d1bc8a0221e5f8a389a2b3aae0", + "profile_delta": { + "1": 9, + "3": 18, + "4": -18 + }, + "rank_mass_delta": -9, + "scope": "Sequential frame projection and cleanup syntax only; compensation algebra and paired scalar/free-operator identities are inherited, not replayed.", + "stages": [ + { + "buffer_count": 74, + "event_ledger_sha256": "7e154a541b1343c543d4fdaaccb569bd94e0b6fd5dd8e6151c2a344a85cef8b8", + "frame_edits": 0, + "frame_projection_sha256": "ee7bcd7b43f521749abbcfacb5823a7fda87aaf5e5c5f4ec1a74f85d68b71c0b", + "helper": 424, + "input_gates": 24, + "normal": 52, + "output_gates": 3, + "profile": { + "1": 2410, + "2": 638, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5178, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 319, + "2": 70, + "3": 56 + }, + "restore": { + "1": 51, + "2": 38, + "3": 8 + } + }, + "step": 1, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 88, + "9": 230 + } + }, + { + "buffer_count": 75, + "event_ledger_sha256": "0754bae6f16a525b8bcaf927a8c7b5c9ae04b670a6368f1c9a9c08e822052a74", + "frame_edits": 0, + "frame_projection_sha256": "24e7da862155e5bc114e067280a8bda186775981f681bf821eda4e0da31fd92f", + "helper": 428, + "input_gates": 23, + "normal": 76, + "output_gates": 4, + "profile": { + "1": 2413, + "2": 636, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5177, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 320, + "2": 68, + "3": 56 + }, + "restore": { + "1": 53, + "2": 38, + "3": 8 + } + }, + "step": 2, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 89, + "9": 229 + } + }, + { + "buffer_count": 76, + "event_ledger_sha256": "5b9331fe4389104a0b4c50e32878a4e1752df84d1a25e672bddb618c5e7657a5", + "frame_edits": 0, + "frame_projection_sha256": "539541295eb96a14d4046dfd6d59ca5d3b3f449bcdc69e431d65bfd6591ba5ca", + "helper": 412, + "input_gates": 23, + "normal": 127, + "output_gates": 4, + "profile": { + "1": 2416, + "2": 634, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5176, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 321, + "2": 66, + "3": 56 + }, + "restore": { + "1": 55, + "2": 38, + "3": 8 + } + }, + "step": 3, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 90, + "9": 228 + } + }, + { + "buffer_count": 77, + "event_ledger_sha256": "d41e3feac6b675f7ac719694961d8fdbe22ffa001aa6ff1d4c23bffa121e51a4", + "frame_edits": 2, + "frame_projection_sha256": "56ddadcd535f89d0d862a8d3c2e2ce032630ac929305c0106d7cff33aacffb59", + "helper": 331, + "input_gates": 18, + "normal": 30, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 635, + "3": 265, + "4": 125, + "5": 26, + "8": 8 + }, + "rank_mass": 5175, + "section_profiles": { + "A": { + "1": 945, + "2": 12, + "3": 3, + "4": 53 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 319, + "2": 67, + "3": 56 + }, + "restore": { + "1": 56, + "2": 38, + "3": 8 + } + }, + "step": 4, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 91, + "9": 227 + } + }, + { + "buffer_count": 78, + "event_ledger_sha256": "b6db61a4e95765d4115f770536d1585524e3141a27863d6b4aa482df50af47b6", + "frame_edits": 2, + "frame_projection_sha256": "714675920669d41f3609e363ae77857d882733a943d29441f65dd9003462f8f8", + "helper": 299, + "input_gates": 19, + "normal": 51, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 636, + "3": 268, + "4": 122, + "5": 26, + "8": 8 + }, + "rank_mass": 5174, + "section_profiles": { + "A": { + "1": 946, + "2": 12, + "3": 6, + "4": 50 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 317, + "2": 68, + "3": 56 + }, + "restore": { + "1": 57, + "2": 38, + "3": 8 + } + }, + "step": 5, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 92, + "9": 226 + } + }, + { + "buffer_count": 79, + "event_ledger_sha256": "7b23346971af7249a2148abdc5a1f37a57b414c443bae247c071154a7348bac2", + "frame_edits": 2, + "frame_projection_sha256": "1cb9ac6b337983d4ac2dc7378924fd99a16a3ea3b1a0af702e1b4ec609c85ed5", + "helper": 320, + "input_gates": 18, + "normal": 75, + "output_gates": 2, + "profile": { + "1": 2416, + "2": 637, + "3": 271, + "4": 119, + "5": 26, + "8": 8 + }, + "rank_mass": 5173, + "section_profiles": { + "A": { + "1": 947, + "2": 12, + "3": 9, + "4": 47 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 315, + "2": 69, + "3": 56 + }, + "restore": { + "1": 58, + "2": 38, + "3": 8 + } + }, + "step": 6, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 93, + "9": 225 + } + }, + { + "buffer_count": 80, + "event_ledger_sha256": "6c93e4dbb96ec7565b63d2a99be81fa7035b1b55e3eade16ab6e2a656a593874", + "frame_edits": 2, + "frame_projection_sha256": "9ff4fb8f4066b278f8cf014bd32b77ed38937398352166254f00f35c119040ac", + "helper": 511, + "input_gates": 22, + "normal": 85, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 638, + "3": 274, + "4": 116, + "5": 26, + "8": 8 + }, + "rank_mass": 5172, + "section_profiles": { + "A": { + "1": 948, + "2": 12, + "3": 12, + "4": 44 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 313, + "2": 70, + "3": 56 + }, + "restore": { + "1": 59, + "2": 38, + "3": 8 + } + }, + "step": 7, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 94, + "9": 224 + } + }, + { + "buffer_count": 81, + "event_ledger_sha256": "70617ee641ac3173a15c5ef7ba4b9ce1b0c359a9ea2e11410487569189aa261d", + "frame_edits": 2, + "frame_projection_sha256": "60184835c91f6d306b4a1df25317df58f0e335391749bc8b6c0833a2565cafcb", + "helper": 304, + "input_gates": 24, + "normal": 102, + "output_gates": 2, + "profile": { + "1": 2416, + "2": 639, + "3": 277, + "4": 113, + "5": 26, + "8": 8 + }, + "rank_mass": 5171, + "section_profiles": { + "A": { + "1": 949, + "2": 12, + "3": 15, + "4": 41 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 311, + "2": 71, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "step": 8, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 95, + "9": 223 + } + }, + { + "buffer_count": 82, + "event_ledger_sha256": "33daf04bbdd450dcdecc40f05c25ba0e04380943573633990a47c8b26b91dea8", + "frame_edits": 3, + "frame_projection_sha256": "d015ee36d9db9cea430bd0ebdb15ad64f145f96e3d4408f900092461441ac6f2", + "helper": 499, + "input_gates": 21, + "normal": 120, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 640, + "3": 280, + "4": 110, + "5": 26, + "8": 8 + }, + "rank_mass": 5170, + "section_profiles": { + "A": { + "1": 950, + "2": 12, + "3": 18, + "4": 38 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 310, + "2": 72, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "step": 9, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 96, + "9": 222 + } + } + ] + }, + "extra": { + "buffer_count_after": 82, + "buffer_count_before": 73, + "changed_helpers": [ + 299, + 304, + 320, + 331, + 412, + 424, + 428, + 499, + 511 + ], + "final_event_ledger_sha256": "65c270409b388760b22ec96335e998938146969d0d44e671a1797212572ae3ff", + "frame_edits": [ + { + "candidate_index": 3651, + "from_dimension": 8, + "helper": 331, + "new_span_sha256": "dc89cd351a8af45367d54bc73baa3c99595986e30951d98abf8717a37fccd830", + "old_span_sha256": "4ebc3780540c8fcc5c683833dbdf14375648901c4e660068a8cec8c5ecf1eb3e", + "parent_index": 3633, + "section": "A", + "step": 4, + "to_dimension": 7 + }, + { + "candidate_index": 3652, + "from_dimension": 8, + "helper": 331, + "new_span_sha256": "dc89cd351a8af45367d54bc73baa3c99595986e30951d98abf8717a37fccd830", + "old_span_sha256": "4ebc3780540c8fcc5c683833dbdf14375648901c4e660068a8cec8c5ecf1eb3e", + "parent_index": 3634, + "section": "A", + "step": 4, + "to_dimension": 7 + }, + { + "candidate_index": 3664, + "from_dimension": 8, + "helper": 299, + "new_span_sha256": "69ad7523b0a21deb996f19d6d93baaf73370c98aad3ba4484f04c79651090496", + "old_span_sha256": "40cc187f8f5825ad4831ed21da97af9bb7438b394732fd5c053ecdf0f820183b", + "parent_index": 3645, + "section": "A", + "step": 5, + "to_dimension": 7 + }, + { + "candidate_index": 3665, + "from_dimension": 8, + "helper": 299, + "new_span_sha256": "69ad7523b0a21deb996f19d6d93baaf73370c98aad3ba4484f04c79651090496", + "old_span_sha256": "40cc187f8f5825ad4831ed21da97af9bb7438b394732fd5c053ecdf0f820183b", + "parent_index": 3646, + "section": "A", + "step": 5, + "to_dimension": 7 + }, + { + "candidate_index": 3706, + "from_dimension": 8, + "helper": 320, + "new_span_sha256": "e1e1bac96f49a7ca282cd5c94bad9b094d3aae0d9e6063c0a4081bd7efe25c1e", + "old_span_sha256": "0acb2bc5936caea7a87000fcd106bc9a1cef4945ed84fb5c86c5aef239c26ac4", + "parent_index": 3688, + "section": "A", + "step": 6, + "to_dimension": 7 + }, + { + "candidate_index": 3707, + "from_dimension": 8, + "helper": 320, + "new_span_sha256": "e1e1bac96f49a7ca282cd5c94bad9b094d3aae0d9e6063c0a4081bd7efe25c1e", + "old_span_sha256": "0acb2bc5936caea7a87000fcd106bc9a1cef4945ed84fb5c86c5aef239c26ac4", + "parent_index": 3689, + "section": "A", + "step": 6, + "to_dimension": 7 + }, + { + "candidate_index": 3722, + "from_dimension": 8, + "helper": 511, + "new_span_sha256": "d0ca0bf574a48007cb74121587ba26e59090e752af3e9761582215ec3307c509", + "old_span_sha256": "518ec4a75b278eeb2dc2c9504391473a405e7fec03967031b3240005050cf41d", + "parent_index": 3700, + "section": "A", + "step": 7, + "to_dimension": 7 + }, + { + "candidate_index": 3723, + "from_dimension": 8, + "helper": 511, + "new_span_sha256": "d0ca0bf574a48007cb74121587ba26e59090e752af3e9761582215ec3307c509", + "old_span_sha256": "518ec4a75b278eeb2dc2c9504391473a405e7fec03967031b3240005050cf41d", + "parent_index": 3701, + "section": "A", + "step": 7, + "to_dimension": 7 + }, + { + "candidate_index": 3758, + "from_dimension": 8, + "helper": 304, + "new_span_sha256": "031be785d281abb715d9962ca45d4b764662d23733ca4a13b952950a04801cc0", + "old_span_sha256": "7c5801dc48303004557b9e4fd5f72b31e11992ef3179b660e1703b30c5fc39cd", + "parent_index": 3734, + "section": "A", + "step": 8, + "to_dimension": 7 + }, + { + "candidate_index": 3759, + "from_dimension": 8, + "helper": 304, + "new_span_sha256": "031be785d281abb715d9962ca45d4b764662d23733ca4a13b952950a04801cc0", + "old_span_sha256": "7c5801dc48303004557b9e4fd5f72b31e11992ef3179b660e1703b30c5fc39cd", + "parent_index": 3735, + "section": "A", + "step": 8, + "to_dimension": 7 + }, + { + "candidate_index": 3761, + "from_dimension": 8, + "helper": 499, + "new_span_sha256": "b75d2cf1ecc579645b30853bf62e1af3b06f61c6ceca252227a07215c152671e", + "old_span_sha256": "955ddec25a50749e29e4cb389ff15f505a9a51d86999cee5a4f8aa2782ab0a4d", + "parent_index": 3740, + "section": "A", + "step": 9, + "to_dimension": 7 + }, + { + "candidate_index": 3762, + "from_dimension": 8, + "helper": 499, + "new_span_sha256": "b75d2cf1ecc579645b30853bf62e1af3b06f61c6ceca252227a07215c152671e", + "old_span_sha256": "955ddec25a50749e29e4cb389ff15f505a9a51d86999cee5a4f8aa2782ab0a4d", + "parent_index": 3741, + "section": "A", + "step": 9, + "to_dimension": 7 + }, + { + "candidate_index": 40, + "from_dimension": 9, + "helper": 499, + "new_span_sha256": "51059fc188aae1804ab10b7033ae56696faa63b18a888cd154288115af3b2a3a", + "old_span_sha256": "61f3f6fd3aa109e05aa31cc4d74f333d17c8f73ced22284db2209e96a39884af", + "parent_index": 40, + "section": "restore", + "step": 9, + "to_dimension": 8 + } + ], + "frame_sections_checked": [ + "A", + "B", + "restore", + "helper_final", + "start_extra", + "centers", + "center_frames", + "target_levels", + "cut", + "warps", + "ports", + "removed", + "prelude_events" + ], + "parent_event_ledger_sha256": "de0e98707a1be56c3458ee82f1fde92885e546ba51774ce1d212949e5e85aaec", + "profile_delta": { + "1": 9, + "3": 18, + "4": -18 + }, + "rank_mass_delta": -9, + "scope": "Sequential frame projection and cleanup syntax only; compensation algebra and paired scalar/free-operator identities are inherited, not replayed.", + "stages": [ + { + "buffer_count": 74, + "event_ledger_sha256": "edc700892c36b307d810e4c9fa973487ba854a1ea2e84124c467194d1c7c7077", + "frame_edits": 0, + "frame_projection_sha256": "55cae1782a4da1ecc1448c2c43cf0c3fa9e5793c26548817214da71fb95d56d3", + "helper": 424, + "input_gates": 24, + "normal": 52, + "output_gates": 3, + "profile": { + "1": 2410, + "2": 638, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5178, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 319, + "2": 70, + "3": 56 + }, + "restore": { + "1": 51, + "2": 38, + "3": 8 + } + }, + "step": 1, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 88, + "9": 230 + } + }, + { + "buffer_count": 75, + "event_ledger_sha256": "2bf8a2510b3d82cdacc466f98694b6cc4eef012d7aa514e7ed5f876a1345c165", + "frame_edits": 0, + "frame_projection_sha256": "f3108e386e092aa3e2488d3fa8c7de4300523653490328942adc0f2a8eb8492a", + "helper": 428, + "input_gates": 23, + "normal": 76, + "output_gates": 4, + "profile": { + "1": 2413, + "2": 636, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5177, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 320, + "2": 68, + "3": 56 + }, + "restore": { + "1": 53, + "2": 38, + "3": 8 + } + }, + "step": 2, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 89, + "9": 229 + } + }, + { + "buffer_count": 76, + "event_ledger_sha256": "2222351a064f0c6e7fbfa58f73c1dd11b7bc5d2617de6a644e0636482e9e53fb", + "frame_edits": 0, + "frame_projection_sha256": "06134b173c810e083e4d398f3c486bb781ea07eae884dca0e26f078b5723c994", + "helper": 412, + "input_gates": 23, + "normal": 127, + "output_gates": 4, + "profile": { + "1": 2416, + "2": 634, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5176, + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 321, + "2": 66, + "3": 56 + }, + "restore": { + "1": 55, + "2": 38, + "3": 8 + } + }, + "step": 3, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 90, + "9": 228 + } + }, + { + "buffer_count": 77, + "event_ledger_sha256": "cf35a3281618bd3923702a3def3d92d2b9daada8681bc7f1b42b372d56e3bf9f", + "frame_edits": 2, + "frame_projection_sha256": "f4dcde4b907359705c892187fe92ec0ac1e6b71ba9b1487490e0eefbf8c507a8", + "helper": 331, + "input_gates": 18, + "normal": 30, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 635, + "3": 265, + "4": 125, + "5": 26, + "8": 8 + }, + "rank_mass": 5175, + "section_profiles": { + "A": { + "1": 945, + "2": 12, + "3": 3, + "4": 53 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 319, + "2": 67, + "3": 56 + }, + "restore": { + "1": 56, + "2": 38, + "3": 8 + } + }, + "step": 4, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 91, + "9": 227 + } + }, + { + "buffer_count": 78, + "event_ledger_sha256": "1978698f5de36478e6efd7c4e6a18fed378093140dde21c0b7417639f85eb4f9", + "frame_edits": 2, + "frame_projection_sha256": "5ee8e03116694cc6e434be14e2acc7040195eee4ffa895591d5e37108ba93fad", + "helper": 299, + "input_gates": 19, + "normal": 51, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 636, + "3": 268, + "4": 122, + "5": 26, + "8": 8 + }, + "rank_mass": 5174, + "section_profiles": { + "A": { + "1": 946, + "2": 12, + "3": 6, + "4": 50 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 317, + "2": 68, + "3": 56 + }, + "restore": { + "1": 57, + "2": 38, + "3": 8 + } + }, + "step": 5, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 92, + "9": 226 + } + }, + { + "buffer_count": 79, + "event_ledger_sha256": "bf20ecb17464986f4ec5bcdfe852318d67c943dd26b398850be3e424217f8d27", + "frame_edits": 2, + "frame_projection_sha256": "8584387eef080f87635200118b5a99492aa9dd22787f1872291a637b8ea79622", + "helper": 320, + "input_gates": 18, + "normal": 75, + "output_gates": 2, + "profile": { + "1": 2416, + "2": 637, + "3": 271, + "4": 119, + "5": 26, + "8": 8 + }, + "rank_mass": 5173, + "section_profiles": { + "A": { + "1": 947, + "2": 12, + "3": 9, + "4": 47 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 315, + "2": 69, + "3": 56 + }, + "restore": { + "1": 58, + "2": 38, + "3": 8 + } + }, + "step": 6, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 93, + "9": 225 + } + }, + { + "buffer_count": 80, + "event_ledger_sha256": "5b8c0a115808a6242317c8f7024fdefea17cbbf7ee40fd77f48e6a3528765c01", + "frame_edits": 2, + "frame_projection_sha256": "68aa71fb5154ac6ba9f0c5c51c7dee4843282f82b8f659232814077510077b36", + "helper": 511, + "input_gates": 22, + "normal": 85, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 638, + "3": 274, + "4": 116, + "5": 26, + "8": 8 + }, + "rank_mass": 5172, + "section_profiles": { + "A": { + "1": 948, + "2": 12, + "3": 12, + "4": 44 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 313, + "2": 70, + "3": 56 + }, + "restore": { + "1": 59, + "2": 38, + "3": 8 + } + }, + "step": 7, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 94, + "9": 224 + } + }, + { + "buffer_count": 81, + "event_ledger_sha256": "25c8038185ed46fc50a71478b22b5aa02f8587297f3e799c1a296bc3c2c80ff3", + "frame_edits": 2, + "frame_projection_sha256": "200dc61b8a9504519af3377d5f873343c99a1ccfd374a20c04c94890705474fb", + "helper": 304, + "input_gates": 24, + "normal": 102, + "output_gates": 2, + "profile": { + "1": 2416, + "2": 639, + "3": 277, + "4": 113, + "5": 26, + "8": 8 + }, + "rank_mass": 5171, + "section_profiles": { + "A": { + "1": 949, + "2": 12, + "3": 15, + "4": 41 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 311, + "2": 71, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "step": 8, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 95, + "9": 223 + } + }, + { + "buffer_count": 82, + "event_ledger_sha256": "65c270409b388760b22ec96335e998938146969d0d44e671a1797212572ae3ff", + "frame_edits": 3, + "frame_projection_sha256": "a16f8eeedbf838df73abf474057440d2db29e6866b7d60407e53d5729367f584", + "helper": 499, + "input_gates": 21, + "normal": 120, + "output_gates": 3, + "profile": { + "1": 2416, + "2": 640, + "3": 280, + "4": 110, + "5": 26, + "8": 8 + }, + "rank_mass": 5170, + "section_profiles": { + "A": { + "1": 950, + "2": 12, + "3": 18, + "4": 38 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 310, + "2": 72, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "step": 9, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 96, + "9": 222 + } + } + ] + } + }, + "inputs_sha256": "09e49a4edffa3f98b0845289a5041d31ebfa5780e908b70686e6602cec82a9b1", + "scope": "Finite frame/rank/cleanup-syntax audit only; no new kappa, operator endpoint, zero-buffer, native, allocation or full supplier certification.", + "source_commit": "224bd5e56041c40078ff6b5fa7393733a215de5c", + "status": "PASS_PAIRED_HELPER_FRAME_LEDGER", + "words": { + "PARENT-base": { + "buffer_count": 73, + "charge_columns": [ + "section", + "event", + "role", + "from_dimension", + "to_dimension", + "rank", + "from_span_sha256", + "to_span_sha256" + ], + "charges_count": 3471, + "charges_sha256": "1c7cbfbfcd9be00c61bbe1baf50822ad4fb567d1bc8a0221e5f8a389a2b3aae0", + "cleanup_events": 4610, + "cleanup_structure_sha256": "6c078427ad8ef3875309ec33b39ded4117fe26e55844312d0e5e1443988c7bac", + "frame_projection_sha256": "4716c571fc4b2a53ee888c130871e19dbda646a753455becb044858741cafc7a", + "helper_widths_count": 408, + "helper_widths_sha256": "feab2eb02480de87a986a4bd30da10d1931170a75192e9dcc36709cad37bdee6", + "independent_roles": 632, + "live_helpers": 408, + "mass_identity": { + "centre_descent": 64, + "endpoint_increase": 5115, + "helper_endpoint_increase": 3323, + "paid_total": 5179 + }, + "private_buffers_count": 73, + "private_buffers_sha256": "95d514b04b5972825e010851f7493fe9ece55b1a0b970da2676272fb40f35ff8", + "profile": { + "1": 2407, + "2": 640, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5179, + "restored_helpers_count": 73, + "restored_helpers_sha256": "cc00379e8c9888af7103b9dd90bbb2a18bfa4d8fbcd7eed02b3fd29a0b00ec3a", + "role_profiles_count": 632, + "role_profiles_sha256": "b64b0b5c3af60ba61233271e113520b9621beb768ccd5fb5ebd78204f9d3aa33", + "scope": "Exact frame sets, event-derived ranks, helper widths and inverse-reverse cleanup syntax; no scalar/operator endpoint or buffer-zero theorem.", + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 318, + "2": 72, + "3": 56 + }, + "restore": { + "1": 49, + "2": 38, + "3": 8 + } + }, + "warp_event_columns": [ + "section", + "event", + "role", + "signed_id", + "dimension", + "from_span_sha256", + "to_span_sha256" + ], + "warp_events_count": 96, + "warp_events_sha256": "002c2710ca10ef3521917ed792e1ab3d376cca9833b9a949a2fdce1933544e9b", + "warp_records": 72, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 87, + "9": 231 + } + }, + "PARENT-extra": { + "buffer_count": 73, + "charge_columns": [ + "section", + "event", + "role", + "from_dimension", + "to_dimension", + "rank", + "from_span_sha256", + "to_span_sha256" + ], + "charges_count": 3471, + "charges_sha256": "de0e98707a1be56c3458ee82f1fde92885e546ba51774ce1d212949e5e85aaec", + "cleanup_events": 4610, + "cleanup_structure_sha256": "6c078427ad8ef3875309ec33b39ded4117fe26e55844312d0e5e1443988c7bac", + "frame_projection_sha256": "a230223043b62d473bcfabad74c65e6464d82ccd8127055f0767d4918c010ba7", + "helper_widths_count": 408, + "helper_widths_sha256": "feab2eb02480de87a986a4bd30da10d1931170a75192e9dcc36709cad37bdee6", + "independent_roles": 632, + "live_helpers": 408, + "mass_identity": { + "centre_descent": 64, + "endpoint_increase": 5115, + "helper_endpoint_increase": 3323, + "paid_total": 5179 + }, + "private_buffers_count": 73, + "private_buffers_sha256": "95d514b04b5972825e010851f7493fe9ece55b1a0b970da2676272fb40f35ff8", + "profile": { + "1": 2407, + "2": 640, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "rank_mass": 5179, + "restored_helpers_count": 73, + "restored_helpers_sha256": "cc00379e8c9888af7103b9dd90bbb2a18bfa4d8fbcd7eed02b3fd29a0b00ec3a", + "role_profiles_count": 632, + "role_profiles_sha256": "b64b0b5c3af60ba61233271e113520b9621beb768ccd5fb5ebd78204f9d3aa33", + "scope": "Exact frame sets, event-derived ranks, helper widths and inverse-reverse cleanup syntax; no scalar/operator endpoint or buffer-zero theorem.", + "section_profiles": { + "A": { + "1": 944, + "2": 12, + "4": 56 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 318, + "2": 72, + "3": 56 + }, + "restore": { + "1": 49, + "2": 38, + "3": 8 + } + }, + "warp_event_columns": [ + "section", + "event", + "role", + "signed_id", + "dimension", + "from_span_sha256", + "to_span_sha256" + ], + "warp_events_count": 96, + "warp_events_sha256": "d402dca5e53357cd5c62746b8b27602d0865d696fc75882b7a16d7ba1c484c00", + "warp_records": 72, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 87, + "9": 231 + } + }, + "WORD-base": { + "buffer_count": 82, + "charge_columns": [ + "section", + "event", + "role", + "from_dimension", + "to_dimension", + "rank", + "from_span_sha256", + "to_span_sha256" + ], + "charges_count": 3480, + "charges_sha256": "33daf04bbdd450dcdecc40f05c25ba0e04380943573633990a47c8b26b91dea8", + "cleanup_events": 4829, + "cleanup_structure_sha256": "fb56b7467054b7418a3300c4f97bfa64ebd08f09df51fd36fc45b4a7b96497fa", + "frame_projection_sha256": "d015ee36d9db9cea430bd0ebdb15ad64f145f96e3d4408f900092461441ac6f2", + "helper_widths_count": 408, + "helper_widths_sha256": "8cc74d4de5e40640af432b6aea40ca39693cdc25d54f6ce2572fc96739f8b84b", + "independent_roles": 632, + "live_helpers": 408, + "mass_identity": { + "centre_descent": 64, + "endpoint_increase": 5106, + "helper_endpoint_increase": 3314, + "paid_total": 5170 + }, + "private_buffers_count": 82, + "private_buffers_sha256": "dc7ac9cd6b795b0ab6de0a8057212f37c5253b570dbf0c6b8ab119741d2e1cbb", + "profile": { + "1": 2416, + "2": 640, + "3": 280, + "4": 110, + "5": 26, + "8": 8 + }, + "rank_mass": 5170, + "restored_helpers_count": 82, + "restored_helpers_sha256": "35125ded3707d16020604e4ce56412b9f68834010ac2b81f6ea4bef6b71556d8", + "role_profiles_count": 632, + "role_profiles_sha256": "f0b0e5a533d15d6830736d08cc451c18be646f73b4f2806e14e207cd99d2a117", + "scope": "Exact frame sets, event-derived ranks, helper widths and inverse-reverse cleanup syntax; no scalar/operator endpoint or buffer-zero theorem.", + "section_profiles": { + "A": { + "1": 950, + "2": 12, + "3": 18, + "4": 38 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 310, + "2": 72, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "warp_event_columns": [ + "section", + "event", + "role", + "signed_id", + "dimension", + "from_span_sha256", + "to_span_sha256" + ], + "warp_events_count": 96, + "warp_events_sha256": "002c2710ca10ef3521917ed792e1ab3d376cca9833b9a949a2fdce1933544e9b", + "warp_records": 72, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 96, + "9": 222 + } + }, + "WORD-extra": { + "buffer_count": 82, + "charge_columns": [ + "section", + "event", + "role", + "from_dimension", + "to_dimension", + "rank", + "from_span_sha256", + "to_span_sha256" + ], + "charges_count": 3480, + "charges_sha256": "65c270409b388760b22ec96335e998938146969d0d44e671a1797212572ae3ff", + "cleanup_events": 4829, + "cleanup_structure_sha256": "fb56b7467054b7418a3300c4f97bfa64ebd08f09df51fd36fc45b4a7b96497fa", + "frame_projection_sha256": "a16f8eeedbf838df73abf474057440d2db29e6866b7d60407e53d5729367f584", + "helper_widths_count": 408, + "helper_widths_sha256": "8cc74d4de5e40640af432b6aea40ca39693cdc25d54f6ce2572fc96739f8b84b", + "independent_roles": 632, + "live_helpers": 408, + "mass_identity": { + "centre_descent": 64, + "endpoint_increase": 5106, + "helper_endpoint_increase": 3314, + "paid_total": 5170 + }, + "private_buffers_count": 82, + "private_buffers_sha256": "dc7ac9cd6b795b0ab6de0a8057212f37c5253b570dbf0c6b8ab119741d2e1cbb", + "profile": { + "1": 2416, + "2": 640, + "3": 280, + "4": 110, + "5": 26, + "8": 8 + }, + "rank_mass": 5170, + "restored_helpers_count": 82, + "restored_helpers_sha256": "35125ded3707d16020604e4ce56412b9f68834010ac2b81f6ea4bef6b71556d8", + "role_profiles_count": 632, + "role_profiles_sha256": "f0b0e5a533d15d6830736d08cc451c18be646f73b4f2806e14e207cd99d2a117", + "scope": "Exact frame sets, event-derived ranks, helper widths and inverse-reverse cleanup syntax; no scalar/operator endpoint or buffer-zero theorem.", + "section_profiles": { + "A": { + "1": 950, + "2": 12, + "3": 18, + "4": 38 + }, + "B": { + "1": 1096, + "2": 518, + "3": 198, + "4": 72, + "5": 26 + }, + "centre": { + "8": 8 + }, + "endpoint": { + "1": 310, + "2": 72, + "3": 56 + }, + "restore": { + "1": 60, + "2": 38, + "3": 8 + } + }, + "warp_event_columns": [ + "section", + "event", + "role", + "signed_id", + "dimension", + "from_span_sha256", + "to_span_sha256" + ], + "warp_events_count": 96, + "warp_events_sha256": "d402dca5e53357cd5c62746b8b27602d0865d696fc75882b7a16d7ba1c484c00", + "warp_records": 72, + "width_inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 96, + "9": 222 + } + } + } +} diff --git a/research/paired-helper-frame-ledger/SOURCE-CREDITS.md b/research/paired-helper-frame-ledger/SOURCE-CREDITS.md new file mode 100644 index 0000000000..153868a3eb --- /dev/null +++ b/research/paired-helper-frame-ledger/SOURCE-CREDITS.md @@ -0,0 +1,40 @@ +# Credit and scope + +Mason Hale, with substantial OpenAI Codex assistance, contributed the ordered +nine-step paired extraction, the explicit frame refits enabling six of those +steps, the actual allocation repair, and the source-bound 82-buffer integration. +Parallel Codex agents searched, implemented and cross-checked the construction; +this is not independent human review. + +The immediate predecessor is Jeremy Diviney's PR2908 at +`51309592971e3b5be935599eed2a95404dc7781e`. His paired input/output extraction +of helper408, structural certificate, compensation rule, owner repair and +73-buffer integration are the foundation of this contribution. +`structure.py` is unchanged from that package. This work uses ordinary exact +linear algebra and does not claim to invent basis changes or nullspaces. + +Jeremy Kothe / `jeremykothe2`'s PR2894 at +`18d03c447886895ef9abf888398178e0428533ca` supplies the preload-resynthesized +quartets, T74 chronology, packing and inverse cleanup conventions. +`vendor/preload_move.py` is unchanged from the pinned parent package. + +The inherited chain includes Yiyang Lu / `Lyy-iiis`'s PR2857 staged shared +kernels and native/overlay/release tools; Dugongue's PR2863 packing; +Marius-Paul Dumitrean's PR2843/2802 pattern-flow and retired-helper lineage; +Jeremy Kothe's PR2833 dirt-entry supplier; Philippe Van Velzen's PR2853 cost +and block-energy work; and Tekalign's PR2751/2839 owner and admission tools. +The exact free-operator auditor retains icekylinx's attribution. The full +native replay retains the PR2768 sparse engine and PR2226 Clifford/operator +notices, without modifying their frozen sources. + +The public replay exports exact predecessor Git objects and checks their +complete manifests before executing their code. Admission adapters are derived +with explicit, counted source substitutions, preserving all inherited checks. +Changes include the declared source identity, the nine additional buffers and +the comparison against PR2908. The dimension73 and Sp(72,2) stock factor remain +the inherited quantities; neither is a buffer count. + +All new material is Apache-2.0. Source-specific notices remain in the pinned +predecessor exports and copied files. The selected result is unchanged. A +passing finite certificate remains conditional on the inherited all-size, +compiler and outer-theorem hypotheses. diff --git a/research/paired-helper-frame-ledger/SOURCES.json b/research/paired-helper-frame-ledger/SOURCES.json new file mode 100644 index 0000000000..cf040a8c19 --- /dev/null +++ b/research/paired-helper-frame-ledger/SOURCES.json @@ -0,0 +1,29 @@ +{ + "schema_version": 1, + "base_commit": "8c8bcecb03def61bca701dd3b045932d39c48022", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "889b95d936746df124872133ae1e7cc339adcb92", + "sha256": "7d185cd8c2af35988d638d969748ad7b670f902606444dbfc748e4402c340df6" + } + ], + "upstream_inputs": { + "source_commit": "224bd5e56041c40078ff6b5fa7393733a215de5c", + "pr": 2917, + "manifest": "INPUTS.json", + "manifest_sha256": "09e49a4edffa3f98b0845289a5041d31ebfa5780e908b70686e6602cec82a9b1", + "authentication": "All copied bytes matched Git blob objects resolved from the exact PR2917 head at intake. Offline verifier checks immutable manifest, SHA256, size and Git blob addresses; it does not query GitHub." + }, + "predecessor_commits": { + "2908": "51309592971e3b5be935599eed2a95404dc7781e", + "2894": "18d03c447886895ef9abf888398178e0428533ca" + } +} diff --git a/research/paired-helper-frame-ledger/TASK.json b/research/paired-helper-frame-ledger/TASK.json new file mode 100644 index 0000000000..a47b120cc2 --- /dev/null +++ b/research/paired-helper-frame-ledger/TASK.json @@ -0,0 +1,108 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 5, + "base_commit": "8c8bcecb03def61bca701dd3b045932d39c48022", + "original_card": { + "id": "independent-moment", + "question": "Does one changed supplier or assembly claim lack a source-bound independent check of a specific new implication?", + "starting_points": [ + "certificates/selected-result.json" + ], + "methods": [ + "Reconstruct the rank ledger from original operations rather than trusting its aggregate.", + "Implement certified moment inequalities through a different exact enclosure method." + ], + "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.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Record the selected certificate and complex_profile rather than taking a PR headline as input.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "List the existing independent checks for the exact selected or candidate sources. Pick a new changed input, missing binding or distinct failure mode; stop with a handoff if the proposed arithmetic check is already covered.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure" + ] + }, + "scope_status": "refined", + "actual_scope": "Independently reconstruct the frame ledger, 13 refits, helper widths and cleanup syntax for both providers of PR2917 and its nine paired-helper extraction stages.", + "scope_change_reason": "Use the selected card rank-ledger method on a changed candidate input with a concrete gap: the two inherited frame reports repeat essentially the same pivot/climb implementation. This audit uses exhaustive GF(2)^9 sets and semantic controls.", + "bottleneck_link": "The paid profile is a fixed input to active allocation and admission work on the candidate. A source-bound implementation with a different frame representation checks that input without another equivalent root calculation.", + "budget_minutes": 60, + "stop_rule": "Freeze construction work by 2026-10-16T12:44:11Z; reserve remaining 15 minutes for verification, overlap refresh and public handoff. Stop without kappa or admission claims if the finite checks fail or duplicate coverage appears.", + "outcome": "completed", + "evidence": "RESULT.json records both providers, four words, nine stage projections/provider and 13 exact refits/provider; verify.py derives the event ledger from pinned operations. test_verify.py contains geometry, chronology, report, cleanup, transform and input failure controls.", + "author": "ToikY", + "ai_assistance": "Substantial OpenAI Codex assistance for implementation, tests, documentation and separate AI mathematical review; no independent human or proof-assistant review.", + "selection": { + "seed": "9e2c1aa952cf9f74c87b48ad6e7d6ac1", + "track": "independent-verification", + "base_commit": "8c8bcecb03def61bca701dd3b045932d39c48022", + "priority_revision": 5, + "catalog_sha256": "7d185cd8c2af35988d638d969748ad7b670f902606444dbfc748e4402c340df6", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129", + "scope_key": "c6f2494b197df3bc3591", + "method": "Reconstruct the rank ledger from original operations rather than trusting its aggregate." + }, + "claim_url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/2612#discussioncomment-18972911", + "overlap": { + "entry_fetched_at": "2026-10-16T12:01:50+00:00", + "open_pr_bodies_including_drafts": 476, + "complete_pagination": true, + "local_records": 2657, + "local_expansion": "All current-main research/*/README.md and TASK.json materialized before expanded search.", + "manual_discussions": [ + 1163, + 1166, + 2612 + ], + "manual_coverage": "Start-here guidance and relevant recent handoffs; canonical2612 active allocation claim; active board titles. Not all older comments or board pages were expanded.", + "boundary": "Complements mdumitrean active PR2917 allocation claim; no allocation search, new word, supplier, native replay or kappa claim.", + "limitations": "API pagination is non-atomic. Cached Discussion data unavailable; manual current relevant threads only. Arbitrary PR diffs, closed work beyond local ledger, and unpublished work are not exhaustive.", + "pre_submission": { + "main": "4e8ceb80ecbc11049a44856b91f74a7448a75e93", + "fetched_at": "2026-10-16T12:17:30+00:00", + "open_pr_bodies_including_drafts": 469, + "complete_pagination": true, + "guidance_catalog_selected_record": "unchanged Git blobs", + "pr2917_head": "224bd5e56041c40078ff6b5fa7393733a215de5c", + "review_ledger": "PR2917 and PR2908 still partially reviewed", + "canonical_discussion": "Re-read current2612 claims; mdumitrean allocation work remains distinct.", + "coverage_limit": "Same manual Discussion and non-atomic pagination limits as entry.", + "local_records": 2671 + } + }, + "open_questions": [ + { + "question": "Do compensation and cleanup satisfy the claimed scalar/free-operator endpoints and zero-buffer restoration for the exact frozen words?", + "why_it_matters": "Frame admissibility and cleanup syntax do not establish their operator semantics.", + "first_step": "Authenticate PR2917 full source closure at224bd5e56041c40078ff6b5fa7393733a215de5c and replay its declared operator checks, distinguishing existing primary checks from any new independent implication.", + "blocked_by": "Outside the bounded frame audit; no conceptual obstruction asserted." + }, + { + "question": "Does the active allocation for these unchanged words satisfy complete native/physical-stock, precision and outer-admission checks?", + "why_it_matters": "Local profile or numerical cap alone is not supplier admission or a kappa improvement.", + "first_step": "Consult the current canonical2612 allocation claim, verify exact word/allocation pins and reproduce its complete declared admission closure.", + "blocked_by": "Concurrent allocation owner work; this session does not claim or duplicate it." + } + ], + "baseline_orientation": { + "status": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "selected_kappa": "836330098538459/500000000000000000", + "scope": "Selected source inventory, certificate and proof-supplement bindings only; no full selected replay." + } +} diff --git a/research/paired-helper-frame-ledger/VALIDATION.json b/research/paired-helper-frame-ledger/VALIDATION.json new file mode 100644 index 0000000000..582d53869d --- /dev/null +++ b/research/paired-helper-frame-ledger/VALIDATION.json @@ -0,0 +1,36 @@ +{ + "schema_version": 1, + "checked_at_utc": "2026-10-16T12:20:28.342219+00:00", + "environment": { + "python": "3.12.14", + "implementation": "CPython", + "system": "Darwin", + "release": "25.5.0", + "machine": "arm64" + }, + "registered_command": [ + "python3.12", + "-B", + "scripts/research_package.py", + "--package", + "research/paired-helper-frame-ledger" + ], + "outcome": "PASS_REGISTERED_RESEARCH_PACKAGE", + "commands": "All four exact commands in VERIFY.json passed; 10 unittest groups in each normal/optimized run.", + "bindings": "SOURCE-CREDITS and13 data files authenticated against PR2917 Git objects; PR2908 actual WORD Git blobs equal the carried PARENT blobs.", + "reviewed_files_sha256": { + "ledger.py": "391b0087f0bf3a5e9f863d2232d17d36c1cce3d56722f4b05e5cb028429ca00b", + "verify.py": "07cf924713a64a99f56ba1c1ad76e5eb6374659416fab18812766f9679bea573", + "test_verify.py": "19299596c27c07adaf4575db2f3f09e35a9f86165125e9b241b546fbb0bf4802", + "INPUTS.json": "09e49a4edffa3f98b0845289a5041d31ebfa5780e908b70686e6602cec82a9b1", + "RESULT.json": "afa2fd065ceda585d65963f28052dad1ea67b10a28a52f6f9ace3fb40ea92ca0" + }, + "semantic_control_scope": "Frame geometry/chronology, warp map and preimage, endpoint charges, width report, helper499 scale refit, cleanup alias/inverse/types, transform old frame/index/scale, byte inventory, strict JSON and receipt type comparison.", + "not_run": [ + "Complete PR2917 supplier/native/admission replay", + "Selected frontier cold replay", + "Hosted CI at time of this local receipt", + "Proof-assistant or independent human verification" + ], + "remaining_obligations": "Operator endpoint and buffer-zero semantics, native owner/physical-stock/precision/moment/outer admission and retained all-size/compiler hypotheses are outside this audit." +} diff --git a/research/paired-helper-frame-ledger/VERIFY.json b/research/paired-helper-frame-ledger/VERIFY.json new file mode 100644 index 0000000000..06c2c48975 --- /dev/null +++ b/research/paired-helper-frame-ledger/VERIFY.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Source-pinned frame ledger, stage/cleanup syntax and frozen receipt equality" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/test_verify.py" + ], + "timeout_seconds": 120, + "checks": "Finite rank oracle and semantic/input corruption controls" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "-O", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Source-pinned frame ledger, stage/cleanup syntax and frozen receipt equality with Python optimization enabled" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "-O", + "{package}/test_verify.py" + ], + "timeout_seconds": 120, + "checks": "Finite rank oracle and semantic/input corruption controls with Python optimization enabled" + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/PARENT-base.json.gz b/research/paired-helper-frame-ledger/data/PARENT-base.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6303cfd847033481d1e662e2a2fd467caf5f6429 GIT binary patch literal 69992 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 Gr}+;y&+3x^ literal 0 HcmV?d00001 diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-299.json b/research/paired-helper-frame-ledger/data/TRANSFORM-299.json new file mode 100644 index 0000000000..897a891719 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-299.json @@ -0,0 +1,274 @@ +{ + "helper": 299, + "normal": 51, + "before": [ + [ + "add", + 302, + 299, + 1, + 4, + [] + ], + [ + "add", + 297, + 299, + -1, + 4, + [] + ], + [ + "add", + 295, + 299, + 1, + 4, + [] + ], + [ + "add", + 294, + 299, + -1, + 4, + [] + ], + [ + "add", + 288, + 299, + 1, + 4, + [] + ], + [ + "add", + 239, + 299, + 1, + 4, + [] + ], + [ + "add", + 238, + 299, + 1, + 4, + [] + ], + [ + "add", + 237, + 299, + -1, + 4, + [] + ], + [ + "add", + 236, + 299, + -1, + 4, + [] + ], + [ + "add", + 231, + 299, + -1, + 4, + [] + ], + [ + "add", + 229, + 299, + 1, + 4, + [] + ], + [ + "add", + 227, + 299, + -1, + 4, + [] + ], + [ + "add", + 225, + 299, + 1, + 4, + [] + ], + [ + "add", + 299, + 303, + 2, + 1, + [] + ], + [ + "add", + 299, + 302, + -1, + 1, + [] + ], + [ + "add", + 299, + 296, + 1, + 1, + [] + ], + [ + "add", + 299, + 292, + -1, + 1, + [] + ], + [ + "add", + 299, + 288, + -1, + 1, + [] + ], + [ + "scale", + 299, + 1, + -2, + [] + ] + ], + "after": [ + [ + "add", + 299, + 40, + 1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 4, + 3 + ] + ], + [ + "add", + 299, + 54, + -1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 4, + 3 + ] + ], + [ + "add", + 40, + 299, + -1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 4, + 3 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3645, + "candidate_index": 3664, + "gate": [ + "add", + 81, + 17, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 64, + 32, + 17, + 9, + 4, + 2 + ], + "new_frame": [ + 256, + 128, + 64, + 34, + 17, + 11, + 4 + ] + }, + { + "section": "A", + "parent_index": 3646, + "candidate_index": 3665, + "gate": [ + "add", + 81, + 40, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 64, + 32, + 17, + 9, + 4, + 2 + ], + "new_frame": [ + 256, + 128, + 64, + 34, + 17, + 11, + 4 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-304.json b/research/paired-helper-frame-ledger/data/TRANSFORM-304.json new file mode 100644 index 0000000000..e04d294250 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-304.json @@ -0,0 +1,296 @@ +{ + "helper": 304, + "normal": 102, + "before": [ + [ + "add", + 319, + 304, + -1, + 4, + [] + ], + [ + "add", + 316, + 304, + -1, + 4, + [] + ], + [ + "add", + 313, + 304, + 1, + 4, + [] + ], + [ + "add", + 312, + 304, + 1, + 4, + [] + ], + [ + "add", + 310, + 304, + 1, + 4, + [] + ], + [ + "add", + 306, + 304, + -1, + 4, + [] + ], + [ + "add", + 271, + 304, + 1, + 4, + [] + ], + [ + "add", + 268, + 304, + 1, + 4, + [] + ], + [ + "add", + 266, + 304, + -1, + 4, + [] + ], + [ + "add", + 265, + 304, + -1, + 4, + [] + ], + [ + "add", + 263, + 304, + -1, + 4, + [] + ], + [ + "add", + 262, + 304, + -1, + 4, + [] + ], + [ + "add", + 258, + 304, + 1, + 4, + [] + ], + [ + "add", + 304, + 499, + 1, + 1, + [] + ], + [ + "add", + 304, + 319, + 2, + 1, + [] + ], + [ + "add", + 304, + 318, + -1, + 1, + [] + ], + [ + "add", + 304, + 315, + 2, + 1, + [] + ], + [ + "add", + 304, + 313, + -2, + 1, + [] + ], + [ + "add", + 304, + 308, + -1, + 1, + [] + ], + [ + "scale", + 304, + 1, + -1, + [] + ], + [ + "scale", + 306, + 1, + -1, + [] + ], + [ + "add", + 304, + 306, + -1, + 1, + [] + ], + [ + "add", + 306, + 304, + 1, + 1, + [] + ], + [ + "add", + 304, + 306, + -1, + 1, + [] + ] + ], + "after": [ + [ + "add", + 304, + 308, + -1, + 1, + [ + 256, + 128, + 66, + 34, + 16, + 8, + 6, + 1 + ] + ], + [ + "add", + 304, + 310, + 1, + 1, + [ + 256, + 128, + 66, + 34, + 16, + 8, + 6, + 1 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3734, + "candidate_index": 3758, + "gate": [ + "add", + 256, + 288, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ], + "new_frame": [ + 256, + 128, + 68, + 34, + 16, + 14, + 1 + ] + }, + { + "section": "A", + "parent_index": 3735, + "candidate_index": 3759, + "gate": [ + "add", + 256, + 304, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ], + "new_frame": [ + 256, + 128, + 68, + 34, + 16, + 14, + 1 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-320.json b/research/paired-helper-frame-ledger/data/TRANSFORM-320.json new file mode 100644 index 0000000000..9c8490c864 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-320.json @@ -0,0 +1,249 @@ +{ + "helper": 320, + "normal": 75, + "before": [ + [ + "add", + 335, + 320, + -1, + 4, + [] + ], + [ + "add", + 332, + 320, + -1, + 4, + [] + ], + [ + "add", + 329, + 320, + 1, + 4, + [] + ], + [ + "add", + 328, + 320, + 1, + 4, + [] + ], + [ + "add", + 326, + 320, + 1, + 4, + [] + ], + [ + "add", + 271, + 320, + 1, + 4, + [] + ], + [ + "add", + 270, + 320, + 1, + 4, + [] + ], + [ + "add", + 269, + 320, + -1, + 4, + [] + ], + [ + "add", + 268, + 320, + -1, + 4, + [] + ], + [ + "add", + 263, + 320, + -1, + 4, + [] + ], + [ + "add", + 261, + 320, + 1, + 4, + [] + ], + [ + "add", + 259, + 320, + -1, + 4, + [] + ], + [ + "add", + 257, + 320, + 1, + 4, + [] + ], + [ + "add", + 320, + 511, + 1, + 1, + [] + ], + [ + "add", + 320, + 335, + 1, + 1, + [] + ], + [ + "add", + 320, + 329, + -2, + 1, + [] + ], + [ + "add", + 320, + 322, + 1, + 1, + [] + ], + [ + "scale", + 320, + 1, + -1, + [] + ] + ], + "after": [ + [ + "add", + 320, + 324, + -1, + 1, + [ + 256, + 128, + 65, + 32, + 16, + 9, + 4, + 3 + ] + ], + [ + "add", + 320, + 326, + 1, + 1, + [ + 256, + 128, + 65, + 32, + 16, + 9, + 4, + 3 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3688, + "candidate_index": 3706, + "gate": [ + "add", + 9, + 272, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 65, + 33, + 16, + 8, + 4, + 2 + ], + "new_frame": [ + 256, + 128, + 65, + 35, + 16, + 10, + 4 + ] + }, + { + "section": "A", + "parent_index": 3689, + "candidate_index": 3707, + "gate": [ + "add", + 9, + 320, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 65, + 33, + 16, + 8, + 4, + 2 + ], + "new_frame": [ + 256, + 128, + 65, + 35, + 16, + 10, + 4 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-331.json b/research/paired-helper-frame-ledger/data/TRANSFORM-331.json new file mode 100644 index 0000000000..7d35aab299 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-331.json @@ -0,0 +1,266 @@ +{ + "helper": 331, + "normal": 30, + "before": [ + [ + "add", + 511, + 331, + 1, + 4, + [] + ], + [ + "add", + 334, + 331, + 1, + 4, + [] + ], + [ + "add", + 329, + 331, + -1, + 4, + [] + ], + [ + "add", + 326, + 331, + -1, + 4, + [] + ], + [ + "add", + 320, + 331, + 1, + 4, + [] + ], + [ + "add", + 239, + 331, + 1, + 4, + [] + ], + [ + "add", + 236, + 331, + 1, + 4, + [] + ], + [ + "add", + 234, + 331, + -1, + 4, + [] + ], + [ + "add", + 233, + 331, + -1, + 4, + [] + ], + [ + "add", + 231, + 331, + -1, + 4, + [] + ], + [ + "add", + 230, + 331, + -1, + 4, + [] + ], + [ + "add", + 227, + 331, + 1, + 4, + [] + ], + [ + "add", + 226, + 331, + 1, + 4, + [] + ], + [ + "add", + 331, + 335, + 1, + 1, + [] + ], + [ + "add", + 331, + 334, + -1, + 1, + [] + ], + [ + "add", + 331, + 324, + -1, + 1, + [] + ], + [ + "add", + 331, + 320, + -1, + 1, + [] + ], + [ + "scale", + 331, + 1, + -2, + [] + ] + ], + "after": [ + [ + "add", + 331, + 22, + 1, + 1, + [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + ], + [ + "add", + 331, + 34, + -1, + 1, + [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + ], + [ + "add", + 22, + 331, + -1, + 1, + [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3633, + "candidate_index": 3651, + "gate": [ + "add", + 224, + 107, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ], + "new_frame": [ + 256, + 128, + 64, + 38, + 20, + 10, + 1 + ] + }, + { + "section": "A", + "parent_index": 3634, + "candidate_index": 3652, + "gate": [ + "add", + 224, + 22, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ], + "new_frame": [ + 256, + 128, + 64, + 38, + 20, + 10, + 1 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-412.json b/research/paired-helper-frame-ledger/data/TRANSFORM-412.json new file mode 100644 index 0000000000..e62dd449d7 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-412.json @@ -0,0 +1,258 @@ +{ + "helper": 412, + "normal": 127, + "before": [ + [ + "add", + 415, + 412, + -1, + 2, + [] + ], + [ + "add", + 410, + 412, + 1, + 2, + [] + ], + [ + "add", + 409, + 412, + 1, + 2, + [] + ], + [ + "add", + 407, + 412, + 1, + 2, + [] + ], + [ + "add", + 406, + 412, + 1, + 2, + [] + ], + [ + "add", + 403, + 412, + -1, + 2, + [] + ], + [ + "add", + 402, + 412, + -1, + 2, + [] + ], + [ + "add", + 255, + 412, + 1, + 2, + [] + ], + [ + "add", + 252, + 412, + 1, + 2, + [] + ], + [ + "add", + 250, + 412, + -1, + 2, + [] + ], + [ + "add", + 249, + 412, + -1, + 2, + [] + ], + [ + "add", + 247, + 412, + -1, + 2, + [] + ], + [ + "add", + 246, + 412, + -1, + 2, + [] + ], + [ + "add", + 242, + 412, + 1, + 2, + [] + ], + [ + "add", + 412, + 415, + 1, + 1, + [] + ], + [ + "add", + 412, + 414, + -1, + 1, + [] + ], + [ + "add", + 412, + 413, + -1, + 2, + [] + ], + [ + "add", + 412, + 411, + 1, + 2, + [] + ], + [ + "add", + 412, + 410, + -1, + 2, + [] + ], + [ + "add", + 412, + 407, + -1, + 2, + [] + ], + [ + "add", + 412, + 406, + 1, + 2, + [] + ], + [ + "add", + 412, + 401, + -1, + 2, + [] + ], + [ + "scale", + 412, + 2, + -1, + [] + ] + ], + "after": [ + [ + "scale", + 412, + -1, + 1, + [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ] + ], + [ + "add", + 412, + 400, + 1, + 2, + [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ] + ], + [ + "add", + 412, + 414, + 1, + 1, + [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ] + ], + [ + "add", + 400, + 412, + -2, + 1, + [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ] + ] + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-424.json b/research/paired-helper-frame-ledger/data/TRANSFORM-424.json new file mode 100644 index 0000000000..4fae6d1bb3 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-424.json @@ -0,0 +1,250 @@ +{ + "helper": 424, + "normal": 52, + "before": [ + [ + "add", + 430, + 424, + 1, + 2, + [] + ], + [ + "add", + 427, + 424, + -1, + 2, + [] + ], + [ + "add", + 426, + 424, + -1, + 2, + [] + ], + [ + "add", + 423, + 424, + -1, + 2, + [] + ], + [ + "add", + 419, + 424, + 1, + 2, + [] + ], + [ + "add", + 418, + 424, + 1, + 2, + [] + ], + [ + "add", + 417, + 424, + -1, + 2, + [] + ], + [ + "add", + 239, + 424, + 1, + 2, + [] + ], + [ + "add", + 236, + 424, + 1, + 2, + [] + ], + [ + "add", + 234, + 424, + -1, + 2, + [] + ], + [ + "add", + 233, + 424, + -1, + 2, + [] + ], + [ + "add", + 231, + 424, + -1, + 2, + [] + ], + [ + "add", + 230, + 424, + -1, + 2, + [] + ], + [ + "add", + 227, + 424, + 1, + 2, + [] + ], + [ + "add", + 226, + 424, + 1, + 2, + [] + ], + [ + "add", + 424, + 431, + 1, + 2, + [] + ], + [ + "add", + 424, + 430, + -1, + 2, + [] + ], + [ + "add", + 424, + 425, + 1, + 2, + [] + ], + [ + "add", + 424, + 421, + -1, + 2, + [] + ], + [ + "add", + 424, + 420, + 1, + 2, + [] + ], + [ + "add", + 424, + 419, + 1, + 2, + [] + ], + [ + "add", + 424, + 418, + -1, + 2, + [] + ], + [ + "add", + 424, + 417, + 1, + 1, + [] + ], + [ + "scale", + 424, + 2, + 1, + [] + ] + ], + "after": [ + [ + "add", + 424, + 16, + 1, + 2, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ], + [ + "add", + 424, + 44, + 1, + 1, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ], + [ + "add", + 16, + 424, + -2, + 1, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ] + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-428.json b/research/paired-helper-frame-ledger/data/TRANSFORM-428.json new file mode 100644 index 0000000000..1593c52045 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-428.json @@ -0,0 +1,258 @@ +{ + "helper": 428, + "normal": 76, + "before": [ + [ + "add", + 431, + 428, + -1, + 2, + [] + ], + [ + "add", + 426, + 428, + 1, + 2, + [] + ], + [ + "add", + 425, + 428, + 1, + 2, + [] + ], + [ + "add", + 423, + 428, + 1, + 2, + [] + ], + [ + "add", + 422, + 428, + 1, + 2, + [] + ], + [ + "add", + 419, + 428, + -1, + 2, + [] + ], + [ + "add", + 418, + 428, + -1, + 2, + [] + ], + [ + "add", + 271, + 428, + 1, + 2, + [] + ], + [ + "add", + 268, + 428, + 1, + 2, + [] + ], + [ + "add", + 266, + 428, + -1, + 2, + [] + ], + [ + "add", + 265, + 428, + -1, + 2, + [] + ], + [ + "add", + 263, + 428, + -1, + 2, + [] + ], + [ + "add", + 262, + 428, + -1, + 2, + [] + ], + [ + "add", + 258, + 428, + 1, + 2, + [] + ], + [ + "add", + 428, + 431, + 1, + 1, + [] + ], + [ + "add", + 428, + 430, + -1, + 1, + [] + ], + [ + "add", + 428, + 429, + -1, + 2, + [] + ], + [ + "add", + 428, + 427, + 1, + 2, + [] + ], + [ + "add", + 428, + 426, + -1, + 2, + [] + ], + [ + "add", + 428, + 423, + -1, + 2, + [] + ], + [ + "add", + 428, + 422, + 1, + 2, + [] + ], + [ + "add", + 428, + 417, + -1, + 2, + [] + ], + [ + "scale", + 428, + 2, + -1, + [] + ] + ], + "after": [ + [ + "scale", + 428, + -1, + 1, + [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ] + ], + [ + "add", + 428, + 416, + 1, + 2, + [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ] + ], + [ + "add", + 428, + 430, + 1, + 1, + [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ] + ], + [ + "add", + 416, + 428, + -2, + 1, + [ + 256, + 128, + 68, + 32, + 16, + 12, + 2, + 1 + ] + ] + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-499.json b/research/paired-helper-frame-ledger/data/TRANSFORM-499.json new file mode 100644 index 0000000000..7c22cd7a66 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-499.json @@ -0,0 +1,322 @@ +{ + "helper": 499, + "normal": 120, + "before": [ + [ + "add", + 319, + 499, + -1, + 4, + [] + ], + [ + "add", + 318, + 499, + -1, + 4, + [] + ], + [ + "add", + 317, + 499, + 1, + 4, + [] + ], + [ + "add", + 316, + 499, + 1, + 4, + [] + ], + [ + "add", + 308, + 499, + -1, + 4, + [] + ], + [ + "add", + 255, + 499, + 1, + 4, + [] + ], + [ + "add", + 254, + 499, + 1, + 4, + [] + ], + [ + "add", + 253, + 499, + -1, + 4, + [] + ], + [ + "add", + 252, + 499, + -1, + 4, + [] + ], + [ + "add", + 247, + 499, + -1, + 4, + [] + ], + [ + "add", + 245, + 499, + 1, + 4, + [] + ], + [ + "add", + 243, + 499, + -1, + 4, + [] + ], + [ + "add", + 241, + 499, + 1, + 4, + [] + ], + [ + "add", + 499, + 319, + 2, + 1, + [] + ], + [ + "add", + 499, + 316, + -1, + 1, + [] + ], + [ + "add", + 499, + 315, + 1, + 1, + [] + ], + [ + "add", + 499, + 312, + 2, + 1, + [] + ], + [ + "scale", + 310, + 1, + -1, + [] + ], + [ + "add", + 499, + 310, + -1, + 1, + [] + ], + [ + "add", + 310, + 499, + 1, + 1, + [] + ], + [ + "add", + 499, + 310, + -1, + 1, + [] + ] + ], + "after": [ + [ + "add", + 499, + 35, + 1, + 1, + [ + 256, + 128, + 72, + 40, + 24, + 4, + 2, + 1 + ] + ], + [ + "add", + 499, + 306, + -1, + 1, + [ + 256, + 128, + 72, + 40, + 24, + 4, + 2, + 1 + ] + ], + [ + "add", + 35, + 499, + -1, + 1, + [ + 256, + 128, + 72, + 40, + 24, + 4, + 2, + 1 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3740, + "candidate_index": 3761, + "gate": [ + "add", + 11, + 77, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 66, + 32, + 18, + 8, + 4, + 1 + ], + "new_frame": [ + 256, + 128, + 74, + 40, + 26, + 4, + 1 + ] + }, + { + "section": "A", + "parent_index": 3741, + "candidate_index": 3762, + "gate": [ + "add", + 11, + 35, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 66, + 32, + 18, + 8, + 4, + 1 + ], + "new_frame": [ + 256, + 128, + 74, + 40, + 26, + 4, + 1 + ] + }, + { + "section": "restore", + "parent_index": 40, + "candidate_index": 40, + "gate": [ + "scale", + 499, + -1, + 1 + ], + "old_frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 4, + 2, + 1 + ], + "new_frame": [ + 256, + 128, + 72, + 40, + 24, + 4, + 2, + 1 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/TRANSFORM-511.json b/research/paired-helper-frame-ledger/data/TRANSFORM-511.json new file mode 100644 index 0000000000..7c7bf4b1a1 --- /dev/null +++ b/research/paired-helper-frame-ledger/data/TRANSFORM-511.json @@ -0,0 +1,298 @@ +{ + "helper": 511, + "normal": 85, + "before": [ + [ + "add", + 335, + 511, + -1, + 4, + [] + ], + [ + "add", + 334, + 511, + -1, + 4, + [] + ], + [ + "add", + 333, + 511, + 1, + 4, + [] + ], + [ + "add", + 332, + 511, + 1, + 4, + [] + ], + [ + "add", + 326, + 511, + 1, + 4, + [] + ], + [ + "add", + 324, + 511, + -1, + 4, + [] + ], + [ + "add", + 255, + 511, + 1, + 4, + [] + ], + [ + "add", + 252, + 511, + 1, + 4, + [] + ], + [ + "add", + 250, + 511, + -1, + 4, + [] + ], + [ + "add", + 249, + 511, + -1, + 4, + [] + ], + [ + "add", + 247, + 511, + -1, + 4, + [] + ], + [ + "add", + 246, + 511, + -1, + 4, + [] + ], + [ + "add", + 242, + 511, + 1, + 4, + [] + ], + [ + "add", + 511, + 335, + 1, + 1, + [] + ], + [ + "add", + 511, + 334, + 1, + 2, + [] + ], + [ + "add", + 511, + 332, + -1, + 1, + [] + ], + [ + "add", + 511, + 329, + 1, + 1, + [] + ], + [ + "add", + 511, + 328, + 2, + 1, + [] + ], + [ + "add", + 511, + 326, + -1, + 1, + [] + ], + [ + "add", + 511, + 324, + 1, + 2, + [] + ], + [ + "add", + 511, + 322, + -1, + 2, + [] + ], + [ + "scale", + 511, + 2, + 1, + [] + ] + ], + "after": [ + [ + "add", + 511, + 23, + 1, + 1, + [ + 256, + 128, + 65, + 32, + 17, + 8, + 5, + 2 + ] + ], + [ + "add", + 511, + 322, + -1, + 1, + [ + 256, + 128, + 65, + 32, + 17, + 8, + 5, + 2 + ] + ], + [ + "add", + 23, + 511, + -1, + 1, + [ + 256, + 128, + 65, + 32, + 17, + 8, + 5, + 2 + ] + ] + ], + "frame_changes": [ + { + "section": "A", + "parent_index": 3700, + "candidate_index": 3722, + "gate": [ + "add", + 240, + 39, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ], + "new_frame": [ + 256, + 128, + 65, + 34, + 17, + 10, + 5 + ] + }, + { + "section": "A", + "parent_index": 3701, + "candidate_index": 3723, + "gate": [ + "add", + 240, + 23, + 1, + 1 + ], + "old_frame": [ + 256, + 128, + 65, + 33, + 17, + 9, + 5, + 3 + ], + "new_frame": [ + 256, + 128, + 65, + 34, + 17, + 10, + 5 + ] + } + ] +} diff --git a/research/paired-helper-frame-ledger/data/WORD-base.json.gz b/research/paired-helper-frame-ledger/data/WORD-base.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9be0aa5349dbc8c928a46089a7695e224d0e4d16 GIT binary patch literal 69818 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 literal 0 HcmV?d00001 diff --git a/research/paired-helper-frame-ledger/data/WORD-extra.json.gz b/research/paired-helper-frame-ledger/data/WORD-extra.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..40b38365ea4b841101405ebd2c4fdcadcb8b9808 GIT binary patch literal 69814 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 k6;7bR8QY_*$*x2n$b$}`6fFt<|NYPZ0 0 and size & (size - 1) == 0, 'non-subspace cardinality') + return size.bit_length() - 1 + + +def frame_basis(generators): + result = span(generators) + require(dimension(result) == len(generators), 'dependent frame generators') + return result + + +def parity(a, b): + return (a & b).bit_count() & 1 + + +@lru_cache(maxsize=8192) +def perpendicular(space): + return frozenset(x for x in VECTORS if all(not parity(x, u) for u in space)) + + +def hyperplane(normal): + require(type(normal) is int and 0 < normal < 512, 'invalid hyperplane normal') + return frozenset(x for x in VECTORS if not parity(x, normal)) + + +@lru_cache(maxsize=512) +def linear_table(columns): + require(len(columns) == 9 and all(type(x) is int and 0 <= x < 512 + for x in columns), 'warp column shape') + images = [0] * 512 + for x in range(1, 512): + bit = x & -x + images[x] = images[x ^ bit] ^ columns[bit.bit_length() - 1] + require(len(set(images)) == 512, 'singular warp map') + return tuple(images) + + +@lru_cache(maxsize=2048) +def check_map(columns, source, target): + """Full 512-point permutation, dual-perpendicular and frame-lift checks.""" + image = linear_table(columns) + require(frozenset(image[x] for x in source) == target, 'warp image frame mismatch') + inverse = [0] * 512 + for x, y in enumerate(image): + inverse[y] = x + # G^-T(z) is characterized directly by dot(G^-T z, e_i)=dot(z,G^-1 e_i). + dual = tuple(sum(parity(z, inverse[1 << i]) << i for i in range(9)) + for z in range(512)) + require(frozenset(dual[z] for z in perpendicular(source)) == perpendicular(target), + 'dual warp perpendicular mismatch') + + def lifted(point): + x, z = point & 511, point >> 9 + gx = image[x] + return gx | ((gx ^ dual[x] ^ dual[z]) << 9) + + def lagrangian(space): + return {x | ((x ^ p) << 9) for x in space for p in perpendicular(space)} + + require({lifted(x) for x in lagrangian(source)} == lagrangian(target), + 'lifted warp frame mismatch') + require({lifted(x) for x in lagrangian(ZERO)} == lagrangian(ZERO), + 'warp does not fix zero frame') + require({lifted(x) for x in lagrangian(VECTORS)} == lagrangian(VECTORS), + 'warp does not fix full frame') + generators = [1 << i for i in range(18)] + def symplectic(a, b): + return parity(a & 511, b >> 9) ^ parity(a >> 9, b & 511) + require(all(symplectic(lifted(a), lifted(b)) == symplectic(a, b) + for a in generators for b in generators), 'warp symplectic mismatch') + return True + + +def role_map(value, live, label): + require(type(value) is dict, label + ' must be an object') + result = {} + for key, generators in value.items(): + require(type(key) is str and key.isascii() and key.isdecimal() + and str(int(key)) == key, label + ' role key') + role = int(key) + require(role in live and role >= FIRST_HELPER, label + ' removed or invalid helper') + result[role] = frame_basis(generators) + return result + + +def target_role(role): + return FIRST_TARGET <= role < FIRST_HELPER + + +def scalar_gate(gate, allowed, frame_required=True): + require(type(gate) is list and gate and gate[0] in ('add', 'scale'), + 'unknown scalar gate') + require(len(gate) == (6 if gate[0] == 'add' else 5), 'scalar gate shape') + roles = gate[1:3] if gate[0] == 'add' else gate[1:2] + require(all(type(r) is int and r in allowed for r in roles), + 'gate references removed or invalid role') + if gate[0] == 'add': + require(roles[0] != roles[1], 'self addition') + numerator, denominator = gate[3:5] + else: + numerator, denominator = gate[2:4] + require(type(numerator) is int and type(denominator) is int and denominator != 0, + 'invalid scalar rational') + coefficient = Fraction(numerator, denominator) + require(coefficient.denominator & (coefficient.denominator - 1) == 0, + 'non-dyadic gate') + if gate[0] == 'scale': + numerator_abs = abs(coefficient.numerator) + require(numerator_abs and numerator_abs & (numerator_abs - 1) == 0, + 'noninvertible dyadic scaling') + if frame_required: + frame_basis(gate[-1]) + else: + require(gate[-1] is None, 'cut must have unframed gate') + return tuple(roles) + + +def _histogram(counter): + return {str(k): v for k, v in sorted(counter.items()) if v} + + +def _claimed_histogram(value, label): + require(type(value) is dict, label + ' must be an object') + result = {} + for k, v in value.items(): + require(type(k) is str and k.isascii() and k.isdecimal() + and str(int(k)) == k and int(k) > 0, label + ' rank key') + require(type(v) is int and v > 0, label + ' count') + result[k] = v + return result + + +def cleanup_projection(word): + """Expected inverse-reverse syntax; does not prove its semantic endpoint.""" + restored = {int(r) for r in word['helper_final']} + forward = list(word['A'][word['prelude_events']:]) + scheduled = defaultdict(list) + for identity, record in enumerate(word['warps'], 1): + scheduled[record[0]].append(['warp', record[1], identity]) + for index in range(len(word['B']) + 1): + forward.extend(scheduled[index]) + if index < len(word['B']): + forward.append(word['B'][index]) + forward.extend(word['restore']) + forward = [g for g in forward if g[0] == 'warp' or not target_role(g[1])] + result = [] + full = [1 << i for i in reversed(range(9))] + def buffer(role): + return role + ORDINARY_ROLES if role in restored else role + for gate in reversed(forward): + if gate[0] == 'warp': + result.append(['warp', buffer(gate[1]), -gate[2], full]) + elif gate[0] == 'add': + result.append(['add', buffer(gate[1]), buffer(gate[2]), + -gate[3], gate[4], full]) + else: + result.append(['scale', buffer(gate[1]), gate[3], gate[2], full]) + return result + + +def _audit(word, check_report, check_cleanup): + require(type(word) is dict, 'word must be an object') + for key in FRAME_SECTIONS + ('report', 'cleanup'): + require(key in word, 'missing word section ' + key) + report = word['report'] + require(type(report) is dict and all(type(report.get(k)) is int + for k in ('v', 'h', 'R')), 'integer source geometry') + require((report['v'], report['h'], report['R']) == (112, 9, 480), + 'unsupported source geometry') + removed_list = word['removed'] + require(type(removed_list) is list and all(type(r) is int and 224 <= r < 704 + for r in removed_list) and len(set(removed_list)) == len(removed_list), + 'removed helper inventory') + live = set(range(704)) - set(removed_list) + require(len(live) == 632, 'expected 632 independent ordinary roles') + helpers = sorted(live - set(range(224))) + restored = role_map(word['helper_final'], live, 'helper_final') + entering = role_map(word['start_extra'], live, 'start_extra') + ports = word['ports'] + require(type(ports) is list and len(ports) == 112 and len(set(ports)) == 112, + 'port inventory') + require(all(type(p) is int and 0 < p < 512 for p in ports), 'port vector') + start = {r: ZERO for r in live} + finish = {r: VECTORS for r in live} + for r, port in enumerate(ports): + start[r] = span([port]) + finish[r + 112] = hyperplane(port) + start.update(entering) + finish.update(restored) + current = dict(start) + charges = [] + warp_events = [] + paid, by_section = Counter(), defaultdict(Counter) + by_role = defaultdict(Counter) + + def charge(section, index, role, old, new, descending=False): + amount = dimension(old) - dimension(new) if descending else dimension(new) - dimension(old) + if amount: + require(amount > 0, 'negative paid rank') + paid[amount] += 1 + by_section[section][amount] += 1 + by_role[role][amount] += 1 + charges.append([section, index, role, dimension(old), dimension(new), amount, + canonical_hash(sorted(old)), canonical_hash(sorted(new))]) + + def climb(section, index, role, destination): + old = current[role] + require(old <= destination, f'nonmonotone frame at {section}:{index} role {role}') + charge(section, index, role, old, destination) + current[role] = destination + + warps = word['warps'] + require(type(warps) is list, 'warp records') + schedules = defaultdict(list) + for identity, record in enumerate(warps, 1): + require(type(record) is list and len(record) == 5, 'warp record shape') + position, role, columns, raw_source, raw_target = record + require(type(position) is int and 0 <= position <= len(word['B']), 'warp position') + require(type(role) is int and role in live and not target_role(role), 'warp role') + require(type(columns) is list, 'warp columns') + source, target = frame_basis(raw_source), frame_basis(raw_target) + require(dimension(source) == dimension(target), 'warp changes dimension') + check_map(tuple(columns), source, target) + schedules[position].append(identity) + + def warp(section, index, role, identity, source, destination): + require(type(identity) is int and identity != 0 and abs(identity) <= len(warps), + 'warp identity') + record = warps[abs(identity) - 1] + require(role == record[1], 'warp lender mismatch') + columns = tuple(record[2]) + check_map(columns, source if identity > 0 else destination, + destination if identity > 0 else source) + require(current[role] == source, f'warp source frame mismatch at {section}:{index}') + current[role] = destination + warp_events.append([section, index, role, identity, dimension(source), + canonical_hash(sorted(source)), canonical_hash(sorted(destination))]) + + npre = integer(word['prelude_events'], 'prelude count') + require(0 <= npre <= len(word['A']), 'prelude bounds') + for section in ('A', 'B', 'restore'): + require(type(word[section]) is list, section + ' gate list') + + def scalar(section, index, gate): + roles = scalar_gate(gate, live) + if not target_role(gate[1]): + require(all(not target_role(r) for r in roles), 'nontarget reads target') + if section == 'restore': + require(not target_role(gate[1]), 'restore writes target') + destination = span(gate[-1]) + for role in roles: + climb(section, index, role, destination) + + for index, gate in enumerate(word['A']): + require(type(gate) is list and len(gate) >= 2, 'A gate shape') + if gate[0] == 'warp': + require(index < npre and len(gate) == 5, 'warp outside A prelude') + role, identity = gate[1:3] + require(type(role) is int and role in live, 'A warp role') + warp('A', index, role, identity, frame_basis(gate[3]), frame_basis(gate[4])) + else: + if index < npre: + require(target_role(gate[1]), 'prelude scalar must write target') + scalar('A', index, gate) + + levels = word['target_levels'] + require(type(levels) is dict, 'target levels') + target_frames = {} + for key, value in levels.items(): + require(type(key) is str and key.isascii() and key.isdecimal() + and str(int(key)) == key and 0 <= int(key) < 112, 'target level key') + target_frames[int(key)] = frame_basis(value) + require(all(current[112 + t] == target_frames.get(t, ZERO) for t in range(112)), + 'cut target frame unavailable') + centers, center_frames = word['centers'], word['center_frames'] + require(type(centers) is list and type(center_frames) is list + and len(centers) == len(center_frames) == 8 and len(set(centers)) == 8, + 'centre inventory') + require(all(type(r) is int and r in live and not target_role(r) for r in centers), + 'centre role') + served = defaultdict(set) + require(type(word['cut']) is list, 'cut gate list') + for gate in word['cut']: + roles = scalar_gate(gate, live, frame_required=False) + require(gate[0] == 'add' and target_role(roles[0]) and roles[1] in centers, + 'cut gate must read a declared centre into target') + served[roles[1]].add(target_frames.get(roles[0] - 112, ZERO)) + for center_index, (role, raw) in enumerate(zip(centers, center_frames)): + cursor = frame_basis(raw) + require(current[role] == cursor, 'centre entrance frame mismatch') + destinations = sorted(served[role], key=lambda s: (-len(s), tuple(sorted(s)))) + for descent_index, destination in enumerate(destinations): + require(destination <= cursor, 'centre descent is not nested') + charge('centre', center_index * 112 + descent_index, role, cursor, + destination, descending=True) + cursor = destination + # The centre path is a separately charged readout; its main-word frame + # remains the entrance frame for subsequent B operations. + + for index in range(len(word['B']) + 1): + for identity in schedules[index]: + _, role, _, raw_source, raw_target = warps[identity - 1] + warp('B-warp', index, role, identity, + frame_basis(raw_source), frame_basis(raw_target)) + if index < len(word['B']): + scalar('B', index, word['B'][index]) + for index, gate in enumerate(word['restore']): + scalar('restore', index, gate) + for role in sorted(live): + climb('endpoint', role, role, finish[role]) + + widths = {str(role): dimension(finish[role]) - dimension(start[role]) for role in helpers} + require(all(value > 0 for value in widths.values()), 'nonpositive helper width') + inventory = Counter(widths.values()) + profile = _histogram(paid) + if check_report: + require(_claimed_histogram(report.get('local_profile'), 'local_profile') == profile, + 'declared paid profile mismatch') + require(_claimed_histogram(report.get('width_inventory'), 'width_inventory') == _histogram(inventory), + 'declared helper inventory mismatch') + expected_cleanup = cleanup_projection(word) + cleanup = word['cleanup'] + require(type(cleanup) is list, 'cleanup gate list') + buffers = {704 + role for role in restored} + if check_cleanup: + require(len(cleanup) == len(expected_cleanup), 'cleanup length mismatch') + seen_buffers = set() + for index, (actual, expected) in enumerate(zip(cleanup, expected_cleanup)): + require(type(actual) is list and actual, 'cleanup gate shape') + if actual[0] == 'warp': + require(len(actual) == 4 and type(actual[1]) is int + and type(actual[2]) is int, 'cleanup warp shape') + else: + scalar_gate(actual, live | buffers) + require(actual[:-1] == expected[:-1] and frame_basis(actual[-1]) == VECTORS, + f'inverse-reverse cleanup mismatch at {index}') + roles = actual[1:2] if actual[0] != 'add' else actual[1:3] + require(all(type(r) is int and r in live | buffers for r in roles), 'cleanup role') + require(all(r not in restored for r in roles), 'cleanup touches restored helper') + seen_buffers.update(r for r in roles if r >= 704) + require(seen_buffers == buffers, 'private buffer namespace mismatch') + for role in live: + if not target_role(role) and role not in restored: + require(finish[role] == VECTORS, 'cleanup unbuffered low endpoint') + mass = sum(rank * count for rank, count in paid.items()) + endpoint_mass = sum(dimension(finish[role]) - dimension(start[role]) for role in live) + centre_mass = sum(rank * count for rank, count in by_section['centre'].items()) + require(mass == endpoint_mass + centre_mass, + 'telescoping frame-mass identity mismatch') + return { + 'profile': profile, + 'rank_mass': mass, + 'mass_identity': {'endpoint_increase': endpoint_mass, + 'helper_endpoint_increase': sum(widths.values()), + 'centre_descent': centre_mass, 'paid_total': mass}, + 'width_inventory': _histogram(inventory), + 'helper_widths': widths, + 'independent_roles': len(live), + 'live_helpers': len(helpers), + 'restored_helpers': sorted(restored), + 'private_buffers': sorted(buffers), + 'buffer_count': len(buffers), + 'section_profiles': {key: _histogram(value) for key, value in sorted(by_section.items())}, + 'role_profiles': {str(key): _histogram(value) for key, value in sorted(by_role.items())}, + 'charge_columns': ['section', 'event', 'role', 'from_dimension', 'to_dimension', + 'rank', 'from_span_sha256', 'to_span_sha256'], + 'charges': charges, + 'warp_event_columns': ['section', 'event', 'role', 'signed_id', 'dimension', + 'from_span_sha256', 'to_span_sha256'], + 'warp_events': warp_events, + 'warp_records': len(warps), + 'cleanup_events': len(expected_cleanup), + 'cleanup_structure_sha256': canonical_hash(expected_cleanup), + 'frame_projection_sha256': canonical_hash({key: word[key] for key in FRAME_SECTIONS}), + 'scope': 'Exact frame sets, event-derived ranks, helper widths and inverse-reverse cleanup syntax; no scalar/operator endpoint or buffer-zero theorem.', + } + + +def audit_word(word): + """Audit one frozen word, including its declared reports and cleanup syntax.""" + return _audit(word, check_report=True, check_cleanup=True) + + +def audit_chain(parent, final, transforms): + """Reconstruct only frame-bearing sections of the nine sequential stages.""" + require(type(transforms) is list and len(transforms) == 9, 'nine declared transforms required') + before = audit_word(parent) + after = audit_word(final) + require(before['profile'] == _histogram(PARENT_PROFILE), 'unexpected parent profile') + require(before['buffer_count'] == 73, 'expected 73 parent buffers') + current = deepcopy(parent) + records, edits = [], [] + expected_profile = Counter(PARENT_PROFILE) + parent_restored = set(before['restored_helpers']) + for step, (helper, normal, transform) in enumerate(zip(HELPERS, NORMALS, transforms), 1): + require(type(transform) is dict and type(transform.get('helper')) is int + and transform['helper'] == helper and transform.get('normal') == normal, + 'transform order/helper/normal mismatch') + require(str(helper) not in current['helper_final'] + and str(helper) not in current['start_extra'] and helper not in current['removed'], + 'extraction helper is not fresh zero-entry helper') + initial = current.get('initial_corrections') + require(type(initial) is list and all(type(item) is dict and type(item.get('source')) is int + for item in initial), 'initial correction source inventory') + protected = set(map(int, current['helper_final'])) | set(map(int, current['start_extra'])) + protected.update(item['source'] for item in initial) + allowed = set(range(224, 704)) - set(current['removed']) - protected + input_gates, output_gates = transform.get('before'), transform.get('after') + require(type(input_gates) is list and input_gates and type(output_gates) is list + and output_gates, 'transform gate lists') + for gate in input_gates: + scalar_gate(gate, allowed) + require(span(gate[-1]) == ZERO, 'input gate is not at zero frame') + plane = hyperplane(normal) + for gate in output_gates: + scalar_gate(gate, set(range(704)) - set(current['removed'])) + require(not target_role(gate[1]) and span(gate[-1]) == plane, + 'output gate must use exact declared hyperplane') + roles = gate[1:3] if gate[0] == 'add' else gate[1:2] + require(not (set(roles) & set(map(int, current['helper_final']))), + 'output gate touches previously restored endpoint') + seen = set() + changes = transform.get('frame_changes', []) + require(type(changes) is list, 'frame changes list') + require(len(changes) == (0 if step <= 3 else 3 if step == 9 else 2), + 'unexpected stage frame edit count') + for edit in changes: + require(type(edit) is dict, 'frame edit record') + section, index = edit.get('section'), edit.get('parent_index') + require(section in ('A', 'restore') and type(index) is int + and 0 <= index < len(current[section]) and (section, index) not in seen, + 'frame edit index/duplicate') + require(section != 'A' or index >= current['prelude_events'], 'frame edit inside prelude') + seen.add((section, index)) + gate = current[section][index] + require(gate[:-1] == edit.get('gate') and gate[-1] == edit.get('old_frame'), + 'frame edit exact preimage mismatch') + require(gate[0] in ('add', 'scale') and not target_role(gate[1]), 'frame edit gate kind') + old_frame, new_frame = frame_basis(edit['old_frame']), frame_basis(edit['new_frame']) + require(new_frame < old_frame and dimension(old_frame) - dimension(new_frame) == 1, + 'frame edit must lower by one within old span') + require(new_frame == old_frame & plane, + 'frame edit is not intersection with extraction hyperplane') + expected_candidate_index = index + (len(input_gates) if section == 'A' else 0) + require(type(edit.get('candidate_index')) is int + and edit['candidate_index'] == expected_candidate_index, + 'frame edit candidate index mismatch') + gate[-1] = deepcopy(edit['new_frame']) + edits.append({'step': step, 'helper': helper, 'section': section, + 'parent_index': index, 'candidate_index': expected_candidate_index, + 'from_dimension': dimension(old_frame), 'to_dimension': dimension(new_frame), + 'old_span_sha256': canonical_hash(sorted(old_frame)), + 'new_span_sha256': canonical_hash(sorted(new_frame))}) + npre = current['prelude_events'] + current['A'][npre:npre] = deepcopy(input_gates) + current['restore'].extend(deepcopy(output_gates)) + current['helper_final'][str(helper)] = deepcopy(output_gates[0][-1]) + projected = _audit(current, check_report=False, check_cleanup=False) + delta = {1: 3, 2: -2} if step <= 3 else {2: 1, 3: 3, 4: -3} + expected_profile.update(delta) + require(projected['profile'] == _histogram(expected_profile), 'stage paid profile delta mismatch') + require(projected['buffer_count'] == 73 + step, 'stage private buffer count') + require(set(projected['restored_helpers']) == parent_restored | set(HELPERS[:step]), + 'previously restored helper disappeared') + stage_inventory = Counter({int(k): v for k, v in before['width_inventory'].items()}) + stage_inventory[8] += step + stage_inventory[9] -= step + require(projected['width_inventory'] == _histogram(stage_inventory), 'stage helper inventory delta mismatch') + require(all(projected['helper_widths'][role] == width - (int(role) in HELPERS[:step]) + for role, width in before['helper_widths'].items()), + 'stage width changes outside extracted helpers') + records.append({'step': step, 'helper': helper, 'normal': normal, + 'input_gates': len(input_gates), 'output_gates': len(output_gates), + 'frame_edits': len(changes), 'profile': projected['profile'], + 'rank_mass': projected['rank_mass'], 'width_inventory': projected['width_inventory'], + 'buffer_count': projected['buffer_count'], + 'section_profiles': projected['section_profiles'], + 'event_ledger_sha256': canonical_hash(projected['charges']), + 'frame_projection_sha256': projected['frame_projection_sha256']}) + require(len(edits) == 13, 'thirteen frame edits required') + for section in FRAME_SECTIONS: + require(current[section] == final[section], 'final frame-bearing section mismatch: ' + section) + require(cleanup_projection(current) == cleanup_projection(final), 'final cleanup projection mismatch') + changed_widths = [int(role) for role, width in before['helper_widths'].items() + if after['helper_widths'][role] != width] + require(set(changed_widths) == set(HELPERS), 'unexpected changed helper widths') + require(all(before['helper_widths'][str(h)] == 9 and after['helper_widths'][str(h)] == 8 + for h in HELPERS), 'extracted helper width not 9 to 8') + require(after['rank_mass'] - before['rank_mass'] == -9, 'local rank mass delta') + return {'stages': records, 'frame_edits': edits, + 'changed_helpers': sorted(changed_widths), 'rank_mass_delta': -9, + 'profile_delta': {'1': 9, '3': 18, '4': -18}, + 'buffer_count_before': before['buffer_count'], 'buffer_count_after': after['buffer_count'], + 'parent_event_ledger_sha256': canonical_hash(before['charges']), + 'final_event_ledger_sha256': canonical_hash(after['charges']), + 'frame_sections_checked': list(FRAME_SECTIONS), + 'scope': 'Sequential frame projection and cleanup syntax only; compensation algebra and paired scalar/free-operator identities are inherited, not replayed.'} diff --git a/research/paired-helper-frame-ledger/test_verify.py b/research/paired-helper-frame-ledger/test_verify.py new file mode 100644 index 0000000000..04ebcddc53 --- /dev/null +++ b/research/paired-helper-frame-ledger/test_verify.py @@ -0,0 +1,274 @@ +# SPDX-License-Identifier: Apache-2.0 +"""Adversarial controls for the finite frame/cleanup ledger only. + +These tests load the new ledger, not a predecessor producer or checker. The +small-space oracle uses row rank, independently of the ledger set expansion. +They do not check native operator identities or the multiplication theorem. +""" +from collections import Counter +from copy import deepcopy +import gzip +import importlib.util +import json +import shutil +import tempfile +from pathlib import Path +import sys +import unittest + +HERE = Path(__file__).resolve().parent +SPEC = importlib.util.spec_from_file_location("paired_frame_ledger", HERE / "ledger.py") +ledger = importlib.util.module_from_spec(SPEC) +sys.modules[SPEC.name] = ledger +SPEC.loader.exec_module(ledger) +HELPERS = (424, 428, 412, 331, 299, 320, 511, 304, 499) + + +def naive_span(vectors): + """Enumerate each coefficient mask independently, without span extension.""" + values = set() + for mask in range(1 << len(vectors)): + value = 0 + for index, vector in enumerate(vectors): + if mask >> index & 1: + value ^= vector + values.add(value) + return frozenset(values) + + +def binary_rank(vectors): + """Independent oracle using XOR pivot elimination, not span expansion.""" + pivots = {} + for value in vectors: + while value: + pivot = value.bit_length() - 1 + if pivot not in pivots: + pivots[pivot] = value + break + value ^= pivots[pivot] + return len(pivots) + + +def shape_counts(word): + """The dimension-only gate counts cannot distinguish several controls.""" + return Counter((section, gate[0], len(gate[-1])) + for section in ("A", "B", "restore", "cleanup") + for gate in word[section]) + + +class FrameLedgerTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.words = {} + for kind in ("PARENT", "WORD"): + for variant in ("base", "extra"): + name = f"{kind}-{variant}" + with gzip.open(HERE / "data" / f"{name}.json.gz", "rt") as source: + cls.words[name] = json.load(source) + cls.transforms = [] + for helper in HELPERS: + with (HERE / "data" / f"TRANSFORM-{helper}.json").open() as source: + cls.transforms.append(json.load(source)) + + def reject_word(self, word): + with self.assertRaises(ValueError): + ledger.audit_word(word) + + def test_finite_span_oracle(self): + subspaces = {} + # All 128 generating subsets of the seven nonzero 3-bit vectors. + for mask in range(128): + generators = [v for v in range(1, 8) if mask >> (v - 1) & 1] + rank = binary_rank(generators) + expected = frozenset(v for v in range(8) + if binary_rank(generators + [v]) == rank) + actual = ledger.span(generators) + self.assertEqual(actual, expected) + self.assertEqual(ledger.dimension(actual), rank) + if rank == len(generators): + self.assertEqual(ledger.frame_basis(generators), expected) + else: + with self.assertRaises(ValueError): + ledger.frame_basis(generators) + subspaces[actual] = generators + self.assertEqual(len(subspaces), 16) + # Every ordered pair, including equal-rank unequal planes. Containment + # is independently checked by rank of the concatenated generators. + for a, generators_a in subspaces.items(): + for b, generators_b in subspaces.items(): + self.assertEqual(a <= b, binary_rank(generators_a + generators_b) + == binary_rank(generators_b)) + + def test_all_frozen_words_and_chains(self): + for name, word in self.words.items(): + with self.subTest(word=name): + receipt = ledger.audit_word(word) + self.assertEqual(receipt["profile"], word["report"]["local_profile"]) + self.assertEqual(receipt["width_inventory"], word["report"]["width_inventory"]) + self.assertEqual(receipt["independent_roles"], 632) + self.assertEqual(receipt["buffer_count"], 73 if name.startswith("PARENT") else 82) + for variant in ("base", "extra"): + with self.subTest(chain=variant): + receipt = ledger.audit_chain(self.words[f"PARENT-{variant}"], + self.words[f"WORD-{variant}"], self.transforms) + self.assertEqual(len(receipt["stages"]), 9) + self.assertEqual(len(receipt["frame_edits"]), 13) + self.assertEqual(receipt["rank_mass_delta"], -9) + self.assertEqual(receipt["changed_helpers"], sorted(HELPERS)) + + def test_equal_rank_wrong_subspace_and_chronology(self): + original = self.words["WORD-base"] + wrong = deepcopy(original) + self.assertEqual(wrong["A"][13][-1], [45]) + wrong["A"][13][-1] = [43] + self.assertEqual(len(naive_span([45])), len(naive_span([43]))) + self.assertNotEqual(naive_span([45]), naive_span([43])) + self.assertEqual(shape_counts(wrong), shape_counts(original)) + self.reject_word(wrong) + early = deepcopy(original) + # Read the source at frame [45] before the warp from [382]. Same gates. + early["A"][12], early["A"][13] = early["A"][13], early["A"][12] + self.assertEqual(shape_counts(early), shape_counts(original)) + self.reject_word(early) + + def test_wrong_warp_preimage_and_rank_preserving_map(self): + original = self.words["WORD-base"] + wrong = deepcopy(original) + self.assertEqual(wrong["A"][12][3], [382]) + wrong["A"][12][3] = [383] + self.assertEqual(shape_counts(wrong), shape_counts(original)) + self.reject_word(wrong) + shifted = deepcopy(original) + columns = shifted["warps"][0][2] + before = tuple(columns) + # An elementary column operation preserves matrix rank, but need not + # carry the declared source subspace to the declared destination. + columns[0] ^= columns[1] + self.assertEqual(len(naive_span(before)), len(naive_span(columns))) + self.assertEqual(shape_counts(shifted), shape_counts(original)) + self.reject_word(shifted) + + def test_report_cannot_omit_paid_transition(self): + original = self.words["WORD-base"] + receipt = ledger.audit_word(original) + endpoint = receipt["section_profiles"]["endpoint"] + self.assertGreater(sum(endpoint.values()), 0) + wrong = deepcopy(original) + # Simulate the ledger obtained by stopping before the terminal climbs. + for rank, count in endpoint.items(): + wrong["report"]["local_profile"][rank] -= count + if wrong["report"]["local_profile"][rank] == 0: + del wrong["report"]["local_profile"][rank] + self.reject_word(wrong) + wrong = deepcopy(original) + wrong["report"]["width_inventory"]["8"] -= 1 + wrong["report"]["width_inventory"]["9"] += 1 + self.reject_word(wrong) + + def test_helper499_scale_must_use_lowered_frame(self): + wrong = deepcopy(self.words["WORD-base"]) + self.assertEqual(wrong["restore"][40][:4], ["scale", 499, -1, 1]) + self.assertEqual(len(naive_span(wrong["restore"][40][-1])), 256) + wrong["restore"][40][-1] = [256, 128, 64, 32, 16, 8, 4, 2, 1] + self.reject_word(wrong) + + def test_cleanup_buffer_alias_and_wrong_inverse(self): + original = self.words["WORD-base"] + alias = deepcopy(original) + self.assertEqual(alias["cleanup"][0][2], 1203) + alias["cleanup"][0][2] = 499 # 1203 = 704 + 499 is the saved copy. + self.assertEqual(shape_counts(alias), shape_counts(original)) + self.reject_word(alias) + reciprocal = deepcopy(original) + self.assertEqual(reciprocal["cleanup"][603][:4], ["scale", 68, 2, 1]) + reciprocal["cleanup"][603][2:4] = [1, 2] + self.assertEqual(shape_counts(reciprocal), shape_counts(original)) + self.reject_word(reciprocal) + for alias_value in (True, 1.0): + wrong_type = deepcopy(original) + self.assertEqual(wrong_type["cleanup"][0][3], 1) + wrong_type["cleanup"][0][3] = alias_value + with self.subTest(coefficient_type=type(alias_value).__name__): + self.reject_word(wrong_type) + + def test_transform_old_frame_index_and_lowered_scale_binding(self): + parent, final = self.words["PARENT-base"], self.words["WORD-base"] + for control in ("old_frame", "candidate_index", "omitted_scale"): + transforms = deepcopy(self.transforms) + changes = transforms[-1]["frame_changes"] + if control == "old_frame": + # Keep rank eight but change the exact parent subspace. + changes[0]["old_frame"][2] ^= 1 + elif control == "candidate_index": + changes[0]["candidate_index"] += 1 + else: + changes.pop() # The helper499 scale refit is a separate edit. + with self.subTest(control=control), self.assertRaises(ValueError): + ledger.audit_chain(parent, final, transforms) + + +class InputBoundaryTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + spec = importlib.util.spec_from_file_location("paired_frame_wrapper_tests", HERE / "verify.py") + cls.wrapper = importlib.util.module_from_spec(spec) + spec.loader.exec_module(cls.wrapper) + + def test_source_inventory_and_byte_pins(self): + # Copies are confined to a disposable system temporary directory; + # committed fixtures and predecessor programs are never modified. + with tempfile.TemporaryDirectory(prefix="paired-frame-io-") as temporary: + directory = Path(temporary) + shutil.copytree(HERE / "data", directory / "data") + for name in ("INPUTS.json", "SOURCE-CREDITS.md"): + shutil.copyfile(HERE / name, directory / name) + inputs = self.wrapper.load_inputs(directory) + self.assertEqual(set(inputs), + {f"{kind}-{variant}" for kind in ("PARENT", "WORD") + for variant in ("base", "extra")} + | {f"TRANSFORM-{helper}" for helper in HELPERS}) + self.assertEqual(len(inputs["WORD-base"]["helper_final"]), 82) + source = directory / "data" / "WORD-base.json.gz" + original = source.read_bytes() + source.write_bytes(original[:-1] + bytes([original[-1] ^ 1])) + with self.assertRaisesRegex(ValueError, "source bytes changed"): + self.wrapper.load_inputs(directory) + source.write_bytes(original) + saved = directory / "saved-source.gz" + source.rename(saved) + with self.assertRaisesRegex(ValueError, "unexpected data file"): + self.wrapper.load_inputs(directory) + saved.rename(source) + extra = directory / "data" / "unlisted.json" + extra.write_text("{}") + with self.assertRaisesRegex(ValueError, "unexpected data file"): + self.wrapper.load_inputs(directory) + extra.unlink() + manifest = directory / "INPUTS.json" + original_manifest = manifest.read_bytes() + manifest.write_bytes(original_manifest + b"\n") + with self.assertRaisesRegex(ValueError, "source manifest pin mismatch"): + self.wrapper.load_inputs(directory) + manifest.write_bytes(original_manifest) + # Every mutation was repaired; the same copy must pass again. + self.assertEqual(self.wrapper.canonical(self.wrapper.load_inputs(directory)), + self.wrapper.canonical(inputs)) + + def test_strict_json_and_receipt_type_distinctions(self): + for raw in ('{"a":1,"a":2}', '{"outer":{"a":1,"a":2}}', + '{"value":NaN}', '{"value":Infinity}', '{"value":-Infinity}', + '{"value":1e999}', '{"value":-1e999}'): + with self.subTest(raw=raw), self.assertRaises(ValueError): + self.wrapper.strict_json(raw) + values = self.wrapper.strict_json('{"values":[true,1,1.0]}')["values"] + self.assertEqual([type(value) for value in values], [bool, int, float]) + serialized = [self.wrapper.canonical({"value": value}) for value in values] + self.assertEqual(serialized, ['{"value":true}', '{"value":1}', '{"value":1.0}']) + self.assertEqual(len(set(serialized)), 3) + for nonfinite in (float("nan"), float("inf"), -float("inf")): + with self.assertRaises(ValueError): + self.wrapper.canonical({"value": nonfinite}) + + +if __name__ == "__main__": + unittest.main() diff --git a/research/paired-helper-frame-ledger/verify.py b/research/paired-helper-frame-ledger/verify.py new file mode 100644 index 0000000000..ec4578fd93 --- /dev/null +++ b/research/paired-helper-frame-ledger/verify.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Read-only replay of the source-pinned finite frame ledger. + +Use --details to print every derived paid event as JSON. No predecessor Python, +network, external package, subprocess, or cached output enters the calculation. +""" +import argparse +import gzip +import hashlib +import importlib.util +import json +import math +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +SPEC = importlib.util.spec_from_file_location("paired_frame_ledger", HERE / "ledger.py") +ledger = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(ledger) +INPUTS_SHA256 = "09e49a4edffa3f98b0845289a5041d31ebfa5780e908b70686e6602cec82a9b1" +SOURCE_COMMIT = "224bd5e56041c40078ff6b5fa7393733a215de5c" + + +def strict_json(raw): + def pairs(items): + result = {} + for key, value in items: + if key in result: + raise ValueError("duplicate JSON key: " + key) + result[key] = value + return result + + def nonfinite(value): + raise ValueError("nonfinite JSON number: " + value) + + def finite_float(value): + result = float(value) + if not math.isfinite(result): + nonfinite(value) + return result + + return json.loads(raw, object_pairs_hook=pairs, parse_constant=nonfinite, + parse_float=finite_float) + + +def canonical(value): + # Compare serialized JSON, not Python equality (True == 1 == 1.0). + return json.dumps(value, sort_keys=True, separators=(",", ":"), allow_nan=False) + + +def load_inputs(directory=HERE): + manifest_raw = (directory / "INPUTS.json").read_bytes() + ledger.require(hashlib.sha256(manifest_raw).hexdigest() == INPUTS_SHA256, + "source manifest pin mismatch") + manifest = strict_json(manifest_raw) + ledger.require(manifest["source_commit"] == SOURCE_COMMIT, "source commit mismatch") + names = {"data/" + kind + "-" + variant + ".json.gz" + for kind in ("PARENT", "WORD") for variant in ("base", "extra")} + names |= {f"data/TRANSFORM-{helper}.json" for helper in ledger.HELPERS} + names.add("SOURCE-CREDITS.md") + rows = manifest["files"] + ledger.require(len(rows) == len(names) and {row["path"] for row in rows} == names, + "source inventory mismatch") + ledger.require({"data/" + path.name for path in (directory / "data").iterdir()} + == names - {"SOURCE-CREDITS.md"}, "unexpected data file") + result = {} + for row in rows: + path = directory / row["path"] + ledger.require(path.is_file() and not path.is_symlink(), "non-regular source file") + raw = path.read_bytes() + ledger.require(len(raw) == row["bytes"] + and hashlib.sha256(raw).hexdigest() == row["sha256"], + "source bytes changed: " + row["path"]) + blob = hashlib.sha1(b"blob " + str(len(raw)).encode() + b"\0" + raw).hexdigest() + ledger.require(blob == row["git_blob"], "source Git blob mismatch") + if path.suffix == ".gz": + result[path.name[:-8]] = strict_json(gzip.decompress(raw)) + elif path.suffix == ".json": + result[path.stem] = strict_json(raw) + return result + + +def replay(directory=HERE, details=False): + inputs = load_inputs(directory) + words, chains = {}, {} + for variant in ("base", "extra"): + for kind in ("PARENT", "WORD"): + name = kind + "-" + variant + receipt = ledger.audit_word(inputs[name]) + if not details: + receipt = dict(receipt) + for key in ("charges", "warp_events", "helper_widths", "role_profiles", + "restored_helpers", "private_buffers"): + value = receipt.pop(key) + receipt[key + "_sha256"] = ledger.canonical_hash(value) + receipt[key + "_count"] = len(value) + words[name] = receipt + transforms = [inputs[f"TRANSFORM-{helper}"] for helper in ledger.HELPERS] + chains[variant] = ledger.audit_chain(inputs["PARENT-" + variant], + inputs["WORD-" + variant], transforms) + return {"status": "PASS_PAIRED_HELPER_FRAME_LEDGER", "source_commit": SOURCE_COMMIT, + "inputs_sha256": INPUTS_SHA256, "words": words, "chains": chains, + "scope": "Finite frame/rank/cleanup-syntax audit only; no new kappa, operator endpoint, zero-buffer, native, allocation or full supplier certification."} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--details", action="store_true", help="print derived event ledgers to stdout") + args = parser.parse_args() + result = replay() + expected = strict_json((HERE / "RESULT.json").read_bytes()) + ledger.require(canonical(result) == canonical(expected), "frozen RESULT differs from replay") + if args.details: + print(json.dumps(replay(details=True), indent=2, sort_keys=True)) + else: + print(result["status"]) + print("2 providers; 4 words; 9 stages/provider; 13 exact frame edits/provider") + print("rank mass 5179 -> 5170; helper widths 3323 -> 3314; buffers 73 -> 82") + + +if __name__ == "__main__": + try: + main() + except (ValueError, KeyError, TypeError, OSError) as error: + print("FAIL_PAIRED_HELPER_FRAME_LEDGER: " + str(error), file=sys.stderr) + raise SystemExit(1) from error