From f4657a0ad4c11a56646c8c6c422f09335b0c73ba Mon Sep 17 00:00:00 2001 From: Chris R Date: Thu, 22 Oct 2026 13:40:32 +1100 Subject: [PATCH 1/4] Add independent exact-matrix audit of PR4470 transport recipes Retain four unchanged source exports and a bounded focused replay. No new kappa; full-source validation pending the first fork CI run. Prepared for Chris / Clear1nsight with substantial OpenAI assistance. --- .../pr4470-exact-transport-audit.yml | 38 + .../pr4470-exact-transport-audit/README.md | 34 + .../vendor/CANONICAL.json.gz | Bin 0 -> 82793 bytes .../vendor/NOTICE.md | 11 + .../vendor/PR4447-PATCH.json | 24 + .../vendor/PR4470-NATIVE.json.gz | Bin 0 -> 35042 bytes .../vendor/PR4470-PATCH.json | 8991 +++++++++++++++++ .../pr4470-exact-transport-audit/verify.py | 352 + 8 files changed, 9450 insertions(+) create mode 100644 .github/workflows/pr4470-exact-transport-audit.yml create mode 100644 research/pr4470-exact-transport-audit/README.md create mode 100644 research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz create mode 100644 research/pr4470-exact-transport-audit/vendor/NOTICE.md create mode 100644 research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json create mode 100644 research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz create mode 100644 research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json create mode 100644 research/pr4470-exact-transport-audit/verify.py diff --git a/.github/workflows/pr4470-exact-transport-audit.yml b/.github/workflows/pr4470-exact-transport-audit.yml new file mode 100644 index 0000000000..2add93ec13 --- /dev/null +++ b/.github/workflows/pr4470-exact-transport-audit.yml @@ -0,0 +1,38 @@ +name: PR4470 exact transport audit +on: + pull_request: + paths: + - 'research/pr4470-exact-transport-audit/**' + - '.github/workflows/pr4470-exact-transport-audit.yml' +permissions: + contents: read +concurrency: + group: pr4470-exact-transport-${{ github.event.pull_request.number }} + cancel-in-progress: true +jobs: + exact-matrices: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 1 + sparse-checkout: | + research/pr4470-exact-transport-audit + docs/research/agent-task-catalog.json + sparse-checkout-cone-mode: false + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Install pinned numerical storage dependency + run: python -m pip install numpy==2.2.6 + - name: Exact source-bound scientific replay + run: timeout 600s python -B research/pr4470-exact-transport-audit/verify.py --out /tmp/pr4470-exact-result.json + - name: Optimized-mode controls + run: python -I -O -B research/pr4470-exact-transport-audit/verify.py --self-test + - name: Preserve exact receipt + uses: actions/upload-artifact@v4 + with: + name: pr4470-exact-transport-receipt + path: /tmp/pr4470-exact-result.json + if-no-files-found: error diff --git a/research/pr4470-exact-transport-audit/README.md b/research/pr4470-exact-transport-audit/README.md new file mode 100644 index 0000000000..5233fe4c7f --- /dev/null +++ b/research/pr4470-exact-transport-audit/README.md @@ -0,0 +1,34 @@ +# Exact physical transport audit of PR4470 + +This is an in-progress, source-bound audit of all 423 declared transport/helper-boundary pairs in PR4470 at b9a13c1673e0e9697de410de16e8bbf3207a7363. It claims no new kappa. The selected result and frozen predecessor files are unchanged. + +The separately written checker reconstructs the reference frame catalogue and compares every entry of each 512 by 512 lowered matrix against the literal Gaussian-dyadic reference operator, in both orientations. It uses int64 Gaussian numerators and explicit powers-of-two denominators, not floating-point tolerances, predecessor interpreters, Clifford tableaux, or a zero-column-only phase comparison. A 28-Gaussian-gate cap keeps all arithmetic and squared magnitudes within int64. + +## Verification state + +Local Python 3.13.5 / NumPy 2.3.5 self-tests pass with 196 positive checks, seven rejection controls, and a two-column tensor-phase test. The complete source-bound replay has not yet completed at the initial draft commit. Its status must be read from the focused CI job and subsequent handoff, not inferred from the presence of this code. + +Install numpy==2.2.6 on Python 3.12, then run: + +```sh +python -B research/pr4470-exact-transport-audit/verify.py --self-test +python -B research/pr4470-exact-transport-audit/verify.py --out /tmp/pr4470-exact-transport-result.json +``` + +The output path must not already exist. Git-free replay is supported by the four committed, authenticated source exports. The focused workflow runs this audit alone with a 600-second scientific timeout; it does not replace or waive shared repository CI. Registration and the final source manifest will be completed after the first full-source replay. + +## Scope boundaries + +Even a passing full replay only verifies the listed physical normal forms and their declared ranks/phases. It does not independently prove that the 423-pair list is exhaustive for the chronological word, replay the 632 persistent-field endpoint, admit the p16 controller, price physical movement, or establish precision, storage, and the outer multiplication theorem. Tensoring a checked operator identity preserves that identity for each positive column multiplicity; it does not by itself price the lifted implementation. + +## Task and overlap + +Base is canonical main 2a13eb1827784206202db90e5dc8327cf8a250db, priority revision 7. The assigned PR4470 native audit refines independent-moment to actual physical operators rather than invoice arithmetic. PR4478's current README covers the compiler and outer rows. PR4457 audits predecessor operators, not PR4470's changed 423-pair set. PR4464/4466 cover stage-zero commutation. Live PR4470 mentions and the public handoff thread were checked; this is bounded coverage, not a claim of exhaustive novelty. The newer compiler work in PR4483 does not discharge this physical audit. + +## Open next questions + +The smallest useful follow-up is to reconstruct the changed chronological word and prove that every transport and helper endpoint is represented in the audited pair set, then replay all 632 arbitrary persistent inputs and the owned centre. Pin the same head and start from native_joint.py's source-to-patch mapping, without importing its evaluator. A separate follow-up audits the p16 controller. Neither is closed by the matrix checks here. + +## Credit + +Prepared for Chris / Clear1nsight with substantial OpenAI assistance. This is a separately implemented AI-assisted check, not independent human or proof-kernel verification. Apache-2.0. The source construction and mathematical reference conventions belong to the contributors in vendor/NOTICE.md. In particular, credit Cinna Davis for PR4470, zxv for the native/compiler lineage, Jacob Alan Sussman for mixed-target recursion, Mark / Matarener for PR4457, and Ryanson Jonathan for PR4478. diff --git a/research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz b/research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a8c4ed26e53a72362d571c972e65aff546be784 GIT binary patch literal 82793 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

du*gRL+ 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%0ATBL^k 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 literal 0 HcmV?d00001 diff --git a/research/pr4470-exact-transport-audit/vendor/NOTICE.md b/research/pr4470-exact-transport-audit/vendor/NOTICE.md new file mode 100644 index 0000000000..b84e0b8781 --- /dev/null +++ b/research/pr4470-exact-transport-audit/vendor/NOTICE.md @@ -0,0 +1,11 @@ +# Retained source notice + +These four files are unchanged byte-for-byte exports from Cinna Davis / 1337isnot1337's PR4470 at b9a13c1673e0e9697de410de16e8bbf3207a7363. They are retained scientific inputs, not new work by this audit. + +CANONICAL.json.gz is research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz. PR4447-PATCH.json is research/missing-join-frame/PATCH.json. PR4470-PATCH.json and PR4470-NATIVE.json.gz are research/joint-helper-lattice/PATCH.json and NATIVE.json.gz respectively. + +The immediate native, controller and compiler lineage credits zxv, Cinna Davis, Jacob Alan Sussman, David Ganz, Rohan Arun, Marius-Paul Dumitrean, Erwan Secousses, and the retained scalar, Clifford, geometry, BIT, precision, and outer-framework contributors. See canonical main docs/research/community-productive4359-contributors.md and the predecessor package notices. PR4457 by Mark / Matarener is methodological precedent for an independent operator audit. PR4478 by Ryanson Jonathan covers the separate arithmetic chain. PR4464/4466 cover the separate stage-zero commutation and translation questions. + +The source packages identify their new material as Apache-2.0 with substantial AI assistance. Original source ownership and attribution are retained. This audit does not claim authorship of their constructions, declare their full theorem independently accepted, or modify their frozen inputs. + +The reference operator convention is pinned to clifford_exact.py blob 166841a037f069249f6f7f6dedb89248812f59e2 at the same head. The checker reimplements its documented reference frame and monomial meanings but does not import its compiler, tableau evaluator, zero-state routine, or any predecessor verifier. diff --git a/research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json b/research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json new file mode 100644 index 0000000000..f96d295d40 --- /dev/null +++ b/research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json @@ -0,0 +1,24 @@ +{ + "phase": "B", + "ordinal": 480, + "old_frame": 732, + "new_basis": [ + 168, + 336, + 45 + ], + "old_basis": [ + 258, + 133, + 82, + 45 + ], + "incoming_frames": [ + 364, + 360 + ], + "outgoing_frames": [ + 736, + 692 + ] +} diff --git a/research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz b/research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..0910f74138decf498e7fc445cc2daff4390169d6 GIT binary patch literal 35042 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 aA0B>sc729@G=`w{@8rYQda literal 0 HcmV?d00001 diff --git a/research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json b/research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json new file mode 100644 index 0000000000..51304a6601 --- /dev/null +++ b/research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json @@ -0,0 +1,8991 @@ +{ + "changes": [ + { + "new": [ + 51 + ], + "old": [], + "ordinal": 449, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 451, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 453, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 455, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 482, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 483, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 502, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 503, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 504, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 525, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 526, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 527, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 548, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 549, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 550, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 551, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 578, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 580, + "phase": "entrance" + }, + { + "new": [], + "old": [ + 45, + 76 + ], + "ordinal": 594, + "phase": "entrance" + }, + { + "new": [], + "old": [ + 45, + 76 + ], + "ordinal": 595, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 598, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 599, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 600, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 601, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 606, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 607, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 608, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 609, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 614, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 615, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 616, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 617, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 622, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 623, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 624, + "phase": "entrance" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 625, + "phase": "entrance" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 626, + "phase": "entrance" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 627, + "phase": "entrance" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 627, + "phase": "A" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 628, + "phase": "A" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 629, + "phase": "A" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 630, + "phase": "A" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 631, + "phase": "A" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 632, + "phase": "A" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 633, + "phase": "A" + }, + { + "new": [ + 11, + 21, + 38, + 448 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 1997, + "phase": "A" + }, + { + "new": [ + 11, + 21, + 38, + 448 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 2002, + "phase": "A" + }, + { + "new": [ + 45, + 85, + 133, + 261 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 2151, + "phase": "A" + }, + { + "new": [ + 45, + 85, + 133, + 261 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 2156, + "phase": "A" + }, + { + "new": [ + 14, + 35, + 69, + 400 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 2305, + "phase": "A" + }, + { + "new": [ + 14, + 35, + 69, + 400 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 2310, + "phase": "A" + }, + { + "new": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 4007, + "phase": "A" + }, + { + "new": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 4008, + "phase": "A" + }, + { + "new": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 4013, + "phase": "A" + }, + { + "new": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 4014, + "phase": "A" + }, + { + "new": [ + 2, + 4, + 9, + 17, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 4019, + "phase": "A" + }, + { + "new": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 4025, + "phase": "A" + }, + { + "new": [ + 2, + 4, + 8, + 16, + 33, + 65, + 128, + 256 + ], + "old": [ + 4, + 10, + 16, + 35, + 65, + 128, + 256 + ], + "ordinal": 4043, + "phase": "A" + }, + { + "new": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "old": [ + 1, + 14, + 16, + 34, + 68, + 128, + 256 + ], + "ordinal": 4049, + "phase": "A" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 5, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 6, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 7, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 8, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 9, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 10, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 17, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 18, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 21, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 22, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 25, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 26, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 29, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 30, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 33, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 34, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 37, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 38, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 41, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 42, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 44, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 45, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 47, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 49, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 50, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 97, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 98, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 99, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 100, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 101, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 102, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 103, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 104, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 105, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 106, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 107, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 108, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 109, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 110, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 111, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 112, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 113, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 114, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 135, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 136, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 137, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 138, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 139, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 140, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 141, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 142, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 143, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 144, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 145, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 146, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 147, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 148, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 149, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 150, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 151, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 152, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 153, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 154, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 171, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 172, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 173, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 174, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 175, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 176, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 177, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 178, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 179, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 180, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 181, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 182, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 183, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 184, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 185, + "phase": "B" + }, + { + "new": [ + 30 + ], + "old": [], + "ordinal": 186, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 199, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 200, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 201, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 202, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 203, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 204, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 205, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 206, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 207, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 208, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 209, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 210, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 211, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 212, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 213, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 214, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 234, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 235, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 236, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [], + "ordinal": 237, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 238, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 239, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 240, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 241, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 242, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 243, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 244, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 245, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 246, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 247, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 248, + "phase": "B" + }, + { + "new": [ + 7, + 51, + 82, + 136, + 264 + ], + "old": [ + 51, + 85, + 136, + 264 + ], + "ordinal": 249, + "phase": "B" + }, + { + "new": [ + 7, + 42, + 80, + 144, + 256 + ], + "old": [ + 45, + 80, + 144, + 256 + ], + "ordinal": 332, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 9, + 33, + 208, + 336 + ], + "old": [ + 5, + 11, + 35, + 208, + 336 + ], + "ordinal": 335, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 9, + 33, + 80, + 400 + ], + "old": [ + 5, + 11, + 35, + 80, + 400 + ], + "ordinal": 336, + "phase": "B" + }, + { + "new": [ + 7, + 16, + 42, + 64, + 128, + 256 + ], + "old": [ + 16, + 45, + 64, + 128, + 256 + ], + "ordinal": 337, + "phase": "B" + }, + { + "new": [ + 7, + 9, + 16, + 35, + 64, + 128, + 256 + ], + "old": [ + 14, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 338, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 9, + 16, + 33, + 192, + 320 + ], + "old": [ + 5, + 11, + 16, + 35, + 192, + 320 + ], + "ordinal": 339, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 9, + 33, + 80, + 128, + 272 + ], + "old": [ + 5, + 11, + 35, + 80, + 128, + 272 + ], + "ordinal": 340, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 9, + 33, + 80, + 144, + 256 + ], + "old": [ + 5, + 11, + 35, + 80, + 144, + 256 + ], + "ordinal": 341, + "phase": "B" + }, + { + "new": [ + 45, + 73, + 137, + 286 + ], + "old": [ + 25, + 45, + 73, + 137, + 263 + ], + "ordinal": 353, + "phase": "B" + }, + { + "new": [ + 45, + 87, + 137, + 265 + ], + "old": [ + 25, + 45, + 78, + 137, + 265 + ], + "ordinal": 355, + "phase": "B" + }, + { + "new": [ + 45, + 80, + 146, + 261 + ], + "old": [ + 2, + 45, + 80, + 144, + 261 + ], + "ordinal": 374, + "phase": "B" + }, + { + "new": [ + 5, + 40, + 194, + 265 + ], + "old": [ + 5, + 40, + 82, + 144, + 265 + ], + "ordinal": 376, + "phase": "B" + }, + { + "new": [], + "old": [ + 45, + 76 + ], + "ordinal": 388, + "phase": "B" + }, + { + "new": [ + 45, + 400 + ], + "old": [ + 45, + 76, + 400 + ], + "ordinal": 389, + "phase": "B" + }, + { + "new": [ + 45, + 69, + 400 + ], + "old": [ + 9, + 36, + 69, + 400 + ], + "ordinal": 394, + "phase": "B" + }, + { + "new": [ + 45, + 69, + 146, + 272 + ], + "old": [ + 9, + 36, + 69, + 146, + 272 + ], + "ordinal": 397, + "phase": "B" + }, + { + "new": [ + 45, + 69, + 130, + 274 + ], + "old": [ + 9, + 36, + 69, + 130, + 274 + ], + "ordinal": 398, + "phase": "B" + }, + { + "new": [ + 45, + 73, + 144, + 274 + ], + "old": [ + 5, + 40, + 73, + 144, + 274 + ], + "ordinal": 399, + "phase": "B" + }, + { + "new": [], + "old": [ + 45, + 76 + ], + "ordinal": 410, + "phase": "B" + }, + { + "new": [ + 45, + 475 + ], + "old": [ + 45, + 76, + 407 + ], + "ordinal": 411, + "phase": "B" + }, + { + "new": [ + 14, + 35, + 469 + ], + "old": [ + 14, + 35, + 66, + 407 + ], + "ordinal": 416, + "phase": "B" + }, + { + "new": [ + 14, + 35, + 130, + 341 + ], + "old": [ + 14, + 35, + 66, + 130, + 279 + ], + "ordinal": 419, + "phase": "B" + }, + { + "new": [ + 14, + 35, + 215, + 258 + ], + "old": [ + 14, + 35, + 66, + 149, + 258 + ], + "ordinal": 420, + "phase": "B" + }, + { + "new": [ + 28, + 45, + 199, + 268 + ], + "old": [ + 28, + 45, + 76, + 139, + 268 + ], + "ordinal": 421, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 40, + 217, + 256 + ], + "old": [ + 5, + 40, + 219, + 256 + ], + "ordinal": 440, + "phase": "B" + }, + { + "new": [ + 7, + 18, + 42, + 66, + 393 + ], + "old": [ + 21, + 45, + 69, + 398 + ], + "ordinal": 441, + "phase": "B" + }, + { + "new": [ + 7, + 42, + 66, + 130, + 258 + ], + "old": [ + 45, + 69, + 133, + 261 + ], + "ordinal": 442, + "phase": "B" + }, + { + "new": [ + 7, + 18, + 42, + 66, + 130, + 258 + ], + "old": [ + 21, + 45, + 69, + 133, + 261 + ], + "ordinal": 443, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 16, + 40, + 64, + 393 + ], + "old": [ + 5, + 16, + 40, + 64, + 395 + ], + "ordinal": 444, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 40, + 89, + 128, + 256 + ], + "old": [ + 5, + 40, + 91, + 128, + 256 + ], + "ordinal": 445, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 25, + 40, + 64, + 128, + 256 + ], + "old": [ + 5, + 27, + 40, + 64, + 128, + 256 + ], + "ordinal": 446, + "phase": "B" + }, + { + "new": [ + 7, + 11, + 18, + 33, + 66, + 130, + 258 + ], + "old": [ + 11, + 21, + 38, + 69, + 133, + 261 + ], + "ordinal": 447, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 16, + 40, + 64, + 128, + 265 + ], + "old": [ + 5, + 16, + 40, + 64, + 128, + 267 + ], + "ordinal": 448, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 16, + 40, + 64, + 137, + 256 + ], + "old": [ + 5, + 16, + 40, + 64, + 139, + 256 + ], + "ordinal": 449, + "phase": "B" + }, + { + "new": [ + 28, + 45, + 194, + 258 + ], + "old": [ + 5, + 25, + 40, + 194, + 258 + ], + "ordinal": 461, + "phase": "B" + }, + { + "new": [ + 21, + 45, + 66, + 386 + ], + "old": [ + 12, + 21, + 33, + 66, + 386 + ], + "ordinal": 462, + "phase": "B" + }, + { + "new": [ + 5, + 40, + 137, + 336 + ], + "old": [ + 5, + 40, + 82, + 137, + 258 + ], + "ordinal": 483, + "phase": "B" + }, + { + "new": [ + 45, + 80, + 137, + 274 + ], + "old": [ + 2, + 45, + 80, + 137, + 272 + ], + "ordinal": 485, + "phase": "B" + }, + { + "new": [ + 4, + 8, + 17, + 34, + 64, + 387 + ], + "old": [ + 4, + 17, + 34, + 64, + 395 + ], + "ordinal": 530, + "phase": "B" + }, + { + "new": [ + 3, + 8, + 17, + 33, + 68, + 388 + ], + "old": [ + 11, + 17, + 34, + 68, + 388 + ], + "ordinal": 532, + "phase": "B" + }, + { + "new": [ + 12, + 21, + 38, + 71, + 132, + 260 + ], + "old": [ + 21, + 38, + 75, + 132, + 260 + ], + "ordinal": 556, + "phase": "B" + }, + { + "new": [ + 11, + 18, + 33, + 64, + 132, + 260 + ], + "old": [ + 11, + 51, + 64, + 132, + 260 + ], + "ordinal": 558, + "phase": "B" + }, + { + "new": [ + 6, + 10, + 18, + 32, + 65, + 385 + ], + "old": [ + 10, + 20, + 38, + 65, + 385 + ], + "ordinal": 583, + "phase": "B" + }, + { + "new": [ + 1, + 10, + 20, + 32, + 64, + 390 + ], + "old": [ + 1, + 10, + 20, + 64, + 422 + ], + "ordinal": 585, + "phase": "B" + }, + { + "new": [ + 12, + 18, + 38, + 64, + 129, + 257 + ], + "old": [ + 30, + 38, + 64, + 129, + 257 + ], + "ordinal": 608, + "phase": "B" + }, + { + "new": [ + 11, + 21, + 33, + 71, + 129, + 257 + ], + "old": [ + 11, + 21, + 102, + 129, + 257 + ], + "ordinal": 610, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 24, + 32, + 64, + 394 + ], + "old": [ + 6, + 24, + 32, + 64, + 395 + ], + "ordinal": 632, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 96, + 416 + ], + "old": [ + 6, + 11, + 19, + 96, + 416 + ], + "ordinal": 634, + "phase": "B" + }, + { + "new": [ + 7, + 25, + 33, + 75, + 129, + 257 + ], + "old": [ + 30, + 38, + 75, + 134, + 262 + ], + "ordinal": 658, + "phase": "B" + }, + { + "new": [ + 7, + 11, + 18, + 64, + 160, + 288 + ], + "old": [ + 11, + 21, + 64, + 160, + 288 + ], + "ordinal": 660, + "phase": "B" + }, + { + "new": [ + 51 + ], + "old": [ + 3, + 48, + 72, + 413 + ], + "ordinal": 685, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 17, + 33, + 72, + 392 + ], + "old": [ + 3, + 21, + 37, + 72, + 392 + ], + "ordinal": 687, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 8, + 48, + 64, + 401 + ], + "old": [ + 3, + 8, + 48, + 64, + 405 + ], + "ordinal": 689, + "phase": "B" + }, + { + "new": [ + 7, + 18, + 33, + 64, + 136, + 264 + ], + "old": [ + 21, + 38, + 64, + 136, + 264 + ], + "ordinal": 711, + "phase": "B" + }, + { + "new": [ + 7, + 11, + 51, + 82, + 131, + 259 + ], + "old": [ + 11, + 51, + 85, + 131, + 259 + ], + "ordinal": 713, + "phase": "B" + }, + { + "new": [ + 4, + 51, + 82, + 136, + 264 + ], + "old": [ + 4, + 51, + 136, + 264 + ], + "ordinal": 759, + "phase": "B" + }, + { + "new": [ + 30, + 32, + 76, + 129, + 257 + ], + "old": [ + 30, + 32, + 129, + 257 + ], + "ordinal": 769, + "phase": "B" + }, + { + "new": [ + 13, + 19, + 33, + 455 + ], + "old": [ + 13, + 19, + 33, + 65, + 390 + ], + "ordinal": 770, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 70, + 129, + 257 + ], + "old": [ + 30, + 32, + 70, + 129, + 257 + ], + "ordinal": 779, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 65, + 129, + 262 + ], + "old": [ + 10, + 20, + 65, + 161, + 262 + ], + "ordinal": 784, + "phase": "B" + }, + { + "new": [ + 15, + 17, + 37, + 67, + 129, + 257 + ], + "old": [ + 30, + 37, + 67, + 129, + 257 + ], + "ordinal": 840, + "phase": "B" + }, + { + "new": [ + 8, + 22, + 34, + 68, + 129, + 257 + ], + "old": [ + 8, + 22, + 102, + 129, + 257 + ], + "ordinal": 841, + "phase": "B" + }, + { + "new": [ + 2, + 28, + 40, + 76, + 129, + 257 + ], + "old": [ + 2, + 28, + 100, + 129, + 257 + ], + "ordinal": 842, + "phase": "B" + }, + { + "new": [ + 5, + 27, + 42, + 73, + 129, + 257 + ], + "old": [ + 30, + 47, + 73, + 129, + 257 + ], + "ordinal": 843, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 65, + 131, + 260 + ], + "old": [ + 10, + 20, + 65, + 131, + 292 + ], + "ordinal": 848, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 65, + 132, + 259 + ], + "old": [ + 10, + 20, + 65, + 164, + 259 + ], + "ordinal": 849, + "phase": "B" + }, + { + "new": [ + 5, + 10, + 17, + 32, + 65, + 386 + ], + "old": [ + 10, + 20, + 37, + 65, + 386 + ], + "ordinal": 850, + "phase": "B" + }, + { + "new": [ + 2, + 8, + 20, + 32, + 65, + 389 + ], + "old": [ + 2, + 8, + 20, + 65, + 421 + ], + "ordinal": 851, + "phase": "B" + }, + { + "new": [ + 7, + 24, + 43, + 74, + 136, + 264 + ], + "old": [ + 31, + 44, + 74, + 136, + 264 + ], + "ordinal": 872, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 50, + 82, + 136, + 264 + ], + "old": [ + 1, + 50, + 84, + 136, + 264 + ], + "ordinal": 873, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 49, + 80, + 136, + 264 + ], + "old": [ + 2, + 49, + 85, + 136, + 264 + ], + "ordinal": 874, + "phase": "B" + }, + { + "new": [ + 7, + 27, + 40, + 73, + 136, + 264 + ], + "old": [ + 28, + 47, + 73, + 136, + 264 + ], + "ordinal": 875, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 48, + 72, + 137, + 272 + ], + "old": [ + 3, + 48, + 72, + 137, + 276 + ], + "ordinal": 880, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 48, + 72, + 144, + 265 + ], + "old": [ + 3, + 48, + 72, + 148, + 265 + ], + "ordinal": 881, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 24, + 40, + 72, + 385 + ], + "old": [ + 3, + 28, + 44, + 72, + 385 + ], + "ordinal": 882, + "phase": "B" + }, + { + "new": [ + 1, + 2, + 4, + 48, + 72, + 408 + ], + "old": [ + 1, + 2, + 48, + 72, + 412 + ], + "ordinal": 883, + "phase": "B" + }, + { + "new": [], + "old": [ + 2, + 5, + 40, + 80, + 409 + ], + "ordinal": 928, + "phase": "B" + }, + { + "new": [], + "old": [ + 7, + 42, + 75, + 144 + ], + "ordinal": 949, + "phase": "B" + }, + { + "new": [], + "old": [ + 7, + 42, + 75, + 144 + ], + "ordinal": 951, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 65, + 131, + 260 + ], + "old": [ + 10, + 20, + 65, + 131, + 292 + ], + "ordinal": 1052, + "phase": "B" + }, + { + "new": [ + 10, + 20, + 32, + 65, + 132, + 259 + ], + "old": [ + 10, + 20, + 65, + 164, + 259 + ], + "ordinal": 1053, + "phase": "B" + }, + { + "new": [ + 5, + 10, + 17, + 32, + 65, + 386 + ], + "old": [ + 10, + 20, + 37, + 65, + 386 + ], + "ordinal": 1054, + "phase": "B" + }, + { + "new": [ + 2, + 8, + 20, + 32, + 65, + 389 + ], + "old": [ + 2, + 8, + 20, + 65, + 421 + ], + "ordinal": 1055, + "phase": "B" + }, + { + "new": [ + 7, + 24, + 43, + 74, + 136, + 264 + ], + "old": [ + 31, + 44, + 74, + 136, + 264 + ], + "ordinal": 1101, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 50, + 82, + 136, + 264 + ], + "old": [ + 1, + 50, + 84, + 136, + 264 + ], + "ordinal": 1102, + "phase": "B" + }, + { + "new": [ + 2, + 5, + 49, + 80, + 136, + 264 + ], + "old": [ + 2, + 49, + 85, + 136, + 264 + ], + "ordinal": 1103, + "phase": "B" + }, + { + "new": [ + 7, + 27, + 40, + 73, + 136, + 264 + ], + "old": [ + 28, + 47, + 73, + 136, + 264 + ], + "ordinal": 1104, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 48, + 72, + 137, + 272 + ], + "old": [ + 3, + 48, + 72, + 137, + 276 + ], + "ordinal": 1121, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 48, + 72, + 144, + 265 + ], + "old": [ + 3, + 48, + 72, + 148, + 265 + ], + "ordinal": 1122, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 24, + 40, + 72, + 385 + ], + "old": [ + 3, + 28, + 44, + 72, + 385 + ], + "ordinal": 1123, + "phase": "B" + }, + { + "new": [ + 1, + 2, + 4, + 48, + 72, + 408 + ], + "old": [ + 1, + 2, + 48, + 72, + 412 + ], + "ordinal": 1124, + "phase": "B" + }, + { + "new": [ + 3, + 12, + 21, + 37, + 68, + 132, + 260 + ], + "old": [ + 15, + 21, + 38, + 68, + 132, + 260 + ], + "ordinal": 1185, + "phase": "B" + }, + { + "new": [ + 4, + 8, + 17, + 34, + 67, + 128, + 256 + ], + "old": [ + 4, + 17, + 34, + 75, + 128, + 256 + ], + "ordinal": 1186, + "phase": "B" + }, + { + "new": [ + 4, + 11, + 18, + 33, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 51, + 64, + 128, + 256 + ], + "ordinal": 1187, + "phase": "B" + }, + { + "new": [ + 3, + 8, + 17, + 33, + 64, + 132, + 260 + ], + "old": [ + 11, + 17, + 34, + 64, + 132, + 260 + ], + "ordinal": 1188, + "phase": "B" + }, + { + "new": [ + 4, + 8, + 17, + 34, + 64, + 128, + 259 + ], + "old": [ + 4, + 17, + 34, + 64, + 128, + 267 + ], + "ordinal": 1194, + "phase": "B" + }, + { + "new": [ + 3, + 8, + 17, + 33, + 68, + 132, + 256 + ], + "old": [ + 11, + 17, + 34, + 68, + 132, + 256 + ], + "ordinal": 1196, + "phase": "B" + }, + { + "new": [ + 1, + 12, + 18, + 38, + 64, + 128, + 256 + ], + "old": [ + 1, + 30, + 38, + 64, + 128, + 256 + ], + "ordinal": 1201, + "phase": "B" + }, + { + "new": [ + 6, + 10, + 18, + 32, + 64, + 129, + 257 + ], + "old": [ + 10, + 20, + 38, + 64, + 129, + 257 + ], + "ordinal": 1202, + "phase": "B" + }, + { + "new": [ + 6, + 11, + 19, + 33, + 65, + 129, + 257 + ], + "old": [ + 11, + 21, + 39, + 65, + 129, + 257 + ], + "ordinal": 1203, + "phase": "B" + }, + { + "new": [ + 1, + 10, + 20, + 32, + 70, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 102, + 128, + 256 + ], + "ordinal": 1204, + "phase": "B" + }, + { + "new": [ + 1, + 10, + 20, + 32, + 70, + 128, + 256 + ], + "old": [ + 1, + 30, + 32, + 70, + 128, + 256 + ], + "ordinal": 1205, + "phase": "B" + }, + { + "new": [ + 6, + 10, + 18, + 32, + 65, + 129, + 256 + ], + "old": [ + 10, + 20, + 38, + 65, + 129, + 256 + ], + "ordinal": 1210, + "phase": "B" + }, + { + "new": [ + 1, + 10, + 20, + 32, + 64, + 128, + 262 + ], + "old": [ + 1, + 10, + 20, + 64, + 128, + 294 + ], + "ordinal": 1212, + "phase": "B" + }, + { + "new": [ + 1, + 10, + 20, + 32, + 64, + 128, + 262 + ], + "old": [ + 10, + 20, + 33, + 65, + 128, + 262 + ], + "ordinal": 1213, + "phase": "B" + }, + { + "new": [ + 7, + 10, + 19, + 33, + 65, + 129, + 257 + ], + "old": [ + 13, + 19, + 38, + 70, + 134, + 262 + ], + "ordinal": 1217, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 24, + 32, + 74, + 128, + 256 + ], + "old": [ + 6, + 24, + 32, + 75, + 128, + 256 + ], + "ordinal": 1218, + "phase": "B" + }, + { + "new": [ + 7, + 11, + 18, + 32, + 64, + 128, + 256 + ], + "old": [ + 11, + 21, + 32, + 64, + 128, + 256 + ], + "ordinal": 1219, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 64, + 160, + 288 + ], + "old": [ + 6, + 11, + 19, + 64, + 160, + 288 + ], + "ordinal": 1220, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 64, + 160, + 288 + ], + "old": [ + 1, + 12, + 18, + 70, + 160, + 288 + ], + "ordinal": 1221, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 24, + 32, + 64, + 128, + 266 + ], + "old": [ + 6, + 24, + 32, + 64, + 128, + 267 + ], + "ordinal": 1226, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 96, + 160, + 256 + ], + "old": [ + 6, + 11, + 19, + 96, + 160, + 256 + ], + "ordinal": 1228, + "phase": "B" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 96, + 160, + 256 + ], + "old": [ + 6, + 10, + 18, + 96, + 161, + 256 + ], + "ordinal": 1229, + "phase": "B" + }, + { + "new": [ + 7, + 8, + 18, + 33, + 64, + 128, + 256 + ], + "old": [ + 8, + 21, + 38, + 64, + 128, + 256 + ], + "ordinal": 1233, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 17, + 33, + 64, + 136, + 264 + ], + "old": [ + 3, + 21, + 37, + 64, + 136, + 264 + ], + "ordinal": 1234, + "phase": "B" + }, + { + "new": [ + 7, + 11, + 17, + 34, + 67, + 131, + 259 + ], + "old": [ + 11, + 22, + 37, + 67, + 131, + 259 + ], + "ordinal": 1235, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 8, + 48, + 81, + 128, + 256 + ], + "old": [ + 3, + 8, + 48, + 85, + 128, + 256 + ], + "ordinal": 1236, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 17, + 33, + 72, + 136, + 256 + ], + "old": [ + 3, + 21, + 37, + 72, + 136, + 256 + ], + "ordinal": 1242, + "phase": "B" + }, + { + "new": [ + 3, + 4, + 8, + 48, + 64, + 128, + 273 + ], + "old": [ + 3, + 8, + 48, + 64, + 128, + 277 + ], + "ordinal": 1244, + "phase": "B" + }, + { + "new": [ + 8, + 22, + 37, + 71, + 135, + 263 + ], + "old": [ + 7, + 8, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 1417, + "phase": "B" + }, + { + "new": [ + 8, + 22, + 37, + 71, + 135, + 263 + ], + "old": [ + 7, + 8, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 1418, + "phase": "B" + }, + { + "new": [ + 12, + 18, + 33, + 67, + 131, + 259 + ], + "old": [ + 7, + 11, + 18, + 33, + 67, + 131, + 259 + ], + "ordinal": 1433, + "phase": "B" + }, + { + "new": [ + 12, + 18, + 33, + 67, + 131, + 259 + ], + "old": [ + 7, + 11, + 18, + 33, + 67, + 131, + 259 + ], + "ordinal": 1434, + "phase": "B" + }, + { + "new": [ + 4, + 8, + 18, + 33, + 192, + 320 + ], + "old": [ + 3, + 4, + 8, + 17, + 33, + 192, + 320 + ], + "ordinal": 1437, + "phase": "B" + }, + { + "new": [ + 4, + 8, + 18, + 33, + 192, + 320 + ], + "old": [ + 3, + 4, + 8, + 17, + 33, + 192, + 320 + ], + "ordinal": 1438, + "phase": "B" + }, + { + "new": [ + 12, + 18, + 33, + 70, + 134, + 262 + ], + "old": [ + 7, + 11, + 18, + 33, + 65, + 129, + 257 + ], + "ordinal": 1445, + "phase": "B" + }, + { + "new": [ + 12, + 18, + 33, + 70, + 134, + 262 + ], + "old": [ + 7, + 11, + 18, + 33, + 65, + 129, + 257 + ], + "ordinal": 1446, + "phase": "B" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 0, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 1, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 2, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 3, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 4, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 5, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 6, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 7, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 8, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 9, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 10, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 11, + "phase": "cleanup_tail" + }, + { + "new": [ + 2, + 5, + 24, + 40, + 72, + 385 + ], + "old": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 12, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 20, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 21, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 22, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 23, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 24, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 25, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 26, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 27, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 28, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 29, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 30, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 31, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 32, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 33, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 34, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 35, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 36, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 37, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 38, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 39, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 47, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 48, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 49, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 50, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 51, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 52, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 55, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 56, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 60, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 61, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 62, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 63, + "phase": "cleanup_tail" + }, + { + "new": [ + 3, + 12, + 17, + 33, + 64, + 388 + ], + "old": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 67, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 73, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 74, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 75, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 76, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 12, + 18, + 32, + 70, + 128, + 256 + ], + "ordinal": 85, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 10, + 18, + 33, + 65, + 128, + 256 + ], + "ordinal": 88, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 94, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 95, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 96, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 97, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 98, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 99, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 100, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 101, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 102, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 103, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 104, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 105, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 106, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 107, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 108, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 109, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 110, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 111, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 116, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 117, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 121, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 122, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 123, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 124, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 125, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 126, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 127, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 128, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 129, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 130, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 131, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 132, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 133, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 134, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 135, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 136, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 137, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 138, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 139, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 140, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 141, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 142, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 143, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 144, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 145, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 146, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 147, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 148, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 149, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 150, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 151, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 152, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 153, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 154, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 155, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 156, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 157, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 158, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 159, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 160, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 161, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 162, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 163, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 164, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 165, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 166, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 167, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 168, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 169, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 170, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 171, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 172, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 173, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 174, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 175, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 176, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 177, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 178, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 179, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 180, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 181, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 182, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 183, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 188, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 189, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 191, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 192, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 193, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 194, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 195, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 196, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 197, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 198, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 199, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 200, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 201, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 202, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 204, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 205, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 206, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 207, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 208, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 209, + "phase": "cleanup_tail" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 226, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 228, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 4, + 10, + 16, + 34, + 64, + 128, + 256 + ], + "ordinal": 230, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 249, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 251, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 265, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 5, + 11, + 16, + 35, + 64, + 128, + 256 + ], + "ordinal": 267, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 299, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 304, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 320, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 331, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 363, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "ordinal": 395, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 408, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 412, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 424, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 428, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 448, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 449, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 450, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 451, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 452, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 453, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 454, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 455, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 482, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 4, + 11, + 17, + 34, + 64, + 128, + 256 + ], + "ordinal": 483, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 496, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 6, + 8, + 16, + 34, + 66, + 128, + 256 + ], + "ordinal": 497, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 503, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 10, + 20, + 38, + 64, + 128, + 256 + ], + "ordinal": 504, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 507, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 4, + 9, + 16, + 32, + 65, + 128, + 256 + ], + "ordinal": 508, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 526, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 11, + 19, + 32, + 64, + 128, + 256 + ], + "ordinal": 527, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 550, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 8, + 21, + 37, + 64, + 128, + 256 + ], + "ordinal": 551, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 566, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 567, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 568, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 3, + 5, + 9, + 17, + 33, + 65, + 128, + 256 + ], + "ordinal": 569, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 574, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 8, + 20, + 36, + 64, + 128, + 256 + ], + "ordinal": 575, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 576, + "phase": "exit" + }, + { + "new": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 2, + 12, + 16, + 32, + 68, + 128, + 256 + ], + "ordinal": 577, + "phase": "exit" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 32, + 64, + 128, + 256 + ], + "old": [ + 1, + 12, + 18, + 32, + 70, + 128, + 256 + ], + "ordinal": 580, + "phase": "exit" + }, + { + "new": [ + 1, + 6, + 10, + 18, + 32, + 64, + 128, + 256 + ], + "old": [ + 6, + 10, + 18, + 33, + 65, + 128, + 256 + ], + "ordinal": 582, + "phase": "exit" + } + ], + "source_head": "322e0ec764aa7ef7801383feb1f656e460dd8bed" +} diff --git a/research/pr4470-exact-transport-audit/verify.py b/research/pr4470-exact-transport-audit/verify.py new file mode 100644 index 0000000000..1c9a9d6410 --- /dev/null +++ b/research/pr4470-exact-transport-audit/verify.py @@ -0,0 +1,352 @@ +#!/usr/bin/env python3 +"""Exact full-matrix audit of the 423 declared PR4470 physical lowerings. + +Apache-2.0. Prepared for Chris / Clear1nsight with substantial OpenAI assistance. +No predecessor evaluator or compiler is imported. NumPy stores integer matrices; +there is no floating-point arithmetic in the scientific comparison. +""" +from __future__ import annotations +import argparse +from collections import Counter +from copy import deepcopy +import gzip +import hashlib +import json +from pathlib import Path +import platform +import random +import sys +import time +import numpy as np + +HERE = Path(__file__).resolve().parent +SOURCE_HEAD = "b9a13c1673e0e9697de410de16e8bbf3207a7363" +PINS = { + "CANONICAL.json.gz": "4a8c4ed26e53a72362d571c972e65aff546be784", + "PR4447-PATCH.json": "f96d295d40014d4dd503f58eb3cdabcbb4b8e101", + "PR4470-PATCH.json": "51304a6601061ed4e698f910b09135ef109555e3", + "PR4470-NATIVE.json.gz": "0910f74138decf498e7fc445cc2daff4390169d6", +} + +def require(ok: bool, message: str) -> None: + if not ok: + raise ValueError(message) + + +def blob_id(data: bytes) -> str: + return hashlib.sha1(b"blob " + str(len(data)).encode("ascii") + b"\0" + data).hexdigest() + + +def read_source(name: str) -> object: + raw = (HERE / "vendor" / name).read_bytes() + require(blob_id(raw) == PINS[name], "Source binding failed: " + name) + return json.loads(gzip.decompress(raw) if name.endswith(".gz") else raw) + + +def space(basis: list[int], n: int) -> frozenset[int]: + values = {0} + for vector in basis: + require(type(vector) is int and 0 < vector < 1 << n, "Invalid basis vector") + require(vector not in values, "Dependent basis") + values.update(tuple(x ^ vector for x in values)) + return frozenset(values) + + +def transpose(rows: list[int], n: int) -> list[int]: + return [sum(((rows[j] >> i) & 1) << j for j in range(n)) for i in range(n)] + + +def linear_map(rows: list[int], n: int) -> np.ndarray: + require(len(rows) == n and all(type(r) is int and 0 <= r < 1 << n for r in rows), + "Invalid binary matrix") + result = np.array([sum(((r & x).bit_count() % 2) << i for i, r in enumerate(rows)) + for x in range(1 << n)], dtype=np.int64) + require(len(set(map(int, result))) == 1 << n, "Singular binary matrix") + return result + + +def inverse_rows(rows: list[int], n: int) -> list[int]: + # Invert the finite bijection, independently of binary elimination. + p = list(map(int, linear_map(rows, n))) + inverse = [0] * len(p) + for x, y in enumerate(p): + inverse[y] = x + return transpose([inverse[1 << i] for i in range(n)], n) + + +def extend(basis: list[int], n: int) -> list[int]: + out = list(basis) + values = set(space(out, n)) + for i in range(n): + vector = 1 << i + if vector not in values: + values.update(tuple(x ^ vector for x in values)) + out.append(vector) + require(len(out) == n, "Incomplete basis") + return out + + +def adjoint(circuit: list[tuple], n: int) -> list[tuple]: + result = [] + for gate in reversed(circuit): + kind = gate[0] + if kind == "P": + result.append(("P", inverse_rows(gate[1], n))) + elif kind == "D": + result.append(("D", gate[1], [(-a) % 4 for a in gate[2]])) + elif kind == "C": + result.append(("C", gate[1], -gate[2])) + elif kind == "phase": + result.append(("phase", (-gate[1]) % 4)) + elif kind == "X": + result.append(gate) + else: + raise ValueError("Unknown primitive") + return result + + +def frame(basis: list[int], n: int) -> list[tuple]: + # Source-specified reference frame, not an imported lowering algorithm. + rank = len(basis) + space(basis, n) + core = [("C", 1 << i, 1) for i in range(rank)] + if rank in (0, n): + return core + rows = transpose(extend(basis, n), n) + inverse_columns = transpose(inverse_rows(rows, n), n) + quadratic = [(1 << i) ^ sum(((x & y).bit_count() % 2) << j + for j, y in enumerate(inverse_columns)) + for i, x in enumerate(inverse_columns)] + alpha = [(quadratic[i] >> i) & 1 for i in range(n)] + wrapper = [("P", rows), ("D", quadratic, alpha)] + return adjoint(wrapper, n) + core + wrapper + + +def monomial(record: dict, n: int) -> list[tuple]: + required = {"matrix_rows", "offset", "quadratic_rows", "linear_Z4", "phase"} + require(set(record) == required, "Unsupported monomial schema") + rows = list(record["matrix_rows"]) + linear_map(rows, n) + q = list(record["quadratic_rows"]) + a = list(record["linear_Z4"]) + require(len(q) == len(a) == n and transpose(q, n) == q, "Invalid quadratic form") + require(all(type(x) is int and 0 <= x < 1 << n for x in q), "Invalid quadratic row") + require(all(type(x) is int and 0 <= x < 4 for x in a), "Invalid linear phase") + require(all((a[i] % 2) == ((q[i] >> i) & 1) for i in range(n)), "Phase parity") + require(type(record["offset"]) is int and 0 <= record["offset"] < 1 << n, + "Invalid offset") + require(type(record["phase"]) is int and 0 <= record["phase"] < 4, "Invalid phase") + return [("D", q, a), ("P", rows), ("X", record["offset"]), ("phase", record["phase"])] + + +def recipe(record: dict, n: int) -> list[tuple]: + require(set(record) == {"rank", "left", "right"}, "Unsupported recipe schema") + rank = record["rank"] + require(type(rank) is int and 0 <= rank <= n, "Invalid child rank") + if rank == 0: + require(record["right"] is None, "Unexpected rank-zero right factor") + return monomial(record["left"], n) + return (monomial(record["right"], n) + [("C", 1 << i, 1) for i in range(rank)] + + monomial(record["left"], n)) + + +def matrix(circuit: list[tuple], n: int) -> tuple[np.ndarray, np.ndarray, int]: + """Return Gaussian integer numerators and a common denominator 2**d.""" + require(1 <= n <= 9, "Audit dimension out of range") + # Each C doubles the denominator; unitary prefixes bound each numerator by 2**d. + # The stricter 28 bound also keeps squared magnitudes and cross-scaled equality safe. + require(sum(e[0] == "C" for e in circuit) <= 28, "Integer safety cap exceeded") + size = 1 << n + real = np.eye(size, dtype=np.int64) + imag = np.zeros((size, size), dtype=np.int64) + denominator = 0 + for gate in circuit: + kind = gate[0] + if kind in ("P", "X"): + p = linear_map(gate[1], n) if kind == "P" else np.arange(size) ^ gate[1] + require(len(set(map(int, p))) == size, "Invalid address permutation") + rr = np.empty_like(real); ii = np.empty_like(imag) + rr[p, :] = real; ii[p, :] = imag + real, imag = rr, ii + elif kind in ("D", "phase"): + if kind == "phase": + phases = np.full(size, gate[1] % 4, dtype=np.int64) + else: + q, a = gate[1:] + phases = np.array([(sum(a[i] for i in range(n) if x >> i & 1) + + 2 * sum(((q[i] & x) >> (i + 1)).bit_count() + for i in range(n) if x >> i & 1)) % 4 + for x in range(size)], dtype=np.int64) + cos = np.array([1, 0, -1, 0], dtype=np.int64)[phases, None] + sin = np.array([0, 1, 0, -1], dtype=np.int64)[phases, None] + real, imag = cos * real - sin * imag, sin * real + cos * imag + elif kind == "C": + q, sign = gate[1:] + require(0 < q < size and sign in (-1, 1), "Invalid Gaussian gate") + shifted_r = real[np.arange(size) ^ q, :] + shifted_i = imag[np.arange(size) ^ q, :] + real, imag = (real - sign * imag + shifted_r + sign * shifted_i, + imag + sign * real + shifted_i - sign * shifted_r) + denominator += 1 + else: + raise ValueError("Unknown primitive " + str(kind)) + return real, imag, denominator + + +def equal(a: tuple, b: tuple) -> bool: + d = max(a[2], b[2]) + require(d <= 28, "Comparison safety cap") + return all(np.array_equal(a[i] * (1 << (d-a[2])), b[i] * (1 << (d-b[2]))) + for i in (0, 1)) + + +def check_rank(value: tuple, rank: int) -> None: + real, imag, d = value + require(0 <= rank <= 9 and 2*d >= rank, "Invalid magnitude exponent") + occupied = (real != 0) | (imag != 0) + require(bool(np.all(np.count_nonzero(occupied, axis=0) == 1 << rank)), "Column support rank") + require(bool(np.all(np.count_nonzero(occupied, axis=1) == 1 << rank)), "Row support rank") + square = real*real + imag*imag + require(bool(np.all(square[occupied] == 1 << (2*d-rank))), "Exact entry magnitude") + + +def self_tests() -> dict: + checks = 0 + rng = random.Random(4470) + for n in range(1, 5): + identity = matrix([], n) + for trial in range(12): + basis = [] + for x in rng.sample(range(1, 1 << n), (1 << n)-1): + if x not in space(basis, n): + basis.append(x) + if len(basis) == n: + break + for rank in range(n+1): + circuit = frame(basis[:rank], n) + require(equal(matrix(circuit + adjoint(circuit, n), n), identity), "Frame inverse control") + checks += 1 + for q in range(1, 1 << n): + # Independent entry-law oracle for a single Gaussian gate. + r, i, d = matrix([("C", q, 1)], n) + e = np.eye(1 << n, dtype=np.int64) + x = e[np.arange(1 << n) ^ q] + require(d == 1 and np.array_equal(r, e+x) and np.array_equal(i, e-x), "Gaussian entry law") + checks += 1 + # An absolute phase must fail even though support and all magnitudes survive. + good = matrix([("C", 1, 1)], 2) + shifted = matrix([("C", 1, 1), ("phase", 1)], 2) + check_rank(good, 1); check_rank(shifted, 1) + require(not equal(good, shifted), "Absolute-phase mutation escaped") + require(not equal(good, matrix([("C", 1, -1)], 2)), "Conjugation mutation escaped") + rejected = 0 + for test in (lambda: check_rank(good, 2), lambda: linear_map([1, 1], 2), + lambda: space([1, 1], 2), lambda: matrix([("C", 1, 1)]*29, 2)): + try: + test() + except ValueError: + rejected += 1 + require(rejected == 4, "Structural mutation escaped") + require(blob_id(b"source") != blob_id(b"sourcf"), "Source-byte control") + # Explicit two-column tensor identity with summed, not unscaled, phase. + r, i, d = matrix([("C", 1, 1), ("phase", 1)], 1) + rr = np.kron(r, r) - np.kron(i, i) + ii = np.kron(r, i) + np.kron(i, r) + require(equal((rr, ii, 2*d), matrix([("C", 1, 1), ("C", 2, 1), ("phase", 2)], 2)), + "Tensor phase lift") + return {"positive_checks": checks+2, "rejected_controls": 7, "tensor_phase_test": True} + + +def catalogue() -> tuple[list[list[int]], dict]: + base = read_source("CANONICAL.json.gz") + predecessor = read_source("PR4447-PATCH.json") + patch = read_source("PR4470-PATCH.json") + require(patch["source_head"] == "322e0ec764aa7ef7801383feb1f656e460dd8bed", "Patch predecessor") + frames = deepcopy(base["frames"]) + require(len(frames) == 1159, "Base frame census") + require(space(frames[predecessor["old_frame"]], 9) == space(predecessor["old_basis"], 9), + "Predecessor contact binding") + frames.append(predecessor["new_basis"]) + labels = {space(b, 9): index for index, b in enumerate(frames)} + changed = Counter() + keys = set() + for move in patch["changes"]: + key = (move["phase"], move["ordinal"]) + require(key not in keys, "Repeated changed contact") + keys.add(key); changed[move["phase"]] += 1 + old = space(move["old"], 9); new = space(move["new"], 9) + require(old != new, "Unchanged patch entry") + if new not in labels: + labels[new] = len(frames) + frames.append(move["new"]) + require(dict(changed) == {"entrance": 38, "exit": 47, "A": 21, "B": 238, "cleanup_tail": 155}, + "Changed-frame census") + return frames, dict(sorted(changed.items())) + + +def audit() -> dict: + controls = self_tests() + frames, changes = catalogue() + receipt = read_source("PR4470-NATIVE.json.gz") + records = receipt["new_physical_edges_and_boundaries"] + require(len(records) == 423, "Physical pair census") + seen = set(); histogram = Counter(); digest = hashlib.sha256() + largest_c = 0 + for index, record in enumerate(records): + a, b, rank = record["old"], record["new"], record["rank"] + require((a, b) not in seen, "Repeated physical pair") + seen.add((a, b)) + require(0 <= a < len(frames) and 0 <= b < len(frames), "Unknown frame") + require(space(frames[a], 9) < space(frames[b], 9), "Nonnested physical pair") + require(rank == len(frames[b])-len(frames[a]), "Declared dimension gap") + circuit = adjoint(frame(frames[a], 9), 9) + frame(frames[b], 9) + largest_c = max(largest_c, sum(e[0] == "C" for e in circuit)) + wanted = matrix(circuit, 9) + for direction in ("forward", "backward"): + lowered = record["recipes"][direction] + require(lowered["rank"] == rank, "Lowered rank disagrees") + actual = matrix(recipe(lowered, 9), 9) + expected = wanted if direction == "forward" else (wanted[0], -wanted[1], wanted[2]) + require(equal(actual, expected), f"Exact matrix mismatch at pair {a},{b}, {direction}") + check_rank(actual, rank) + digest.update(json.dumps([a, b, rank, direction], separators=(",", ":")).encode()) + histogram[rank] += 1 + if index == 0: + bad = deepcopy(record["recipes"]["forward"]) + bad["left"]["phase"] = (bad["left"]["phase"] + 1) % 4 + mutated = matrix(recipe(bad, 9), 9) + check_rank(mutated, rank) + require(not equal(mutated, wanted), "Real-source absolute-phase control escaped") + if (index+1) % 50 == 0: + print(f"CHECKED_PHYSICAL_PAIRS {index+1}/423", flush=True) + return {"schema": "pr4470-exact-transport-audit/v1", "status": "PASS_EXACT_TRANSPORT_MATRICES", + "source_head": SOURCE_HEAD, "physical_pairs": len(seen), "orientations": 2, + "source_files": {name: {"git_blob": pin, "sha256": hashlib.sha256((HERE / "vendor" / name).read_bytes()).hexdigest()} for name, pin in sorted(PINS.items())}, + "matrix_dimension": 512, "basis_columns_compared": 423*2*512, + "complex_matrix_entries_compared": 423*2*512*512, + "rank_histogram_both_orientations": dict(sorted(histogram.items())), + "frame_catalogue_count": len(frames), "patch_changes": changes, + "maximum_target_gaussian_gates": largest_c, "self_tests": controls, + "actual_source_phase_mutation_rejected": True, + "coverage_index_sha256": digest.hexdigest(), "new_kappa": False, + "not_covered": ["completeness of the declared 423-pair list", "chronological native endpoint replay", + "p16 controller", "physical tape costs", "precision and storage", "outer theorem"]} + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--self-test", action="store_true") + parser.add_argument("--out", type=Path) + args = parser.parse_args() + started = time.monotonic() + result = self_tests() if args.self_test else audit() + text = json.dumps(result, indent=2, sort_keys=True) + "\n" + if args.out: + require(not args.out.exists(), "Refusing to overwrite an existing receipt") + args.out.write_text(text, encoding="utf-8") + print(text, end="") + print(json.dumps({"python": platform.python_version(), "numpy": np.__version__, + "elapsed_seconds": round(time.monotonic()-started, 3)}, sort_keys=True)) + +if __name__ == "__main__": + main() From 98c6062659b047422fd584131bf210a70ef912f1 Mon Sep 17 00:00:00 2001 From: Chris R Date: Thu, 22 Oct 2026 14:25:10 +1100 Subject: [PATCH 2/4] Fix selected-frontier navigation without rewriting historical evidence Reuse zxv PR4436 documentation corrections. Replay PR3563 on its authenticated original snapshot, retain live locale/navigation regression coverage, and add six adapter controls. Preserve all scientific verifiers, receipts, source hashes and selected records. Prepared for Clear1nsight with substantial OpenAI assistance. --- docs/ci-verification.md | 19 +++ docs/research/current-status.md | 6 +- docs/research/pr14-ci-repair.md | 25 ++++ research/historical-1042-link/SOURCES.json | 4 +- research/historical-1042-link/VERIFY.json | 8 +- .../historical-1042-link/historical_replay.py | 115 ++++++++++++++++++ research/test-suite-locale-reads/SOURCES.json | 2 +- .../test_research_historical_1042_adapter.py | 78 ++++++++++++ 8 files changed, 248 insertions(+), 9 deletions(-) create mode 100644 docs/research/pr14-ci-repair.md create mode 100644 research/historical-1042-link/historical_replay.py create mode 100644 tests/test_research_historical_1042_adapter.py diff --git a/docs/ci-verification.md b/docs/ci-verification.md index 582e416aaf..4541cfa0e8 100644 --- a/docs/ci-verification.md +++ b/docs/ci-verification.md @@ -5,6 +5,25 @@ Start with the [selected record](../certificates/selected-result.json). Its `reproduce`, `review`, `source_manifest` and `validation` fields identify the replay command, scoped assessment, source bindings and integration evidence. +The selected checkpoint is #4359, documented in +[the proof review](research/pr-intake-evidence/pr4359/PROOF-REVIEW.md), +[the source manifest](../certificates/frontier4359-source.json) and +[the validation receipt](research/pr-intake-evidence/pr4359/VALIDATION.json). +The public cold replay is `make frontier4359-verify`; the configured +[frontier4359 workflow](../.github/workflows/frontier4359.yml) executes it +on Ubuntu 24.04 with Python 3.12 and the pinned requirements. Consult +[the integration receipt](research/pr-intake-evidence/pr4359/INTEGRATION.json) +and [workflow runs](https://github.com/CrocSwap/integer-mult-bounds/actions/workflows/frontier4359.yml) +for dated evidence and exact tested heads. + +`make selected-record-check` checks metadata and source/proof hashes. The +finite replay and changed-interface review retain the native/physical, +analytic, precision, fixed-tape and recovery hypotheses in the selected +record; they are not a full formal multiplication theorem. The winning +uniform templates are algorithm-defined and are not materialized. + +## Historical checkpoint through #1094 + At this checkpoint, the selected composition is #589 with #1094, documented in [the review](research/community-batch1099-review.md), [the source manifest](../research/community-frontier1094-audit/SELECTED-SOURCE.json) diff --git a/docs/research/current-status.md b/docs/research/current-status.md index 62a8cbb097..043a8cd78a 100644 --- a/docs/research/current-status.md +++ b/docs/research/current-status.md @@ -1,12 +1,14 @@ # Current reviewed status -Selected conditional κ: **0.0023 = 23/10000**, zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. +Selected conditional κ: **0.0023** = 23/10000, zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. [Selected record](../../certificates/selected-result.json) · [Proof review](pr-intake-evidence/pr4359/PROOF-REVIEW.md) · [Integration receipt](pr-intake-evidence/pr4359/INTEGRATION.json) · [Contributors](community-productive4359-contributors.md). Cold replay: `make frontier4359-verify`. The fresh 23-stage replay and 59 normalized artifacts pass; the changed interfaces have an AI-assisted proof review under retained analytic/native/fixed-tape hypotheses. Winning uniform templates are not materialized. This is not a complete formal or independent human verification. #4404 independently checks a narrower arithmetic/flow scope. -## Historical selected status through #1094 +The sections below are a historical snapshot; consult the selected record above for present status. + +## Historical checkpoint through #1094 Historical selected conditional κ: **0.001672660197076918**, Rohan Arun's #1094 on Jeremy Kothe's #1087 packing and the cumulative k8/slot/T16 construction. The bit supplier remains #589 on #555. diff --git a/docs/research/pr14-ci-repair.md b/docs/research/pr14-ci-repair.md new file mode 100644 index 0000000000..7ccdfd5a1e --- /dev/null +++ b/docs/research/pr14-ci-repair.md @@ -0,0 +1,25 @@ +# Fork PR14 CI repair and historical source roles + +The initial registered-package run 39712725535 at f4657a0ad4c11a56646c8c6c422f09335b0c73ba ran 318 onboarding tests and failed four current-status/navigation assertions. The separate exact transport run 39712725621 passed. No scientific failure is inferred from the planning failure. + +## Navigation repair + +The two documentation files reuse the exact corrections from zxv's PR4436 head 56003680aee2871773de408e5f01cc5dd46b144c. They identify selected conditional kappa 0.0023, its actual reproduction command and source/review/validation paths, and label earlier sections as historical. Credit zxv and the existing documentation authors. The tests and selected record are unchanged. + +## Historical replay boundary + +PR3563's historical-1042-link finding binds the old selected #1094 record and its previous_record pointer to #1042. Applying that frozen assertion directly to #4359 is incorrect. Its original verifier, test, RESULT.json, source hashes and base commit are retained unchanged. The added historical_replay.py authenticates the original manifest from ancestor f4657a0, retrieves the three exact original blobs from base 20ecf289, and executes the unchanged verifier and test in a temporary snapshot. It also checks that the live #1042 checkpoint has not changed. No working source file is overwritten. Git replacement objects are disabled and both blob IDs and SHA256 are checked. + +The two evolving documents in that package's SOURCES.json are now historical provenance, not required to equal working-tree bytes. All original VERIFY.json invalidation paths remain present. The registered command explicitly reports historical-snapshot scope. The original direct verify.py command still requires its original inputs; use the registered command on a later frontier. + +The locale package has a different contract. Its unchanged verifier deliberately tests the current status document and current test module, including both negative codec controls and the complete onboarding suite. Its old document hash is historical provenance; the current path remains a declared replay input. This preserves live regression coverage without freezing the document's entire contents. + +No hash is rewritten to a newer value, no failure is suppressed, and neither shared workflow nor package runner is weakened. Six new adapter tests cover exact retrieval, live-edit isolation, wrong hashes/blob IDs, missing history, Git replacements, unsafe paths and the immutable original-manifest guard. They pass locally on Python 3.13.5 in normal and optimised modes. Full Python 3.12 execution is assessed on the actual subsequent hosted run, not presumed from this note. + +## Scope and credit + +This is a fork-local workflow repair, not a new research result, supplier admission or frontier update. It preserves James Reed's PR3563 historical finding, the locale-package author and existing checker attribution, and zxv's documentation repair. Prepared for Chris / Clear1nsight with substantial OpenAI assistance, Apache-2.0. + +## Open next questions + +Confirm the exact-head hosted plan, both affected historical/locale replays and the transport package after publication. A scientific follow-up must separately bind the declared physical-pair list to every event and helper boundary in PR4470's chronological word. CI success alone does not establish that completeness. diff --git a/research/historical-1042-link/SOURCES.json b/research/historical-1042-link/SOURCES.json index c6119ca5a8..6a1356cf2a 100644 --- a/research/historical-1042-link/SOURCES.json +++ b/research/historical-1042-link/SOURCES.json @@ -10,13 +10,13 @@ }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "4e0a8b7cdacc1d9680f7f81d03624118bb20416d", "sha256": "00a08925c51b26d168b8099ddeed659ac4381f7e04f3c7fd0e9de8e71f206823" }, { "path": "certificates/selected-result.json", - "usage": "input", + "usage": "provenance", "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" }, diff --git a/research/historical-1042-link/VERIFY.json b/research/historical-1042-link/VERIFY.json index 5cff7b26c9..21d3b965ac 100644 --- a/research/historical-1042-link/VERIFY.json +++ b/research/historical-1042-link/VERIFY.json @@ -10,14 +10,14 @@ ], "commands": [ { - "argv": ["{python}", "-B", "{package}/verify.py"], - "timeout_seconds": 30, - "checks": "Compare the #1042 status link with the live record and the frontier1042 checkpoint." + "argv": ["{python}", "-B", "{package}/historical_replay.py"], + "timeout_seconds": 120, + "checks": "Authenticate and replay the unchanged PR3563 verifier, tests and receipt against its exact original three source blobs in a temporary snapshot. Current navigation is checked separately; all original invalidation paths remain declared." }, { "argv": ["{python}", "-B", "{package}/test_verify.py"], "timeout_seconds": 30, - "checks": "Check the printed decimal and the historical section cut." + "checks": "Check the unchanged printed decimal and historical section cut." } ] } diff --git a/research/historical-1042-link/historical_replay.py b/research/historical-1042-link/historical_replay.py new file mode 100644 index 0000000000..f46d15a9c2 --- /dev/null +++ b/research/historical-1042-link/historical_replay.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 +"""Replay the unchanged PR3563 finding on its authenticated historical inputs. + +This adapter does not apply the old previous_record assertion to a new frontier. +Current navigation remains checked by tests/test_research_current_status.py. +Apache-2.0; prepared for Clear1nsight with substantial OpenAI assistance. +""" +from __future__ import annotations + +import hashlib +import json +import os +from pathlib import Path, PurePosixPath +import subprocess +import sys +import tempfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +PUBLICATION = "f4657a0ad4c11a56646c8c6c422f09335b0c73ba" +PACKAGE = "research/historical-1042-link" +ORIGINAL = { + "verify.py": "12170922e5cd84746089d022f103bfe931fb8a15", + "test_verify.py": "140840530cbd9b4fdd80d8fa067334b61bfa4c17", + "RESULT.json": "a9d58d28814fc4a7c9b50a165b48d1a4f52d1892", + "SOURCES.json": "c6119ca5a8233edd0f8ed3a2e606de5b088d9fcf", +} +INPUTS = { + "docs/research/current-status.md", + "certificates/selected-result.json", + "certificates/checkpoints/frontier1042.json", +} + + +def require(ok: bool, message: str) -> None: + if not ok: + raise ValueError(message) + + +def blob_id(data: bytes) -> str: + return hashlib.sha1(b"blob " + str(len(data)).encode("ascii") + b"\0" + data).hexdigest() + + +def checked_path(path: str) -> str: + require(isinstance(path, str), "Non-text historical path") + p = PurePosixPath(path) + require(not p.is_absolute() and str(p) == path and ".." not in p.parts + and "\\" not in path and "\0" not in path, "Unsafe historical path") + return path + + +def git_bytes(root: Path, spec: str) -> bytes: + env = dict(os.environ) + env["GIT_NO_REPLACE_OBJECTS"] = "1" + result = subprocess.run( + ["git", "--no-replace-objects", "cat-file", "blob", spec], cwd=root, + env=env, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, + timeout=30, + ) + return result.stdout + + +def authenticated_input(root: Path, base: str, row: dict) -> bytes: + path = checked_path(row["path"]) + require(len(base) == 40 and all(c in "0123456789abcdef" for c in base), + "Invalid historical base") + data = git_bytes(root, base + ":" + path) + require(blob_id(data) == row["git_blob"], "Historical Git blob mismatch: " + path) + require(hashlib.sha256(data).hexdigest() == row["sha256"], + "Historical SHA256 mismatch: " + path) + return data + + +def collect(root: Path = ROOT, here: Path = HERE) -> tuple[dict[str, bytes], dict]: + raw = git_bytes(root, PUBLICATION + ":" + PACKAGE + "/SOURCES.json") + require(blob_id(raw) == ORIGINAL["SOURCES.json"], "Original manifest changed") + manifest = json.loads(raw) + rows = [r for r in manifest["files"] if r["usage"] == "input"] + require(len(rows) == len(INPUTS) and {r["path"] for r in rows} == INPUTS, + "Original input inventory changed") + payload = {PACKAGE + "/SOURCES.json": raw} + for name in ("verify.py", "test_verify.py", "RESULT.json"): + path = here / name + require(path.is_file() and not path.is_symlink(), "Missing/aliased frozen file: " + name) + data = path.read_bytes() + require(blob_id(data) == ORIGINAL[name], "Frozen implementation/receipt changed: " + name) + payload[PACKAGE + "/" + name] = data + for row in rows: + data = authenticated_input(root, manifest["base_commit"], row) + payload[row["path"]] = data + if row["path"] == "certificates/checkpoints/frontier1042.json": + require((root / row["path"]).read_bytes() == data, "Live 1042 checkpoint drift") + return payload, manifest + + +def main() -> None: + payload, manifest = collect() + with tempfile.TemporaryDirectory(prefix="historical-1042-replay-") as directory: + root = Path(directory) + for relative, data in payload.items(): + path = root / checked_path(relative) + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(data) + flags = ["-I", "-B"] + (["-O"] if sys.flags.optimize else []) + for name in ("verify.py", "test_verify.py"): + subprocess.run([sys.executable, *flags, str(root / PACKAGE / name)], + cwd=root, check=True, timeout=30) + require(all((root / p).read_bytes() == b for p, b in payload.items()), + "Historical replay changed its inputs or receipt") + print("PASS_HISTORICAL_1042_SNAPSHOT base=" + manifest["base_commit"] + + " current_frontier_not_asserted=true") + + +if __name__ == "__main__": + main() diff --git a/research/test-suite-locale-reads/SOURCES.json b/research/test-suite-locale-reads/SOURCES.json index be5f08378a..b3ee94816b 100644 --- a/research/test-suite-locale-reads/SOURCES.json +++ b/research/test-suite-locale-reads/SOURCES.json @@ -16,7 +16,7 @@ }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" }, diff --git a/tests/test_research_historical_1042_adapter.py b/tests/test_research_historical_1042_adapter.py new file mode 100644 index 0000000000..f891ad4ed8 --- /dev/null +++ b/tests/test_research_historical_1042_adapter.py @@ -0,0 +1,78 @@ +"""Historical replay must retain old bytes without freezing live documentation.""" +import hashlib +import importlib.util +import os +from pathlib import Path +import subprocess +import tempfile +import unittest +from unittest.mock import patch + +ROOT = Path(__file__).resolve().parents[1] +SPEC = importlib.util.spec_from_file_location( + "historical_1042_adapter", ROOT / "research/historical-1042-link/historical_replay.py") +A = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(A) + + +class Historical1042AdapterTests(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory() + self.addCleanup(self.temp.cleanup) + self.root = Path(self.temp.name) + self.git("init", "-q") + self.git("config", "user.name", "Fixture") + self.git("config", "user.email", "fixture@example.invalid") + self.data = b"historical input\n" + (self.root / "fixture.txt").write_bytes(self.data) + self.git("add", "fixture.txt") + self.git("commit", "-qm", "Frozen fixture") + self.base = self.git("rev-parse", "HEAD").decode().strip() + self.row = {"path": "fixture.txt", "git_blob": A.blob_id(self.data), + "sha256": hashlib.sha256(self.data).hexdigest()} + + def git(self, *args, input=None, env=None): + return subprocess.run(["git", *args], cwd=self.root, input=input, env=env, + check=True, stdout=subprocess.PIPE, + stderr=subprocess.PIPE).stdout + + def test_exact_historical_bytes_ignore_live_edits(self): + (self.root / "fixture.txt").write_bytes(b"new current text\n") + self.assertEqual(A.authenticated_input(self.root, self.base, self.row), self.data) + self.assertEqual((self.root / "fixture.txt").read_bytes(), b"new current text\n") + + def test_wrong_hash_and_wrong_blob_reject(self): + for field in ("git_blob", "sha256"): + row = dict(self.row) + row[field] = "0" * len(row[field]) + with self.assertRaises(ValueError): + A.authenticated_input(self.root, self.base, row) + + def test_missing_history_fails_closed(self): + with self.assertRaises(subprocess.CalledProcessError): + A.authenticated_input(self.root, "0" * 40, self.row) + + def test_git_replacement_cannot_substitute_evidence(self): + replacement = self.git("hash-object", "-w", "--stdin", input=b"forged\n").decode().strip() + self.git("replace", self.row["git_blob"], replacement) + self.assertEqual(A.authenticated_input(self.root, self.base, self.row), self.data) + env = dict(os.environ, GIT_REPLACE_REF_BASE="refs/alternate-replacements/") + self.git("update-ref", env["GIT_REPLACE_REF_BASE"] + self.row["git_blob"], replacement) + with patch.dict(os.environ, env): + self.assertEqual(A.authenticated_input(self.root, self.base, self.row), self.data) + + def test_noncanonical_paths_and_bases_reject(self): + for path in ("../escape", "/absolute", "a/../b", "a//b", "a\\b", "a\0b"): + with self.assertRaises(ValueError): + A.checked_path(path) + with self.assertRaises(ValueError): + A.authenticated_input(self.root, "HEAD", self.row) + + def test_frozen_manifest_guard_is_not_only_json_parsing(self): + with patch.object(A, "git_bytes", return_value=b'{"files": []}'): + with self.assertRaisesRegex(ValueError, "Original manifest changed"): + A.collect(self.root, self.root) + + +if __name__ == "__main__": + unittest.main() From 07953a3101ebb6e2a80b99d43aaae0c8f17d2883 Mon Sep 17 00:00:00 2001 From: Chris R Date: Thu, 22 Oct 2026 14:28:09 +1100 Subject: [PATCH 3/4] Register exact transport replay and retain its successful hosted receipt Add the required task/source/replay metadata, strict fresh-receipt comparison and five rejection tests. Preserve the scientific engine and four source exports byte-for-byte. Document actual hosted evidence and remaining native/caller obligations. No new kappa or upstream PR. --- .../pr4470-exact-transport-audit/README.md | 35 ++++++---- .../pr4470-exact-transport-audit/RESULT.json | 63 ++++++++++++++++++ .../pr4470-exact-transport-audit/SOURCES.json | 46 +++++++++++++ .../pr4470-exact-transport-audit/TASK.json | 65 +++++++++++++++++++ .../pr4470-exact-transport-audit/VERIFY.json | 34 ++++++++++ .../pr4470-exact-transport-audit/replay.py | 57 ++++++++++++++++ .../test_replay.py | 51 +++++++++++++++ 7 files changed, 340 insertions(+), 11 deletions(-) create mode 100644 research/pr4470-exact-transport-audit/RESULT.json create mode 100644 research/pr4470-exact-transport-audit/SOURCES.json create mode 100644 research/pr4470-exact-transport-audit/TASK.json create mode 100644 research/pr4470-exact-transport-audit/VERIFY.json create mode 100644 research/pr4470-exact-transport-audit/replay.py create mode 100644 research/pr4470-exact-transport-audit/test_replay.py diff --git a/research/pr4470-exact-transport-audit/README.md b/research/pr4470-exact-transport-audit/README.md index 5233fe4c7f..34b4bb94d1 100644 --- a/research/pr4470-exact-transport-audit/README.md +++ b/research/pr4470-exact-transport-audit/README.md @@ -1,34 +1,47 @@ # Exact physical transport audit of PR4470 -This is an in-progress, source-bound audit of all 423 declared transport/helper-boundary pairs in PR4470 at b9a13c1673e0e9697de410de16e8bbf3207a7363. It claims no new kappa. The selected result and frozen predecessor files are unchanged. +This source-bound audit checks all 423 declared transport/helper-boundary pairs in PR4470 at `b9a13c1673e0e9697de410de16e8bbf3207a7363`. It claims no new kappa. The selected result and frozen scientific predecessor files are unchanged. The separately written checker reconstructs the reference frame catalogue and compares every entry of each 512 by 512 lowered matrix against the literal Gaussian-dyadic reference operator, in both orientations. It uses int64 Gaussian numerators and explicit powers-of-two denominators, not floating-point tolerances, predecessor interpreters, Clifford tableaux, or a zero-column-only phase comparison. A 28-Gaussian-gate cap keeps all arithmetic and squared magnitudes within int64. -## Verification state +## Verification and reproduction -Local Python 3.13.5 / NumPy 2.3.5 self-tests pass with 196 positive checks, seven rejection controls, and a two-column tensor-phase test. The complete source-bound replay has not yet completed at the initial draft commit. Its status must be read from the focused CI job and subsequent handoff, not inferred from the presence of this code. +The first complete hosted scientific replay passed in [run 39712725621](https://github.com/Clear1nsight/integer-mult-bounds/actions/runs/39712725621) at `f4657a0ad4c11a56646c8c6c422f09335b0c73ba`, with Python 3.12 and numpy==2.2.6. RESULT.json is the byte-exact downloaded receipt, SHA256 `53bdd869ebeee0980b139e422043922c87585bef90c2989969532ccb7b289a00`. It records 433,152 basis columns and 221,773,824 complex matrix entries compared, 196 positive self-checks, seven rejection controls, a tensor-phase control, and an actual-source phase mutation that preserves rank but fails equality. -Install numpy==2.2.6 on Python 3.12, then run: +The earlier shared package plan failed four stale status/navigation assertions. The focused scientific pass was not a shared-CI pass. The separate [CI repair note](../../docs/research/pr14-ci-repair.md) records their correction without changing mathematical tests, selected records or frozen receipts. Exact-head hosted results must still be read from the PR checks. + +From a full checkout with Python 3.12: + +```sh +python -m pip install numpy==2.2.6 +python -B scripts/research_package.py --package research/pr4470-exact-transport-audit --check-only +python -B scripts/research_package.py --package research/pr4470-exact-transport-audit +python -B scripts/check_research_commit.py --package research/pr4470-exact-transport-audit --check-source-history +``` + +The registered replay freshly runs the unchanged scientific engine and compares every receipt field, then runs optimised scientific controls and five receipt-binding tests in normal and optimised modes. No runtime metadata is part of the scientific receipt. The source/receipt comparison rejects extra and missing fields and distinguishes booleans from integers. The five new wrapper tests passed locally on Python 3.13.5; registered Python 3.12 coverage is provided by the actual hosted job. + +A Git-free scientific replay is also available: ```sh -python -B research/pr4470-exact-transport-audit/verify.py --self-test -python -B research/pr4470-exact-transport-audit/verify.py --out /tmp/pr4470-exact-transport-result.json +python -I -B research/pr4470-exact-transport-audit/replay.py +python -I -O -B research/pr4470-exact-transport-audit/verify.py --self-test ``` -The output path must not already exist. Git-free replay is supported by the four committed, authenticated source exports. The focused workflow runs this audit alone with a 600-second scientific timeout; it does not replace or waive shared repository CI. Registration and the final source manifest will be completed after the first full-source replay. +SOURCES.json pins the four source exports to this fork's existing ancestor commit, so no unmerged foreign commit is needed. The original upstream identifiers and contributor notices remain in vendor/NOTICE.md. TASK.json preserves the original catalogue card and declares the narrowed scope. ## Scope boundaries -Even a passing full replay only verifies the listed physical normal forms and their declared ranks/phases. It does not independently prove that the 423-pair list is exhaustive for the chronological word, replay the 632 persistent-field endpoint, admit the p16 controller, price physical movement, or establish precision, storage, and the outer multiplication theorem. Tensoring a checked operator identity preserves that identity for each positive column multiplicity; it does not by itself price the lifted implementation. +A passing full replay verifies the listed physical normal forms and their declared ranks/phases. It does not prove that the 423-pair list is exhaustive for the chronological word, replay the 632 persistent-field endpoint, admit the p16 controller, price physical movement, or establish precision, storage, and the outer multiplication theorem. Tensoring a checked operator identity preserves that identity for each positive column multiplicity; it does not by itself price the lifted implementation. ## Task and overlap -Base is canonical main 2a13eb1827784206202db90e5dc8327cf8a250db, priority revision 7. The assigned PR4470 native audit refines independent-moment to actual physical operators rather than invoice arithmetic. PR4478's current README covers the compiler and outer rows. PR4457 audits predecessor operators, not PR4470's changed 423-pair set. PR4464/4466 cover stage-zero commutation. Live PR4470 mentions and the public handoff thread were checked; this is bounded coverage, not a claim of exhaustive novelty. The newer compiler work in PR4483 does not discharge this physical audit. +The scientific base remains canonical main `2a13eb1827784206202db90e5dc8327cf8a250db`, priority revision 7. Current main was refreshed to `f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc` during the workflow repair. The assigned PR4470 native audit refines independent-moment to physical operators rather than another root enclosure. PR4478 covers arithmetic, compiler and outer rows. PR4457 audits predecessor operators. PR4464/4466 cover stage-zero commutation. PR4504 independently reconstructs chronological frames and local billing, but leaves physical operators separate. This is targeted overlap coverage, not exhaustive novelty. The newer PR4483 compiler does not discharge this physical premise. ## Open next questions -The smallest useful follow-up is to reconstruct the changed chronological word and prove that every transport and helper endpoint is represented in the audited pair set, then replay all 632 arbitrary persistent inputs and the owned centre. Pin the same head and start from native_joint.py's source-to-patch mapping, without importing its evaluator. A separate follow-up audits the p16 controller. Neither is closed by the matrix checks here. +First bind every chronological transition and helper endpoint from PR4504's independent reconstruction to the audited pair set, using canonical subspaces and orientation rather than raw frame IDs. Reject an omitted pair, a wrong orientation, and an unpriced transition. Then replay all 632 arbitrary persistent inputs and the owned centre under the assembled physical contract. A separate follow-up checks the actual p16 query/owner/erasure protocol. TASK.json gives the relevance, first step and blockers for both tasks. No new agent is claimed to have run these follow-ups. ## Credit -Prepared for Chris / Clear1nsight with substantial OpenAI assistance. This is a separately implemented AI-assisted check, not independent human or proof-kernel verification. Apache-2.0. The source construction and mathematical reference conventions belong to the contributors in vendor/NOTICE.md. In particular, credit Cinna Davis for PR4470, zxv for the native/compiler lineage, Jacob Alan Sussman for mixed-target recursion, Mark / Matarener for PR4457, and Ryanson Jonathan for PR4478. +Prepared for Chris / Clear1nsight with substantial OpenAI assistance, Apache-2.0. This is separately implemented AI-assisted checking, not independent human or proof-kernel verification. Credit Cinna Davis for PR4470; zxv for receiver sharing, native/controller/compiler work and the reused PR4436 navigation repair; Jacob Alan Sussman for mixed-target recursion; Mark / Matarener for PR4457; Mihir Srivastava for PR4504; Ryanson Jonathan for PR4478; and the full retained notices in vendor/NOTICE.md. The historical CI adapter preserves James Reed's PR3563 result and the existing locale checker rather than silently updating their evidence. diff --git a/research/pr4470-exact-transport-audit/RESULT.json b/research/pr4470-exact-transport-audit/RESULT.json new file mode 100644 index 0000000000..d80b68175e --- /dev/null +++ b/research/pr4470-exact-transport-audit/RESULT.json @@ -0,0 +1,63 @@ +{ + "actual_source_phase_mutation_rejected": true, + "basis_columns_compared": 433152, + "complex_matrix_entries_compared": 221773824, + "coverage_index_sha256": "5f3923deb45470a9e9f3cf958e3876ea9e81bb2837f32b835196572993ed5d1f", + "frame_catalogue_count": 1224, + "matrix_dimension": 512, + "maximum_target_gaussian_gates": 16, + "new_kappa": false, + "not_covered": [ + "completeness of the declared 423-pair list", + "chronological native endpoint replay", + "p16 controller", + "physical tape costs", + "precision and storage", + "outer theorem" + ], + "orientations": 2, + "patch_changes": { + "A": 21, + "B": 238, + "cleanup_tail": 155, + "entrance": 38, + "exit": 47 + }, + "physical_pairs": 423, + "rank_histogram_both_orientations": { + "1": 262, + "2": 186, + "3": 264, + "4": 102, + "5": 16, + "7": 6, + "8": 8, + "9": 2 + }, + "schema": "pr4470-exact-transport-audit/v1", + "self_tests": { + "positive_checks": 196, + "rejected_controls": 7, + "tensor_phase_test": true + }, + "source_files": { + "CANONICAL.json.gz": { + "git_blob": "4a8c4ed26e53a72362d571c972e65aff546be784", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + "PR4447-PATCH.json": { + "git_blob": "f96d295d40014d4dd503f58eb3cdabcbb4b8e101", + "sha256": "9ab5328245ff02c9d0be21d39bcc375f50bc5d7909e9f7b9a3a9a6f812f5bd6e" + }, + "PR4470-NATIVE.json.gz": { + "git_blob": "0910f74138decf498e7fc445cc2daff4390169d6", + "sha256": "74582cce642c80f0235be7fcbce3716174666326ac6a1d46d02a62a75d7be4c6" + }, + "PR4470-PATCH.json": { + "git_blob": "51304a6601061ed4e698f910b09135ef109555e3", + "sha256": "296d0e8c58cc70febe042c681ef30d6bb469818c0835fbcaac8aa8d330f5b727" + } + }, + "source_head": "b9a13c1673e0e9697de410de16e8bbf3207a7363", + "status": "PASS_EXACT_TRANSPORT_MATRICES" +} diff --git a/research/pr4470-exact-transport-audit/SOURCES.json b/research/pr4470-exact-transport-audit/SOURCES.json new file mode 100644 index 0000000000..6e1ebbb572 --- /dev/null +++ b/research/pr4470-exact-transport-audit/SOURCES.json @@ -0,0 +1,46 @@ +{ + "schema_version": 1, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65", + "sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96" + }, + { + "path": "research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz", + "usage": "input", + "git_blob": "4a8c4ed26e53a72362d571c972e65aff546be784", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61", + "pin": "head:f4657a0ad4c11a56646c8c6c422f09335b0c73ba:research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz" + }, + { + "path": "research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json", + "usage": "input", + "git_blob": "f96d295d40014d4dd503f58eb3cdabcbb4b8e101", + "sha256": "9ab5328245ff02c9d0be21d39bcc375f50bc5d7909e9f7b9a3a9a6f812f5bd6e", + "pin": "head:f4657a0ad4c11a56646c8c6c422f09335b0c73ba:research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json" + }, + { + "path": "research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json", + "usage": "input", + "git_blob": "51304a6601061ed4e698f910b09135ef109555e3", + "sha256": "296d0e8c58cc70febe042c681ef30d6bb469818c0835fbcaac8aa8d330f5b727", + "pin": "head:f4657a0ad4c11a56646c8c6c422f09335b0c73ba:research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json" + }, + { + "path": "research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz", + "usage": "input", + "git_blob": "0910f74138decf498e7fc445cc2daff4390169d6", + "sha256": "74582cce642c80f0235be7fcbce3716174666326ac6a1d46d02a62a75d7be4c6", + "pin": "head:f4657a0ad4c11a56646c8c6c422f09335b0c73ba:research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz" + } + ] +} diff --git a/research/pr4470-exact-transport-audit/TASK.json b/research/pr4470-exact-transport-audit/TASK.json new file mode 100644 index 0000000000..4d185c699b --- /dev/null +++ b/research/pr4470-exact-transport-audit/TASK.json @@ -0,0 +1,65 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 7, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "original_card": { + "id": "independent-moment", + "question": "Does a new paid-profile or mixture-ceiling claim have independent source-bound coverage of its actual changed ledger?", + "starting_points": ["docs/research/research-family-status.md", "certificates/selected-result.json", "research/staged544-mixed-fourth-entry/README.md", "research/staged-fourth-mixture-ceiling/README.md", "research/r437-two-window-carrier/README.md"], + "methods": ["Independently reconstruct one changed paid ledger or pooled dual with exact source and model binding.", "Check a genuinely uncovered moment implication with a different enclosure method and semantic controls."], + "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": "Choose one uncovered implication in #4088 literal mixed fill, #4091 pooled dual/model binding or #4067 changed frame/host bill. #4091 pins an earlier #4088 head: validate word, capacity and stock equivalence before applying that ceiling to the later fill.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Independently reconstruct one changed ledger or pooled certificate with a positive case and a semantic failure control. Compare exact sources and name what existing checks miss. Keep this separate from supplier-boundary-audit (ordinary/outer dispatch) and uniform-transfer-audit (all-size proof). Stop after the chosen implication; more digits of an unchanged root are not additional mechanism coverage.", + "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.", "Calling an aggregate histogram or source archive an independently accepted physical supplier."], + "overlap_terms": ["independent moment", "rank histogram", "exact enclosure", "2979", "rank7 joint endframes", "paired extraction", "joint lowering", "4088", "4091", "4067", "staged544-mixed-fourth-entry", "staged-fourth-mixture-ceiling", "r437-two-window-carrier"], + "existing_checks": [ + {"scope": "PR #4088: mixed local/owner/phase ledger and moment reported.", "evidence": "research/staged544-mixed-fourth-entry/README.md", "remaining": "Independent binding of changed construction to paid histogram, distinct from full admission.", "status": "author-checked", "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"}, + {"scope": "PR #4091: sharp pooled ceiling proposed for fixed THREE/FOUR words and inventory.", "evidence": "research/staged-fourth-mixture-ceiling/README.md", "remaining": "Validate dual, exhaustive pattern scope and exact source equivalence before applying to newer fills.", "status": "author-checked", "source_commit": "a29bdd8f56cd18b805917775cdec09ff935eddc4", "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"}, + {"scope": "PR #4067: paid (2,2) to (1,3) exchange and fixed OQ4 host reported.", "evidence": "research/r437-two-window-carrier/README.md", "remaining": "Independent full cost delta; remaining caller/precision/stock obligations are separate.", "status": "author-checked", "source_commit": "a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e", "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"} + ] + }, + "scope_status": "refined", + "actual_scope": "Independently reconstruct and compare every entry of 423 declared PR4470 transport/helper normal forms in both orientations, with exact rank and absolute phase.", + "scope_change_reason": "User-assigned native audit narrowed to the physical-operator premise omitted by PR4504's chronological frame audit and PR4478's arithmetic checks.", + "scope_key": "pr4470-423-exact-matrices-b9a13c16", + "bottleneck_link": "Connect the charged recursive ranks to actual operators without mistaking an aggregate histogram for a physical supplier.", + "budget_minutes": 60, + "stop_rule": "Stop at the declared-pair matrix identity and controls. No completeness, full chronological native identity or new kappa claim.", + "outcome": "completed", + "evidence": "RESULT.json is the exact receipt from fork workflow 39712725621 at f4657a0ad4c11a56646c8c6c422f09335b0c73ba. The registered successor replays the unchanged engine and compares every field.", + "author": "Chris R / Clear1nsight, with substantial OpenAI assistance", + "ai_assistance": "Substantial OpenAI assistance. Separately implemented AI-assisted audit, not independent human or proof-kernel acceptance.", + "source_head": "b9a13c1673e0e9697de410de16e8bbf3207a7363", + "refresh_main": "f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc", + "original_card_first_step_status": "The historical baseline helper was not rerun in this workflow-repair session; current guidance was read through GitHub. No orientation PASS is claimed.", + "overlap": { + "method": "Targeted live PR/body and pinned-package reading; not an exhaustive local/Discussion snapshot.", + "nearby_prs": [4085, 4359, 4457, 4464, 4466, 4470, 4478, 4483, 4504], + "complete_discussion_pagination": false, + "find_overlap_helper_run": false, + "added_coverage": "Exact physical matrix entries and absolute phases of the listed pairs; completeness and chronological composition remain separate." + }, + "publication": {"repository": "Clear1nsight/integer-mult-bounds", "pull_request": 14, "upstream_pr_created": false}, + "open_questions": [ + { + "question": "Is the audited pair list complete for every chronological transition and helper endpoint?", + "why_it_matters": "All listed operators can be correct while a missing physical operation remains unverified.", + "first_step": "Join PR4504's independently reconstructed chronological demands to the 423 exact matrix records by canonical subspaces and orientation, rejecting missing or extra coverage.", + "blocked_by": "A source-bound coverage join and end-to-end arbitrary-column native replay are not supplied here." + }, + { + "question": "Does the p16 caller realise its full query, owner and erasure contract?", + "why_it_matters": "Formal controller diagonalisation does not price or implement the physical caller.", + "first_step": "Use the same PR4470 head, independently execute the owned-query protocol and bind each complete native invocation, with all spectator and scratch obligations explicit.", + "blocked_by": "Caller/native integration remains outside this pairwise audit." + } + ] +} diff --git a/research/pr4470-exact-transport-audit/VERIFY.json b/research/pr4470-exact-transport-audit/VERIFY.json new file mode 100644 index 0000000000..9843a5baf1 --- /dev/null +++ b/research/pr4470-exact-transport-audit/VERIFY.json @@ -0,0 +1,34 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": ["numpy==2.2.6"], + "inputs": [ + "research/pr4470-exact-transport-audit/vendor/CANONICAL.json.gz", + "research/pr4470-exact-transport-audit/vendor/PR4447-PATCH.json", + "research/pr4470-exact-transport-audit/vendor/PR4470-PATCH.json", + "research/pr4470-exact-transport-audit/vendor/PR4470-NATIVE.json.gz" + ], + "commands": [ + { + "argv": ["{python}", "-I", "-B", "{package}/replay.py"], + "timeout_seconds": 600, + "checks": "Fresh exact full-matrix replay of all 423 declared pairs in both orientations with source authentication, phase/rank controls and exact comparison of every hosted receipt field. No list-completeness or full native/theorem admission claim." + }, + { + "argv": ["{python}", "-I", "-O", "-B", "{package}/verify.py", "--self-test"], + "timeout_seconds": 60, + "checks": "196 positive checks, seven rejection controls and the tensor-phase control with assertions disabled." + }, + { + "argv": ["{python}", "-I", "-B", "{package}/test_replay.py"], + "timeout_seconds": 30, + "checks": "Five receipt/engine-binding tests reject changed scientific fields, scope fields, numeric types, missing/extra fields, corrupted receipts and changed engine bytes." + }, + { + "argv": ["{python}", "-I", "-O", "-B", "{package}/test_replay.py"], + "timeout_seconds": 30, + "checks": "The same five receipt controls with assertions disabled." + } + ] +} diff --git a/research/pr4470-exact-transport-audit/replay.py b/research/pr4470-exact-transport-audit/replay.py new file mode 100644 index 0000000000..caa2195092 --- /dev/null +++ b/research/pr4470-exact-transport-audit/replay.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +"""Fresh execution and exact comparison with the first hosted transport receipt. + +No mathematical field or source check is waived. Apache-2.0; OpenAI assistance. +""" +from __future__ import annotations +import hashlib +import json +from pathlib import Path +import subprocess +import sys +import tempfile + +HERE = Path(__file__).resolve().parent +EXPECTED_SHA256 = "53bdd869ebeee0980b139e422043922c87585bef90c2989969532ccb7b289a00" +ENGINE_BLOB = "1c9a9d6410e29b7c201547be9f0bef8685c4571b" + + +def require(ok: bool, message: str) -> None: + if not ok: + raise ValueError(message) + + +def load_expected(path: Path = HERE / "RESULT.json") -> dict: + require(path.is_file() and not path.is_symlink(), "Missing/aliased receipt") + raw = path.read_bytes() + require(hashlib.sha256(raw).hexdigest() == EXPECTED_SHA256, "Hosted receipt changed") + return json.loads(raw) + + +def compare(actual: object, expected: dict) -> None: + # Serialisation distinguishes bool/int and int/float, unlike dict equality. + encode = lambda value: json.dumps(value, sort_keys=True, separators=(",", ":"), allow_nan=False) + require(encode(actual) == encode(expected), "Scientific receipt mismatch") + + +def authenticate_engine(path: Path = HERE / "verify.py") -> None: + require(path.is_file() and not path.is_symlink(), "Missing/aliased engine") + raw = path.read_bytes() + actual = hashlib.sha1(b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest() + require(actual == ENGINE_BLOB, "Scientific engine changed") + + +def main() -> None: + expected = load_expected() + authenticate_engine() + with tempfile.TemporaryDirectory(prefix="pr4470-exact-replay-") as directory: + out = Path(directory) / "fresh.json" + flags = ["-I", "-B"] + (["-O"] if sys.flags.optimize else []) + subprocess.run([sys.executable, *flags, str(HERE / "verify.py"), "--out", str(out)], + check=True, timeout=550) + compare(json.loads(out.read_text(encoding="utf-8")), expected) + print("PASS_PR4470_EXACT_TRANSPORT_REGISTERED all_receipt_fields=true") + + +if __name__ == "__main__": + main() diff --git a/research/pr4470-exact-transport-audit/test_replay.py b/research/pr4470-exact-transport-audit/test_replay.py new file mode 100644 index 0000000000..77bc0f7231 --- /dev/null +++ b/research/pr4470-exact-transport-audit/test_replay.py @@ -0,0 +1,51 @@ +"""Receipt comparison controls complement the scientific engine's controls.""" +import copy +import importlib.util +from pathlib import Path +import tempfile +import unittest + +HERE = Path(__file__).resolve().parent +SPEC = importlib.util.spec_from_file_location("transport_replay", HERE / "replay.py") +R = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(R) + + +class ReceiptTests(unittest.TestCase): + def test_exact_and_reordered_object(self): + value = R.load_expected() + R.compare(dict(reversed(list(value.items()))), value) + + def test_scientific_and_scope_fields_are_not_ignored(self): + value = R.load_expected() + for field, change in (("physical_pairs", 422), ("new_kappa", True), + ("source_head", "0" * 40), ("not_covered", [])): + actual = copy.deepcopy(value) + actual[field] = change + with self.assertRaises(ValueError): + R.compare(actual, value) + + def test_boolean_is_not_interchangeable_with_integer(self): + with self.assertRaises(ValueError): + R.compare({"positive": 1}, {"positive": True}) + with self.assertRaises(ValueError): + R.compare({"count": 1.0}, {"count": 1}) + + def test_extra_and_missing_fields_reject(self): + value = R.load_expected() + for actual in ({**value, "ignored": 0}, {k: v for k, v in value.items() if k != "status"}): + with self.assertRaises(ValueError): + R.compare(actual, value) + + def test_corrupted_expected_receipt_and_engine_reject(self): + with tempfile.TemporaryDirectory() as directory: + path = Path(directory) / "fixture" + path.write_bytes(b"{}\n") + with self.assertRaises(ValueError): + R.load_expected(path) + with self.assertRaises(ValueError): + R.authenticate_engine(path) + + +if __name__ == "__main__": + unittest.main() From af86fb28f4fe039d4bb8419850af99a6fc474587 Mon Sep 17 00:00:00 2001 From: Chris R Date: Thu, 22 Oct 2026 14:33:50 +1100 Subject: [PATCH 4/4] Classify frozen D8 guidance pins as historical provenance The selected replay exposed pre-existing autoresearch.md drift. The unchanged D8 verifier has no file reads and constructs its finite alphabet internally. Preserve every source hash and base, all invalidation paths, the live lower-bound input and every scientific control; correct only the four guidance/selection source roles. Document the boundary explicitly. --- research/d8-mixed-target-seeda97c8e/SOURCE-ROLES.md | 7 +++++++ research/d8-mixed-target-seeda97c8e/SOURCES.json | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 research/d8-mixed-target-seeda97c8e/SOURCE-ROLES.md diff --git a/research/d8-mixed-target-seeda97c8e/SOURCE-ROLES.md b/research/d8-mixed-target-seeda97c8e/SOURCE-ROLES.md new file mode 100644 index 0000000000..c48d957e7e --- /dev/null +++ b/research/d8-mixed-target-seeda97c8e/SOURCE-ROLES.md @@ -0,0 +1,7 @@ +# Historical guidance versus scientific inputs + +The fork PR14 navigation repair selects this package because current-status.md is among its declared invalidation inputs. The old manifest additionally required the current autoresearch, selected record, catalogue and status page to retain their earlier bytes. Those pages have advanced since base 0b1cccf86e2f5132ed286a26ef0a681a495740ea. + +The complete unchanged verifier at Git blob a48d025d118840009764efe893654e2d28441f98 performs no file reads and imports no external data. It constructs the D8 group, F2 group algebra, 240 paid factors and finite word search from explicit definitions. Its seven controls and length-five positive witness do not depend on any current guidance or selected frontier. The four guidance/selection rows are therefore recorded as historical provenance at their original base. All original blob IDs and SHA256 hashes are retained. The referenced lower-bound README remains a pinned live input, and every original VERIFY.json input and command remains unchanged, including the changed-document triggers. + +This is a metadata-role correction, not a new mathematical check, altered alphabet, weakened negative control or changed result. The unchanged scientific replay must still run and succeed on the publication head. No current selection is inferred from the historical package. Original author and predecessor credit remain in README.md and TASK.json. This note was prepared for Chris / Clear1nsight with substantial OpenAI assistance, Apache-2.0. diff --git a/research/d8-mixed-target-seeda97c8e/SOURCES.json b/research/d8-mixed-target-seeda97c8e/SOURCES.json index 9384463ff4..5dcfa9dd60 100644 --- a/research/d8-mixed-target-seeda97c8e/SOURCES.json +++ b/research/d8-mixed-target-seeda97c8e/SOURCES.json @@ -4,25 +4,25 @@ "files": [ { "path": "autoresearch.md", - "usage": "input", + "usage": "provenance", "git_blob": "8d5403e0f10f68a61d0cb9294fa2e83e872d1d82", "sha256": "215b3222f6a943edc69422a28ac21ea1f397ddf54770f1d87ac4195385d73699" }, { "path": "certificates/selected-result.json", - "usage": "input", + "usage": "provenance", "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" }, { "path": "docs/research/agent-task-catalog.json", - "usage": "input", + "usage": "provenance", "git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1", "sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075" }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" },