From fc536202fdaa924158789a5ef59ac079bbe21922 Mon Sep 17 00:00:00 2001 From: Chris R Date: Mon, 19 Oct 2026 19:00:41 +1100 Subject: [PATCH] Audit staged544 native phases and exhibit the binary-inverse lift defect --- .../.gitattributes | 4 + .../.gitignore | 2 + .../LEDGER.json | 80 + .../NOTICE-PR3945.md | 20 + .../staged544-native-quadratic-audit/PROOF.md | 132 + .../README.md | 105 + .../RECIPES.json | 4236 +++++++++++++++++ .../RELEASE-BINDING.json | 23 + .../RESULT.json | 1414 ++++++ .../SOURCE-CREDITS.md | 14 + .../SOURCES.json | 182 + .../TASK.json | 79 + .../VALIDATION.json | 36 + .../VERIFY.json | 28 + .../exact_phase.py | 154 + .../frozen/EVIDENCE.json | 107 + .../frozen/FINAL-PACKAGE-MANIFEST.json | 672 +++ .../frozen/NATIVE-LINEAGE-NOTICE | 14 + .../frozen/NATIVE-RECEIPT-CORRECTED.json | 165 + .../frozen/NATIVE-base.json | 55 + .../frozen/NATIVE-extra.json | 55 + .../frozen/PINS.json | 22 + .../frozen/RELEASE.json | 7 + .../frozen/WORD-base.json.gz | Bin 0 -> 74428 bytes .../frozen/WORD-extra.json.gz | Bin 0 -> 74425 bytes .../frozen/old-WORD-base.json.gz | Bin 0 -> 72769 bytes .../frozen/old-WORD-extra.json.gz | Bin 0 -> 72766 bytes .../generate.py | 40 + .../vendor/bw_adapters.py | 165 + .../vendor/bw_gauss.py | 114 + .../vendor/bw_phases.py | 59 + .../vendor/bw_transport.py | 416 ++ .../vendor/clifford_exact.py | 149 + .../verify.py | 135 + 34 files changed, 8684 insertions(+) create mode 100644 research/staged544-native-quadratic-audit/.gitattributes create mode 100644 research/staged544-native-quadratic-audit/.gitignore create mode 100644 research/staged544-native-quadratic-audit/LEDGER.json create mode 100644 research/staged544-native-quadratic-audit/NOTICE-PR3945.md create mode 100644 research/staged544-native-quadratic-audit/PROOF.md create mode 100644 research/staged544-native-quadratic-audit/README.md create mode 100644 research/staged544-native-quadratic-audit/RECIPES.json create mode 100644 research/staged544-native-quadratic-audit/RELEASE-BINDING.json create mode 100644 research/staged544-native-quadratic-audit/RESULT.json create mode 100644 research/staged544-native-quadratic-audit/SOURCE-CREDITS.md create mode 100644 research/staged544-native-quadratic-audit/SOURCES.json create mode 100644 research/staged544-native-quadratic-audit/TASK.json create mode 100644 research/staged544-native-quadratic-audit/VALIDATION.json create mode 100644 research/staged544-native-quadratic-audit/VERIFY.json create mode 100644 research/staged544-native-quadratic-audit/exact_phase.py create mode 100644 research/staged544-native-quadratic-audit/frozen/EVIDENCE.json create mode 100644 research/staged544-native-quadratic-audit/frozen/FINAL-PACKAGE-MANIFEST.json create mode 100644 research/staged544-native-quadratic-audit/frozen/NATIVE-LINEAGE-NOTICE create mode 100644 research/staged544-native-quadratic-audit/frozen/NATIVE-RECEIPT-CORRECTED.json create mode 100644 research/staged544-native-quadratic-audit/frozen/NATIVE-base.json create mode 100644 research/staged544-native-quadratic-audit/frozen/NATIVE-extra.json create mode 100644 research/staged544-native-quadratic-audit/frozen/PINS.json create mode 100644 research/staged544-native-quadratic-audit/frozen/RELEASE.json create mode 100644 research/staged544-native-quadratic-audit/frozen/WORD-base.json.gz create mode 100644 research/staged544-native-quadratic-audit/frozen/WORD-extra.json.gz create mode 100644 research/staged544-native-quadratic-audit/frozen/old-WORD-base.json.gz create mode 100644 research/staged544-native-quadratic-audit/frozen/old-WORD-extra.json.gz create mode 100644 research/staged544-native-quadratic-audit/generate.py create mode 100644 research/staged544-native-quadratic-audit/vendor/bw_adapters.py create mode 100644 research/staged544-native-quadratic-audit/vendor/bw_gauss.py create mode 100644 research/staged544-native-quadratic-audit/vendor/bw_phases.py create mode 100644 research/staged544-native-quadratic-audit/vendor/bw_transport.py create mode 100644 research/staged544-native-quadratic-audit/vendor/clifford_exact.py create mode 100644 research/staged544-native-quadratic-audit/verify.py diff --git a/research/staged544-native-quadratic-audit/.gitattributes b/research/staged544-native-quadratic-audit/.gitattributes new file mode 100644 index 0000000000..173ce7b91c --- /dev/null +++ b/research/staged544-native-quadratic-audit/.gitattributes @@ -0,0 +1,4 @@ +frozen/* -text +vendor/* -text +NOTICE-PR3945.md -text +SOURCE-CREDITS.md -text diff --git a/research/staged544-native-quadratic-audit/.gitignore b/research/staged544-native-quadratic-audit/.gitignore new file mode 100644 index 0000000000..7a60b85e14 --- /dev/null +++ b/research/staged544-native-quadratic-audit/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pyc diff --git a/research/staged544-native-quadratic-audit/LEDGER.json b/research/staged544-native-quadratic-audit/LEDGER.json new file mode 100644 index 0000000000..97e4b38ded --- /dev/null +++ b/research/staged544-native-quadratic-audit/LEDGER.json @@ -0,0 +1,80 @@ +{ + "status": "LOCAL_NATIVE_PHASE_INTERFACES_ONLY", + "proved": [ + { + "item": "Changed cold terminal residual widths", + "old": 4, + "new": 5, + "helpers_per_provider": 26, + "evidence": "Exact source-derived coverage and all512column signed operator equality for every unique old/new interface." + }, + { + "item": "Actual changed native warp interfaces", + "per_provider": 5, + "binary_maps": 4, + "paid_recursive_rank": 0, + "evidence": "Both directions, old/new frames, all512columns; source lifting phase included." + }, + { + "item": "Record-only index shifts", + "per_provider": 47, + "evidence": "G,U,E,register unchanged; chronological insertion index differs." + }, + { + "item": "Clifford lift inverse correction", + "witness_G": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "character_mask": 256, + "flipped_columns": 256, + "evidence": "K_(G inverse) K_G = Z_256; correct adjoint recipe verified." + }, + { + "item": "Computational coverage", + "unique_interface_classes": 40, + "source_occurrences": 144, + "basis_columns": 20480, + "note": "Deduplicated byte-identical descriptors with exact source coverage map; all output coefficients checked, no random probes." + } + ], + "inherited_not_reproved": [ + { + "item": "Complete paid profile / literal owner capacity", + "source": "PR3969 6ff67539f1131a287eb9a9a98bf1e94a02eecba7", + "status": "Independent predecessor audit; not recomputed here" + }, + { + "item": "Arbitrary dirty whole-word free-operator cleanup", + "source": "PR3945 andPR3969 pinned words/receipts", + "status": "Local all-column equality composes linearly; whole723inputfreealgebra replay not repeated" + } + ], + "unknown_or_outside_scope": [ + { + "item": "All changed scalar frame-transition recipe classes and entire emitted program", + "cost": "unknown in this audit" + }, + { + "item": "Physical hosting/allocation/owner chronology beyond inherited finite owner audit", + "cost": "unknown inherited full model obligation" + }, + { + "item": "Uniform coefficient height, precision, stock and tape costs", + "cost": "unknown; no zero tariff assigned to monomial wrappers or Z correction" + }, + { + "item": "All-size compiler, common mutable labels, outer/supplier, analytic and BIT H1-H5 admission", + "cost": "inherited conditional obligations, not admitted by this finite certificate" + } + ], + "selected_frontier_changed": false, + "new_kappa_claim": false +} diff --git a/research/staged544-native-quadratic-audit/NOTICE-PR3945.md b/research/staged544-native-quadratic-audit/NOTICE-PR3945.md new file mode 100644 index 0000000000..6dcffa5dfb --- /dev/null +++ b/research/staged544-native-quadratic-audit/NOTICE-PR3945.md @@ -0,0 +1,20 @@ +# Attribution and scope + +New terminal-width/frame construction, idle-gap absorption proof, source-guarded recipe, independent finite checks and integration: Dugongue with substantial OpenAI Codex assistance, including three parallel Codex agents. Apache-2.0. AI implementation separation is not independent human review. + +Retain the following predecessor credit and all native/vendor notices: + +- dataisfire, PR3734: actual staged544 supplier and retained full source closure. zxv, PR3682: staged pair. Ross Richardson, PR3605: staged entrance, cleanup and residual checks. +- Erwan Secousses / ChaloupeMusic, PR3815, with retained PR3638 lineage: attained T360 owner clock and fill. The new allocation changes widths and offsets on that placement; it does not invent the source clock. +- hexapode, PR3802 and PR3875: previous complete endpoint combination and refinement. Dugongue, PR3857: prior general proof/evaluator work; PR3929: transported-frame compiler and concrete nonimproving example. +- Sagar Thakrar, PR3687: audit_core.py, retained byte for byte. Its header explicitly credits Arham Tahir's coupled-carrier audit, which it reimplements. roger-sato, PR3693: whole-word audit adapter in the inherited closure. Retained exact rational-price evaluator and source notices are unchanged. +- Jeremy Kothe: frame/preload machinery and PR2833 native rewrite; Lyy-iiis, PR2857; Dugongue, PR2863; philippeVV, PR2853, and all retained provider, owner, native/admission and outer contributors. +- Cinna Davis (@1337isnot1337), PR2226, with OpenAI Codex assistance: native exact Clifford/operator machinery. icekylinx, PR514/433, and retained native ancestry. +- DreamingOfClouds with Claude Opus 5.5: inherited wrapper/outer machinery; chafreaky, PR458, and its retained lineage. +- Tekalign (@tekuuu): sparse native acceleration; retain SPARSE-NOTICE, SPARSE-PROOF, Rohan Arun and all earlier authors/PRs listed by those files. The accelerator changes replay representation, not the certified word. + +The original contributor names already present in upstream sources are attribution. They are not new identification of the submitting GitHub account. All original licenses and source headers remain in place. No broad mathematical novelty, independent human approval, unconditional all-size multiplication bound or fresh Lean/kernel certification is claimed. + +Adjacent reviews were compared and credited: Chris R / Clear1nsight PR3883/3936, with substantial OpenAI Codex assistance, supplies the completed T385 execution/COPY-contract audit precedent; retain its ai-nanachi PR3647, Sagar Thakrar PR3700 and PR2809 physical-caller lineage. These are scoped comparison sources, not a new admission receipt for our changed T360 words. + +Also compare and credit Chris R / Clear1nsight PR3941 for its distinct neutral-first enumeration/middle-cut reduction, following PR3886/3734, Jeremy Kothe PR2957/2979 and Dugongue PR3863/ranked-pair/MathProof predecessors. Rohan Arun's PR3939 bit-pooling draft and its explicitly conditional PR3934 stack are acknowledged as higher draft endpoints on a different route; their data and extra assumptions are not imported into this supplier. diff --git a/research/staged544-native-quadratic-audit/PROOF.md b/research/staged544-native-quadratic-audit/PROOF.md new file mode 100644 index 0000000000..a194ca7dbc --- /dev/null +++ b/research/staged544-native-quadratic-audit/PROOF.md @@ -0,0 +1,132 @@ +# Exact quadratic-phase interface certificate + +Prepared by Chris R / Clear1nsight with substantial OpenAI Codex assistance. +Apache-2.0. This is an independent finite audit of Dugongue's PR3945, not a +claim that its native checker is wrong or a new multiplication theorem. + +## Domain and conventions + +The logical coordinate space has dimension 512, indexed by `x in F_2^9`. +Write `X^u |x> = |x+u>` and `Z^v |x> = (-1)^(v dot x)|x>`. +Products act right to left. Every scalar coefficient below is an exact Gaussian +integer divided by an explicit power of two. The verifier uses Python integers, +not floating point, sampled states, the predecessor tableau compiler, or numpy. + +For invertible binary columns G, set Q_G = I + G^(-T)G^(-1) over F_2. +Its specified Z4 quadratic refinement is + + q_G(y) = sum_i (Q_G)_ii y_i + 2 sum_(i = i^(q_G(Gx)) |Gx>. + +The source's canonical frame T_U is K_B C_[r] K_B^adjoint, where B completes +the given ordered basis U by successive coordinate vectors, r=dim U, and +C_j=((1+i)I+(1-i)X_j)/2. Its inverse conjugates the Gaussian coefficients. +The local warp is T_E K_G^(sign) T_U^adjoint. The cold terminal residual is +T_E, since its entrance U is empty. These definitions preserve global phase. + +The new evaluator finds inverse columns by exhaustive permutation inversion, +constructs the quadratic form from their binary dot products, and propagates +sparse Gaussian numerator dictionaries one coordinate at a time. It independently +decodes a serialized monomial's binary rows, translation, Z4 linear coefficients, +symmetric quadratic rows and global phase. A compiler recipe is R, C_[rank], L +in chronological order. Reference recipes are generated by the frozen source +compiler; the verifier never imports that compiler or its dependent checkers. +A shared mathematical convention is unavoidable and is stated above; no claim +of independently deriving the construction's physical model is made. + +## Complete finite interface equality + +Both frozen providers have exactly 26 helper terminal extensions from width 4 +to width 5; every one has the same empty entrance in old and new words. Their +first helper is 277: + + old [388,75,41,26] + new [388,74,40,26,1] + +Exactly 5 of the 72 warp records per provider change their entrance/exit frame; +the binary map and register identity are unchanged. Another 47 records change +only their chronological index. We compare both signs of each genuinely changed +warp, at old and new interfaces. We do not confuse these 47 index shifts with +new native operators. + +The 144 source occurrences deduplicate to 40 exact descriptors: 24 residuals +and 16 signed warp interfaces. Each descriptor includes the actual ordered +frames and, for a warp, its binary columns and sign. Coverage is reconstructed +from the four frozen words by verify.py, independently of the recipe generator. +Every descriptor is evaluated on all 512 input basis columns, comparing every +output coefficient after exact dyadic normalization: 20,480 column equalities. +RESULT.json commits a digest of the normalized complete action of each class. + +Equality on a basis proves equality for arbitrary complex input, hence for any +arbitrary dirty coordinate state at this local interface, including relative +and global phases. It also tensors with untouched registers. This does not +by itself reprove the whole emitted program's chronological composition, +all dirty-buffer restoration, or the supplier contract. The old terminal +recipes are calibration controls; they are not proposed substitutes for the +promoted width-5 interfaces. All signed warps have zero recursive rank; the +residual recipe ranks are exactly 4 and 5 respectively. Zero recursive rank +does not mean zero physical or uniform precision cost. + +## Why the binary inverse is insufficient: the lift cocycle + +The binary symplectic action of K_G on Pauli labels (x,z) is + + M(G) = [[G, 0], [G + G^(-T), G^(-T)]]. + +Direct multiplication gives M(H)M(G)=M(HG). This does not determine the signed +lift. The exact phase difference + + d_(G,H)(x) = q_G(Gx) + q_H(HGx) - q_(HG)(HGx) mod 4 + +is an even linear character, 2 ell dot x. One way to see this is to use +q_Q(a+b)-q_Q(a)-q_Q(b)=2 a^T Q b mod 4, noting that all binary operations +inside q use XOR. The composed quadratic polarizations cancel under the +identity for M. The parity cancels as well; since d(0)=0, the remaining even +additive function is exactly a binary linear character. Consequently + + K_H K_G = K_(HG) Z_ell. + +The certificate calculates ell from the nine coordinate inputs and then +checks this identity on every one of the 512 inputs for each ordered pair of +the four actual changed binary maps. These 16 algebraic pair controls are not +asserted to occur adjacently in either word. + +For an actual map in the changed interfaces, + + G = [1,2,8,32,44,128,59,66,489], + G^(-1) = [1,2,28,4,79,8,130,32,431], + +our exact certificate finds + + K_(G^(-1)) K_G = Z_256. + +This is a relative sign on exactly 256 of the 512 basis coordinates, not a +removable global phase. In particular the input x=256 is sent to its negative +by this binary-identity product. The phase-correct inverse is + + K_G^adjoint = Z_256 K_(G^(-1)). + +The source uses the correct adjoint; it passes the signed audit. This witness +rejects the tempting implementation shortcut of substituting the canonical +lift of the binary inverse. It is a precise source-bound warning, not a +counterexample to the author's construction. A physical implementation of the +Z correction needs its own paid contract; this audit supplies an exact local +operator identity and assigns no free implementation tariff. + +## Failure controls and limits + +Fourteen controls reject wrong residual left/right global phases, warp global, +linear and quadratic phase changes, translation, signed inverse, terminal, +singular binary map, wrong charged residual rank, swapped residual wrappers, +an omitted descriptor and a relabelled provider. A global-phase mutant preserves +all 512 permutation columns while failing the exact phase comparison. Every +serialized monomial is also composed with its independently decoded inverse +on every input column. Normal and optimized Python must give the same result. + +The frozen author NATIVE receipts bind the literal changed word hashes and +native source hashes and report all five native stages passed. Their status +is authenticated historical evidence. Fresh equality here covers the stated +40 classes only. Full changed scalar frame-transition recipes, the complete +CLIFFORD-RECIPES serialization, whole emitted program, ordinary/outer release +replay, and all-size or uniform resource admission remain outside this proof. +See LEDGER.json and RELEASE-BINDING.json for the exact inherited/unknown split. diff --git a/research/staged544-native-quadratic-audit/README.md b/research/staged544-native-quadratic-audit/README.md new file mode 100644 index 0000000000..cd92a14c73 --- /dev/null +++ b/research/staged544-native-quadratic-audit/README.md @@ -0,0 +1,105 @@ +# Native quadratic-phase audit of the staged544 terminal promotion + +This independently corroborates the signed native action at every promoted +terminal residual and every genuinely changed warp interface in the two +PR3945 providers. It also exhibits an actual binary inverse whose canonical +Clifford lift differs from the correct adjoint by a nonconstant sign character. +The result is a finite local operator certificate; it makes no new κ claim. + +**Result:** 40 unique interfaces cover 144 source occurrences, checked on all +20,480 basis columns with every Gaussian coefficient and global phase retained. +Each provider contributes 26 cold terminal promotions, old and new residuals, +and 5 changed warp interfaces in both directions, old and new. The other 47 +changed warp records only shift chronological indices. All equalities pass. + +The mathematical pairing is framed arithmetic with finite symplectic geometry +and Z4 quadratic refinements. For the actual map +`G=[1,2,8,32,44,128,59,66,489]`, the canonical lift obeys +`K_(G inverse) K_G = Z_256`: a sign change on 256 of 512 basis coordinates. +Thus replacing a signed adjoint with the canonical lift of the binary inverse +would be wrong. The source uses the correct adjoint and passes. This is a +phase-discipline witness, not an author bug. The correction is a nonconstant +Pauli character; it is not merely a global scalar phase. + +## Sources and independence + +Scientific input: [Dugongue PR3945](https://github.com/CrocSwap/integer-mult-bounds/pull/3945), +head `91f81d131252db704f945891da1ea54e29d46b8b`. The four exact frozen words and +native source/receipt hashes are authenticated by SOURCES.json. Source words +are not edited. The nearest predecessor is the independent owner audit +[PR3969](https://github.com/CrocSwap/integer-mult-bounds/pull/3969), head +`6ff67539f1131a287eb9a9a98bf1e94a02eecba7`, which explicitly excluded phases. + +`generate.py` optionally uses the byte-pinned predecessor compiler to generate +RECIPES.json. `verify.py` and `exact_phase.py` execute no predecessor code. +The new standard-library verifier independently inverts binary permutations, +constructs quadratic forms, propagates scalar Gaussian integers and decodes +the serialized recipe. It checks coverage directly against both old/new words. +The all-column checks prove local equality on arbitrary complex dirty state; +whole-word dirty restoration and physical admission remain inherited obligations. + +Fresh frozen release crosslinks connect these exact words, the author native +recipe inventories, the final package manifest and the reported release receipt. +All crosslink files are included and checked. This does not replay the full +archive or complete native recipe payload. The retained complete recipe hashes +are recorded separately from our newly generated subset. The author evidence +explicitly discloses corrected frozen-spec bindings and reused successful +prefixes; this package does not describe that history as an uninterrupted run. + +## Reproduce + +Python 3.12, standard library only; no network or Git needed for the standalone +scientific verifier: + +```sh +python3 -B research/staged544-native-quadratic-audit/verify.py +python3 -O -B research/staged544-native-quadratic-audit/verify.py +``` + +The registered repository check is: + +```sh +python3 scripts/research_package.py --package research/staged544-native-quadratic-audit +``` + +The verifier is read-only. To obtain a new comparison receipt, pass `--emit` +with a path outside the package. Optional source-compiler recipe regeneration: + +```sh +python3 -B research/staged544-native-quadratic-audit/generate.py /tmp/phase-recipes.json +``` + +Compare that JSON with RECIPES.json. Generation is not the independent check. +Fourteen semantic mutations reject, including phases invisible to binary-map +checks; all serialized monomials also pass exact inverse-column controls. +Both ordinary and optimized independent verifier runs are registered. + +## Costs, scope and attribution + +LEDGER.json lists proved, inherited and unknown obligations. Terminal recursive +ranks are 4 before and 5 after promotion; changed native warps have rank zero. +These statements assign no zero physical, precision, stock or tape tariff to +monomial wrappers or to the corrective sign. The complete owner bill is inherited +from PR3969. All changed scalar frame-transition classes, complete emitted +program, full release and uniform supplier conditions are outside this audit. + +Credit: Dugongue's terminal promotion and native frame work (PR3945/3929), +dataisfire's literal providers (PR3734), Cinna Davis's PR2226 dirty-borrowing +operators, Tekalign's native replay, and the retained native compiler and phase +lineage including icekylinx, DreamingOfClouds and upstream contributors. The +source audit lineage includes Sagar Thakrar, roger-sato and Arham Tahir. Exact +retained notices are in SOURCE-CREDITS.md, NOTICE-PR3945.md and +frozen/NATIVE-LINEAGE-NOTICE. Chris R / Clear1nsight prepared this independent +audit with substantial OpenAI Codex assistance. Root-agent coordination supplied +an independently authenticated release crosslink inspection; this verifier +rechecks those links from the included raw bytes. Apache-2.0. + +## Open next questions + +Regenerate the complete source-bound canonical word and native recipe payload, +match the retained complete recipe hashes, and extend independent exact action +to every changed scalar frame-transition class and complete emitted program. +This would connect the local equality here to the remaining native admission +boundary. It requires explicit coverage of all emitted interfaces and the +retained uniform model obligations; a fresh subset hash or owner bill alone +cannot discharge it. TASK.json records the bounded first step and stop rule. diff --git a/research/staged544-native-quadratic-audit/RECIPES.json b/research/staged544-native-quadratic-audit/RECIPES.json new file mode 100644 index 0000000000..a24e14593f --- /dev/null +++ b/research/staged544-native-quadratic-audit/RECIPES.json @@ -0,0 +1,4236 @@ +{ + "items": [ + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "entrance": [ + 257, + 161, + 70, + 19, + 13 + ], + "terminal": [ + 260, + 132, + 75, + 42, + 25 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 265, + 202, + 396, + 184, + 128, + 136, + 16, + 64, + 384 + ], + "offset": 426, + "quadratic_rows": [ + 264, + 200, + 392, + 119, + 184, + 152, + 202, + 246, + 5 + ], + "linear_Z4": [ + 0, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0 + ], + "phase": 1 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 42, + "register": 1, + "version": "new", + "sign": 1 + }, + { + "provider": "base", + "kind": "warp", + "index": 44, + "register": 6, + "version": "new", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 42, + "register": 1, + "version": "new", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 44, + "register": 6, + "version": "new", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "entrance": [ + 260, + 132, + 75, + 42, + 25 + ], + "terminal": [ + 257, + 161, + 70, + 19, + 13 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 289, + 162, + 308, + 48, + 64, + 104, + 128, + 16, + 272 + ], + "offset": 330, + "quadratic_rows": [ + 288, + 160, + 304, + 96, + 20, + 207, + 104, + 162, + 5 + ], + "linear_Z4": [ + 0, + 2, + 0, + 0, + 3, + 0, + 3, + 1, + 0 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 42, + "register": 1, + "version": "new", + "sign": -1 + }, + { + "provider": "base", + "kind": "warp", + "index": 44, + "register": 6, + "version": "new", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 42, + "register": 1, + "version": "new", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 44, + "register": 6, + "version": "new", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "entrance": [ + 260, + 132, + 75, + 51 + ], + "terminal": [ + 416, + 70, + 19, + 13 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 162, + 292, + 32, + 64, + 328, + 128, + 304, + 256 + ], + "offset": 75, + "quadratic_rows": [ + 0, + 160, + 288, + 320, + 288, + 182, + 328, + 162, + 348 + ], + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 1, + 3, + 1, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 42, + "register": 1, + "version": "old", + "sign": -1 + }, + { + "provider": "base", + "kind": "warp", + "index": 44, + "register": 6, + "version": "old", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 42, + "register": 1, + "version": "old", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 44, + "register": 6, + "version": "old", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "entrance": [ + 416, + 70, + 19, + 13 + ], + "terminal": [ + 260, + 132, + 75, + 51 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 74, + 268, + 304, + 392, + 8, + 16, + 64, + 256 + ], + "offset": 183, + "quadratic_rows": [ + 0, + 72, + 264, + 206, + 304, + 272, + 74, + 264, + 436 + ], + "linear_Z4": [ + 2, + 2, + 2, + 1, + 3, + 0, + 1, + 2, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 42, + "register": 1, + "version": "old", + "sign": 1 + }, + { + "provider": "base", + "kind": "warp", + "index": 44, + "register": 6, + "version": "old", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 42, + "register": 1, + "version": "old", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 44, + "register": 6, + "version": "old", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "entrance": [ + 259, + 131, + 75, + 42, + 25 + ], + "terminal": [ + 260, + 132, + 75, + 42, + 25 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 385, + 386, + 388, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "quadratic_rows": [ + 384, + 384, + 384, + 0, + 0, + 0, + 0, + 391, + 391 + ], + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 43, + "register": 4, + "version": "new", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 43, + "register": 4, + "version": "new", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "entrance": [ + 259, + 131, + 75, + 51 + ], + "terminal": [ + 260, + 132, + 75, + 51 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 385, + 386, + 388, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "quadratic_rows": [ + 384, + 384, + 384, + 0, + 0, + 0, + 0, + 391, + 391 + ], + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 43, + "register": 4, + "version": "old", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 43, + "register": 4, + "version": "old", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "entrance": [ + 260, + 132, + 75, + 42, + 25 + ], + "terminal": [ + 259, + 131, + 75, + 42, + 25 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 385, + 386, + 388, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "quadratic_rows": [ + 384, + 384, + 384, + 0, + 0, + 0, + 0, + 391, + 391 + ], + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 43, + "register": 4, + "version": "new", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 43, + "register": 4, + "version": "new", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "entrance": [ + 260, + 132, + 75, + 51 + ], + "terminal": [ + 259, + 131, + 75, + 51 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 385, + 386, + 388, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "quadratic_rows": [ + 384, + 384, + 384, + 0, + 0, + 0, + 0, + 391, + 391 + ], + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 43, + "register": 4, + "version": "old", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 43, + "register": 4, + "version": "old", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "entrance": [ + 266, + 138, + 74, + 30, + 1 + ], + "terminal": [ + 426, + 96, + 24, + 6, + 1 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 67, + 16, + 468, + 65, + 217, + 128, + 417, + 385 + ], + "offset": 458, + "quadratic_rows": [ + 251, + 65, + 464, + 209, + 269, + 385, + 335, + 301, + 244 + ], + "linear_Z4": [ + 1, + 2, + 2, + 0, + 2, + 2, + 3, + 2, + 2 + ], + "phase": 3 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 4, + "register": 333, + "version": "new", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 4, + "register": 333, + "version": "new", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "entrance": [ + 266, + 138, + 75, + 30 + ], + "terminal": [ + 427, + 96, + 24, + 6 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 449, + 66, + 16, + 468, + 64, + 216, + 128, + 416, + 384 + ], + "offset": 120, + "quadratic_rows": [ + 448, + 64, + 464, + 208, + 268, + 384, + 143, + 237, + 309 + ], + "linear_Z4": [ + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 3, + 1 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 4, + "register": 333, + "version": "old", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 4, + "register": 333, + "version": "old", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "entrance": [ + 426, + 96, + 24, + 6, + 1 + ], + "terminal": [ + 266, + 138, + 74, + 30, + 1 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 18, + 284, + 116, + 4, + 384, + 17, + 64, + 321 + ], + "offset": 138, + "quadratic_rows": [ + 336, + 16, + 360, + 276, + 379, + 84, + 309, + 256, + 221 + ], + "linear_Z4": [ + 2, + 2, + 2, + 0, + 3, + 2, + 2, + 0, + 0 + ], + "phase": 3 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 4, + "register": 333, + "version": "new", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 4, + "register": 333, + "version": "new", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "entrance": [ + 427, + 96, + 24, + 6 + ], + "terminal": [ + 266, + 138, + 75, + 30 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 273, + 18, + 284, + 116, + 4, + 384, + 16, + 64, + 320 + ], + "offset": 459, + "quadratic_rows": [ + 272, + 16, + 360, + 276, + 107, + 84, + 308, + 256, + 461 + ], + "linear_Z4": [ + 2, + 2, + 2, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 4, + "register": 333, + "version": "old", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 4, + "register": 333, + "version": "old", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "entrance": [ + 384, + 74, + 44, + 30, + 1 + ], + "terminal": [ + 426, + 96, + 24, + 6, + 1 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 258, + 16, + 340, + 32, + 376, + 64, + 192, + 320 + ], + "offset": 466, + "quadratic_rows": [ + 0, + 256, + 336, + 368, + 44, + 376, + 428, + 64, + 366 + ], + "linear_Z4": [ + 0, + 2, + 0, + 0, + 0, + 3, + 0, + 2, + 1 + ], + "phase": 3 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 5, + "register": 317, + "version": "new", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 5, + "register": 317, + "version": "new", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "entrance": [ + 385, + 74, + 44, + 30 + ], + "terminal": [ + 427, + 96, + 24, + 6 + ], + "sign": 1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 65, + 258, + 16, + 340, + 32, + 376, + 64, + 192, + 320 + ], + "offset": 120, + "quadratic_rows": [ + 64, + 256, + 336, + 368, + 44, + 376, + 493, + 64, + 366 + ], + "linear_Z4": [ + 0, + 0, + 2, + 2, + 0, + 1, + 3, + 0, + 3 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 5, + "register": 317, + "version": "old", + "sign": 1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 5, + "register": 317, + "version": "old", + "sign": 1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "entrance": [ + 426, + 96, + 24, + 6, + 1 + ], + "terminal": [ + 384, + 74, + 44, + 30, + 1 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 1, + 322, + 268, + 308, + 4, + 16, + 64, + 192, + 320 + ], + "offset": 102, + "quadratic_rows": [ + 0, + 320, + 56, + 260, + 308, + 276, + 194, + 64, + 314 + ], + "linear_Z4": [ + 0, + 2, + 2, + 2, + 3, + 0, + 3, + 0, + 1 + ], + "phase": 0 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 5, + "register": 317, + "version": "new", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 5, + "register": 317, + "version": "new", + "sign": -1 + } + ] + }, + { + "kind": "warp", + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "entrance": [ + 427, + 96, + 24, + 6 + ], + "terminal": [ + 385, + 74, + 44, + 30 + ], + "sign": -1, + "recipe": { + "rank": 0, + "left": { + "matrix_rows": [ + 65, + 322, + 268, + 308, + 4, + 16, + 64, + 192, + 320 + ], + "offset": 487, + "quadratic_rows": [ + 64, + 320, + 56, + 260, + 308, + 276, + 131, + 64, + 314 + ], + "linear_Z4": [ + 2, + 2, + 2, + 2, + 3, + 0, + 2, + 2, + 1 + ], + "phase": 3 + }, + "right": null + }, + "coverage": [ + { + "provider": "base", + "kind": "warp", + "index": 5, + "register": 317, + "version": "old", + "sign": -1 + }, + { + "provider": "extra", + "kind": "warp", + "index": 5, + "register": 317, + "version": "old", + "sign": -1 + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 257, + 137, + 67, + 37, + 22 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 46, + 85, + 147, + 265, + 22, + 5, + 3, + 9, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 10, + 12, + 6, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 270, + 389, + 387, + 489, + 118, + 481, + 82, + 52, + 136 + ], + "offset": 31, + "quadratic_rows": [ + 15, + 171, + 205, + 103, + 0, + 106, + 108, + 6, + 0 + ], + "linear_Z4": [ + 1, + 1, + 1, + 2, + 2, + 1, + 1, + 0, + 2 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 369, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 371, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 373, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 369, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 371, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 373, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 257, + 161, + 70, + 19, + 13 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 62, + 69, + 139, + 13, + 3, + 273, + 6, + 17, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 18, + 20, + 16, + 14, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 294, + 389, + 387, + 477, + 441, + 409, + 82, + 76, + 160 + ], + "offset": 31, + "quadratic_rows": [ + 506, + 245, + 310, + 441, + 447, + 31, + 387, + 475, + 477 + ], + "linear_Z4": [ + 0, + 2, + 1, + 1, + 1, + 2, + 2, + 3, + 1 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 337, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 339, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 337, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 339, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 258, + 130, + 67, + 22, + 8 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 35, + 85, + 134, + 8, + 6, + 256, + 3, + 18, + 2 + ], + "offset": 0, + "quadratic_rows": [ + 20, + 18, + 17, + 0, + 23, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 2, + 2, + 3, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 467, + 389, + 470, + 8, + 338, + 65, + 466, + 20, + 32 + ], + "offset": 13, + "quadratic_rows": [ + 22, + 135, + 67, + 0, + 129, + 0, + 132, + 210, + 0 + ], + "linear_Z4": [ + 0, + 3, + 0, + 2, + 2, + 0, + 2, + 1, + 2 + ], + "phase": 3 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 323, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 323, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 259, + 131, + 75, + 42, + 25 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 58, + 81, + 128, + 268, + 13, + 6, + 7, + 19, + 3 + ], + "offset": 0, + "quadratic_rows": [ + 10, + 9, + 4, + 19, + 8, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 50, + 49, + 8, + 441, + 179, + 465, + 482, + 4, + 120 + ], + "offset": 27, + "quadratic_rows": [ + 235, + 353, + 0, + 449, + 176, + 179, + 11, + 441, + 138 + ], + "linear_Z4": [ + 1, + 2, + 0, + 0, + 3, + 3, + 2, + 1, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 385, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 387, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 385, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 387, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 259, + 131, + 75, + 51, + 7 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 63, + 95, + 3, + 133, + 265, + 9, + 5, + 17, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 18, + 1, + 4, + 8, + 1, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 3, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 415, + 7, + 11, + 19, + 131, + 485, + 486, + 72, + 48 + ], + "offset": 18, + "quadratic_rows": [ + 231, + 231, + 415, + 468, + 428, + 19, + 11, + 415, + 156 + ], + "linear_Z4": [ + 1, + 1, + 3, + 2, + 2, + 2, + 2, + 3, + 0 + ], + "phase": 2 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 389, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 394, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 389, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 394, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 262, + 134, + 102, + 22, + 8 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 32, + 92, + 156, + 2, + 5, + 265, + 9, + 17, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 20, + 0, + 1, + 8, + 1, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 432, + 8, + 22, + 38, + 134, + 1, + 466, + 468, + 96 + ], + "offset": 23, + "quadratic_rows": [ + 0, + 358, + 358, + 0, + 432, + 470, + 38, + 432, + 182 + ], + "linear_Z4": [ + 0, + 3, + 3, + 2, + 1, + 0, + 2, + 1, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 353, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 355, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 353, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 355, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 262, + 134, + 102, + 30, + 1 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 1, + 60, + 92, + 134, + 6, + 266, + 10, + 18, + 2 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 18, + 4, + 8, + 2, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 1, + 424, + 14, + 38, + 134, + 466, + 468, + 24, + 96 + ], + "offset": 17, + "quadratic_rows": [ + 0, + 382, + 382, + 438, + 14, + 462, + 38, + 424, + 174 + ], + "linear_Z4": [ + 2, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 0 + ], + "phase": 2 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 357, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 362, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 357, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 362, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 266, + 138, + 74, + 30, + 1 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 1, + 60, + 70, + 156, + 6, + 256, + 10, + 18, + 2 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 24, + 4, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 1, + 452, + 14, + 74, + 138, + 466, + 20, + 472, + 32 + ], + "offset": 27, + "quadratic_rows": [ + 0, + 286, + 474, + 286, + 14, + 0, + 452, + 452, + 206 + ], + "linear_Z4": [ + 2, + 3, + 0, + 3, + 2, + 0, + 1, + 1, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 330, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 330, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 266, + 138, + 75, + 47, + 30 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 36, + 90, + 137, + 282, + 14, + 7, + 3, + 18, + 2 + ], + "offset": 0, + "quadratic_rows": [ + 12, + 24, + 9, + 15, + 2, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 84, + 506, + 81, + 46, + 138, + 97, + 498, + 52, + 504 + ], + "offset": 21, + "quadratic_rows": [ + 49, + 174, + 74, + 174, + 465, + 427, + 468, + 506, + 240 + ], + "linear_Z4": [ + 3, + 1, + 0, + 1, + 1, + 1, + 1, + 3, + 0 + ], + "phase": 3 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 325, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 325, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 273, + 145, + 85, + 51, + 8 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 54, + 67, + 133, + 8, + 278, + 3, + 5, + 17, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 17, + 2, + 4, + 0, + 1, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 3, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 390, + 19, + 21, + 8, + 145, + 481, + 34, + 68, + 496 + ], + "offset": 24, + "quadratic_rows": [ + 375, + 437, + 467, + 0, + 375, + 19, + 21, + 390, + 151 + ], + "linear_Z4": [ + 1, + 2, + 2, + 2, + 1, + 2, + 2, + 3, + 0 + ], + "phase": 2 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 293, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 298, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 293, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 298, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 384, + 131, + 75, + 51 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 31, + 47, + 64, + 131, + 261, + 5, + 3, + 1, + 8 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 2, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 411, + 11, + 19, + 131, + 481, + 482, + 4, + 72, + 48 + ], + "offset": 9, + "quadratic_rows": [ + 224, + 224, + 0, + 464, + 424, + 19, + 11, + 411, + 152 + ], + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 1, + 0 + ], + "phase": 2 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 385, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 387, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 389, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 394, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 385, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 387, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 389, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 394, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 384, + 134, + 120, + 30 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 16, + 42, + 74, + 133, + 5, + 262, + 6, + 1, + 8 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 2, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 456, + 118, + 56, + 134, + 1, + 466, + 468, + 24, + 96 + ], + "offset": 10, + "quadratic_rows": [ + 0, + 288, + 288, + 480, + 64, + 14, + 408, + 456, + 206 + ], + "linear_Z4": [ + 0, + 2, + 2, + 2, + 2, + 0, + 2, + 3, + 2 + ], + "phase": 2 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 353, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 355, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 357, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 362, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 353, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 355, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 357, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 362, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 384, + 193, + 75, + 30 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 26, + 37, + 70, + 133, + 6, + 256, + 10, + 1, + 8 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 2, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 74, + 389, + 14, + 193, + 65, + 466, + 20, + 472, + 32 + ], + "offset": 11, + "quadratic_rows": [ + 260, + 404, + 411, + 404, + 14, + 0, + 128, + 462, + 143 + ], + "linear_Z4": [ + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 3, + 0 + ], + "phase": 3 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 323, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 325, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 330, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 323, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 325, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 330, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 384, + 196, + 85, + 51 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 22, + 35, + 73, + 128, + 262, + 3, + 9, + 4, + 8 + ], + "offset": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 390, + 19, + 81, + 196, + 481, + 34, + 68, + 8, + 496 + ], + "offset": 13, + "quadratic_rows": [ + 418, + 437, + 258, + 0, + 418, + 19, + 128, + 467, + 151 + ], + "linear_Z4": [ + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 3, + 0 + ], + "phase": 3 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 293, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 298, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 293, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 298, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 384, + 74, + 44, + 30, + 1 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 1, + 36, + 66, + 136, + 14, + 12, + 10, + 272, + 16 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 8, + 16, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 1, + 100, + 98, + 8, + 128, + 82, + 52, + 120, + 384 + ], + "offset": 1, + "quadratic_rows": [ + 0, + 50, + 84, + 120, + 14, + 106, + 108, + 384, + 128 + ], + "linear_Z4": [ + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 2 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 314, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 314, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 385, + 66, + 36, + 22, + 8 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 33, + 84, + 146, + 8, + 22, + 4, + 2, + 257, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 385, + 100, + 98, + 8, + 118, + 257, + 82, + 52, + 384 + ], + "offset": 31, + "quadratic_rows": [ + 129, + 68, + 34, + 0, + 0, + 100, + 98, + 129, + 0 + ], + "linear_Z4": [ + 3, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 2 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 307, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 309, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 307, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 309, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 385, + 74, + 44, + 30 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 17, + 36, + 66, + 136, + 14, + 12, + 10, + 257, + 1 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 8, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 385, + 100, + 98, + 8, + 257, + 82, + 52, + 120, + 384 + ], + "offset": 1, + "quadratic_rows": [ + 129, + 50, + 84, + 120, + 14, + 106, + 108, + 129, + 0 + ], + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 1, + 1, + 3, + 2 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 307, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 309, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 314, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 307, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 309, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 314, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 388, + 67, + 33, + 18, + 8 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 34, + 81, + 132, + 8, + 18, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "quadratic_rows": [ + 18, + 17, + 0, + 0, + 19, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 50, + 49, + 388, + 8, + 66, + 97, + 82, + 260, + 384 + ], + "offset": 15, + "quadratic_rows": [ + 81, + 32, + 132, + 0, + 65, + 66, + 49, + 132, + 0 + ], + "linear_Z4": [ + 3, + 0, + 3, + 2, + 0, + 0, + 0, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 282, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 282, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 388, + 74, + 40, + 26, + 1 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 1, + 48, + 68, + 152, + 26, + 8, + 10, + 260, + 4 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 18, + 0, + 8, + 2, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 3, + 2, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 1, + 80, + 388, + 8, + 58, + 82, + 260, + 120, + 384 + ], + "offset": 29, + "quadratic_rows": [ + 0, + 106, + 132, + 66, + 80, + 98, + 58, + 132, + 0 + ], + "linear_Z4": [ + 2, + 3, + 3, + 2, + 3, + 1, + 0, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 277, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 277, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 388, + 75, + 41, + 26 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 18, + 33, + 68, + 136, + 10, + 9, + 11, + 260, + 4 + ], + "offset": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 8, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 50, + 49, + 388, + 8, + 97, + 82, + 260, + 120, + 384 + ], + "offset": 4, + "quadratic_rows": [ + 81, + 98, + 132, + 120, + 57, + 58, + 11, + 132, + 0 + ], + "linear_Z4": [ + 1, + 1, + 3, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "phase": 1 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 277, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 282, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 277, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 282, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 392, + 67, + 35, + 16, + 6 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 48, + 82, + 2, + 132, + 8, + 19, + 3, + 260, + 4 + ], + "offset": 0, + "quadratic_rows": [ + 17, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 96, + 2, + 392, + 16, + 39, + 97, + 102, + 264, + 384 + ], + "offset": 30, + "quadratic_rows": [ + 71, + 65, + 69, + 136, + 0, + 96, + 39, + 136, + 0 + ], + "linear_Z4": [ + 3, + 2, + 1, + 3, + 2, + 3, + 0, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 378, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 378, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 392, + 67, + 37, + 22 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 18, + 41, + 75, + 132, + 10, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 6, + 5, + 392, + 118, + 97, + 82, + 52, + 264, + 384 + ], + "offset": 15, + "quadratic_rows": [ + 101, + 32, + 69, + 136, + 0, + 3, + 5, + 136, + 0 + ], + "linear_Z4": [ + 3, + 2, + 1, + 3, + 2, + 2, + 2, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 369, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 371, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 373, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 378, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 369, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 371, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 373, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 378, + "version": "old" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 416, + 70, + 18, + 12, + 1 + ], + "recipe": { + "rank": 5, + "left": { + "matrix_rows": [ + 1, + 36, + 74, + 12, + 2, + 144, + 6, + 272, + 16 + ], + "offset": 0, + "quadratic_rows": [ + 0, + 12, + 10, + 14, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 1, + 28, + 26, + 68, + 416, + 82, + 76, + 288, + 384 + ], + "offset": 23, + "quadratic_rows": [ + 0, + 74, + 16, + 66, + 68, + 160, + 26, + 160, + 0 + ], + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 3, + 0, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 341, + "version": "new" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 346, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 341, + "version": "new" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 346, + "version": "new" + } + ] + }, + { + "kind": "residual", + "entrance": [], + "terminal": [ + 416, + 70, + 19, + 13 + ], + "recipe": { + "rank": 4, + "left": { + "matrix_rows": [ + 22, + 33, + 71, + 5, + 3, + 136, + 2, + 264, + 8 + ], + "offset": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "phase": 0 + }, + "right": { + "matrix_rows": [ + 6, + 5, + 93, + 416, + 25, + 82, + 76, + 288, + 384 + ], + "offset": 15, + "quadratic_rows": [ + 64, + 86, + 22, + 0, + 6, + 160, + 3, + 160, + 0 + ], + "linear_Z4": [ + 2, + 3, + 1, + 2, + 2, + 3, + 2, + 3, + 2 + ], + "phase": 0 + } + }, + "coverage": [ + { + "provider": "base", + "kind": "terminal", + "helper": 337, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 339, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 341, + "version": "old" + }, + { + "provider": "base", + "kind": "terminal", + "helper": 346, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 337, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 339, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 341, + "version": "old" + }, + { + "provider": "extra", + "kind": "terminal", + "helper": 346, + "version": "old" + } + ] + } + ] +} diff --git a/research/staged544-native-quadratic-audit/RELEASE-BINDING.json b/research/staged544-native-quadratic-audit/RELEASE-BINDING.json new file mode 100644 index 0000000000..5c3b0b3c61 --- /dev/null +++ b/research/staged544-native-quadratic-audit/RELEASE-BINDING.json @@ -0,0 +1,23 @@ +{ + "status": "PASS_FROZEN_RELEASE_CROSSLINKS_ONLY", + "providers": { + "base": { + "word_sha256": "08e6c96fbe3dfec96cb8451b3867ef8c1a214109ecd1e5af7fcc28e0f05728d0", + "retained_complete_recipe_sha256": "bdd292a21746c584479060e1cacdf9e74c368f9007608f11c3e573e0a5c1fd7d", + "fresh_subset_recipe_scope": "40 interface classes regenerated separately; not a byte replay of complete retained recipe payload" + }, + "extra": { + "word_sha256": "d83c2ec9cecc0ad092d34ea4080b28a4fd7199579356b6d5a8fc6cd53ff93299", + "retained_complete_recipe_sha256": "4b08fd0ddf681e29c2df01a01eb06db2431c9431799422f1785d44145e1d08ef", + "fresh_subset_recipe_scope": "40 interface classes regenerated separately; not a byte replay of complete retained recipe payload" + } + }, + "release_sha256": "f4c359390cbd28c60aff03304fa4811efbb2c23d072765eb5fb09f3e41858010", + "final_manifest_sha256": "215cb84a35ed000ddf929dc91d8c89fc64f379fe9d380504a53057711fce559f", + "limitations": [ + "Full recipe payload not included in this local certificate; native receipt contains its hash.", + "Full manifest source archive and release execution not replayed.", + "Native receipt manifest refers to its own source context; it is not equated to the final package manifest.", + "Author EVIDENCE discloses frozen-spec corrections and successful-prefix reuse; no uninterrupted fresh release assertion." + ] +} diff --git a/research/staged544-native-quadratic-audit/RESULT.json b/research/staged544-native-quadratic-audit/RESULT.json new file mode 100644 index 0000000000..9781578ebf --- /dev/null +++ b/research/staged544-native-quadratic-audit/RESULT.json @@ -0,0 +1,1414 @@ +{ + "status": "PASS_INDEPENDENT_QUADRATIC_PHASE_INTERFACES", + "coverage": { + "base": { + "promoted_helpers": [ + 277, + 282, + 293, + 298, + 307, + 309, + 314, + 323, + 325, + 330, + 337, + 339, + 341, + 346, + 353, + 355, + 357, + 362, + 369, + 371, + 373, + 378, + 385, + 387, + 389, + 394 + ], + "changed_native_warp_indices": [ + 4, + 5, + 42, + 43, + 44 + ], + "index_only_warp_changes": [ + 1, + 2, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 36, + 37, + 38, + 39, + 40, + 41, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 64, + 66, + 67, + 68, + 69 + ] + }, + "extra": { + "promoted_helpers": [ + 277, + 282, + 293, + 298, + 307, + 309, + 314, + 323, + 325, + 330, + 337, + 339, + 341, + 346, + 353, + 355, + 357, + 362, + 369, + 371, + 373, + 378, + 385, + 387, + 389, + 394 + ], + "changed_native_warp_indices": [ + 4, + 5, + 42, + 43, + 44 + ], + "index_only_warp_changes": [ + 1, + 2, + 3, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 14, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 36, + 37, + 38, + 39, + 40, + 41, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 64, + 66, + 67, + 68, + 69 + ] + } + }, + "unique_interfaces": 40, + "source_occurrences": 144, + "all_basis_columns": 20480, + "items": [ + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 112, + 128, + 144 + ], + "operator_sha256": "915793262dcd21db059a1ea135ebc671b7f6e44d0c3fc9c1c6ae6a99ac8203fb" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 144, + 128, + 112 + ], + "operator_sha256": "c307d5ec7004726939b13de3d35fe161d9e49b2e022ada26e7f7c3187db3b566" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 128, + 128, + 128 + ], + "operator_sha256": "8b129a2781078afbf937a7c416953faa0fdda96f111dbe46e3123685c3e28371" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 128, + 128, + 128 + ], + "operator_sha256": "c5f0e1411e958c635b13af5f3f28ae11a23ffce8f6b017eb1522607d61ba8627" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 256, + 128, + 0, + 128 + ], + "operator_sha256": "ad6492113b7f2adeaaea5dd912f4c4ad0fdef82c42ac4cfb84919c200f3c6f7a" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 256, + 128, + 0, + 128 + ], + "operator_sha256": "ad6492113b7f2adeaaea5dd912f4c4ad0fdef82c42ac4cfb84919c200f3c6f7a" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 256, + 128, + 0, + 128 + ], + "operator_sha256": "ad6492113b7f2adeaaea5dd912f4c4ad0fdef82c42ac4cfb84919c200f3c6f7a" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 256, + 128, + 0, + 128 + ], + "operator_sha256": "ad6492113b7f2adeaaea5dd912f4c4ad0fdef82c42ac4cfb84919c200f3c6f7a" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 128, + 128, + 128 + ], + "operator_sha256": "35398839f9896ac23fedccbae5ffc00b4cc1c31fef28b97a82bd6a9a4bcef0e2" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 144, + 128, + 112, + 128 + ], + "operator_sha256": "19276b2426321366e53eafba639f9688adeb83d5fed57f763018002b568e0dd6" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 128, + 128, + 128, + 128 + ], + "operator_sha256": "7de1e9e19ded839d5cb53e5fa38f9bbab2d8cf1e251ebf464fb1fcdb42e9b312" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 144, + 128, + 112, + 128 + ], + "operator_sha256": "e56d6a942f4a80654eb31b51dfaaf1d91328d96dcca7aeeafb2034521f8803b1" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 112, + 128, + 144, + 128 + ], + "operator_sha256": "373480876cc8b1eca9a065da101cd9e7fdc679b6c9abc0de77375f6c2d51b403" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 144, + 128, + 112, + 128 + ], + "operator_sha256": "d208eecc3769ac81da08e10cc2f72dc79d10e4aa7e29dd7d42d99f53ccc0ea8d" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 112, + 128, + 144, + 128 + ], + "operator_sha256": "9e2679e8d7472cb686eb65cf06b7c07e854eae6199b9fcf34caab3bdc717141f" + }, + { + "columns": 512, + "nonzero_coefficients": 512, + "gaussian_axis_phase_histogram": [ + 144, + 128, + 112, + 128 + ], + "operator_sha256": "91e63d283b00985a37ae8234aa2c81b66e10b1987636aad170bec2bd2e245f25" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "ed4daea8c653110a17ebf69fe387aa1ed6e4bfdeb19c53fe01ff7a939e757d4d" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "83e6fc6e8d7734e9a74f7a12c84214caeb6f1552900e02dc77c4d4ff5914dfb7" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "afef23d8f1756ae9244e1999946420f1f23f44b3c9b9c95098bba607033a10bb" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "8631df6a6b20a063dff7d1c4f05f1c3e5e45876eb9a88d16aa5f99087d0ebbd0" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "8b607e369efdf1b2f302b46cc1579aab365ebeba59f09fd2296e71b9afc7374c" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "0eeff7fd4ae19b6d3da595835110da42e039ded0433fdbfa1655b450a078d8d5" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "c3c8cfbab92dbddee183604f3000a5a761e3bb9ceefa42cb94c980f16783b4fb" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "06129b2fcf0497c2a881f7f6cdd434184ad7cdd53c8c2c8efc26563a98bcac53" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "a903d7aadc361faa3b19dd474c988a182f6fec69d1f946e6f047297794889afb" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "a9d2a4d1412611bacb0a7f777ff9a7cff08662e761365f52f89223eeb697c7a3" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "267abbdb6934d2b3b9c4796fb263aed096bf6b4c9a5cbc0051e7b5c1517efbd2" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "eae783de5d17bc268484df8ade287a2e47ccd7752e0eff1f2d6c47fd6da09b6a" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "b7eb5d732ed9cab083e2bafc0ff62237c6356bc7f35c66b874157d530b7237e2" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "7f787f250e429c3027d019af1b570ae7a7853e1d547262c35106044cbd5d05f9" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "73d78437c8b76dcfd416b07c18466e3b2ed8bf5b04b5fe652247df9402781b44" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "f2785f3309eb682f6148efef86b6e2c6d463f497bac0807b60a544fccb3b0039" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "b267c69ba0c5926b22a908c08e0b321d0be9a272b125e0e150426fee1a90fe6f" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "35ec5104009caa02ce237ca5aa234efe06231081f62405d0168f5aeb438e8c06" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "2e71154d212bb214a5f0f646fd0788ac53276c9c54baeba925847b5853dd6e9f" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2048, + 2304, + 2048 + ], + "operator_sha256": "6d0ea87181139bea15cf921a556f5dc2b21aa51eab75c8d22e283f1ee583f7a6" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "d63fcb5a48472a9ad3361a5119581942a3a5163fcd40cb8cc5d6d08b6aa441a0" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2304, + 2304, + 1792 + ], + "operator_sha256": "95cd5292c2b0e247a947c827948686a23557db7c221f5282f30e21224440d481" + }, + { + "columns": 512, + "nonzero_coefficients": 16384, + "gaussian_axis_phase_histogram": [ + 0, + 0, + 0, + 0 + ], + "operator_sha256": "07355454e0834075f54baa573cceca072411ccc0bb0cefea9194f1f97aa47a21" + }, + { + "columns": 512, + "nonzero_coefficients": 8192, + "gaussian_axis_phase_histogram": [ + 1792, + 2304, + 2304, + 1792 + ], + "operator_sha256": "c37323e7d9fa697e1ba5528d693b0273a6198f2871a94112c30364ba1a11fc39" + } + ], + "lift_cocycle": { + "actual_binary_maps": 4, + "inverse_lifts": [ + { + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "H_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "product_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "H_columns": [ + 1, + 2, + 4, + 32, + 128, + 142, + 48, + 66, + 420 + ], + "product_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "H_columns": [ + 1, + 2, + 28, + 4, + 40, + 8, + 66, + 128, + 324 + ], + "product_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "H_columns": [ + 1, + 2, + 28, + 4, + 79, + 8, + 130, + 32, + 431 + ], + "product_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "phase_character_mask": 256, + "flipped_columns": 256 + } + ], + "abstract_pair_compositions": [ + { + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "H_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "product_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "H_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "product_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 23, + 283 + ], + "phase_character_mask": 8, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "product_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 139, + 321 + ], + "phase_character_mask": 256, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "product_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 73, + 482 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "H_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "product_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 133, + 16, + 283 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "H_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "product_columns": [ + 1, + 2, + 4, + 70, + 180, + 54, + 18, + 72, + 358 + ], + "phase_character_mask": 272, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "product_columns": [ + 1, + 2, + 8, + 22, + 98, + 32, + 130, + 44, + 334 + ], + "phase_character_mask": 24, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "product_columns": [ + 1, + 2, + 8, + 166, + 27, + 32, + 64, + 44, + 493 + ], + "phase_character_mask": 272, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "H_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "product_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 135, + 333 + ], + "phase_character_mask": 256, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "H_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "product_columns": [ + 1, + 2, + 54, + 8, + 58, + 64, + 128, + 16, + 426 + ], + "phase_character_mask": 276, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "product_columns": [ + 1, + 2, + 32, + 48, + 24, + 28, + 64, + 128, + 298 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "product_columns": [ + 1, + 2, + 32, + 128, + 168, + 172, + 57, + 66, + 496 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "H_columns": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 135, + 263 + ], + "product_columns": [ + 1, + 2, + 8, + 32, + 44, + 135, + 59, + 66, + 489 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "H_columns": [ + 1, + 2, + 4, + 54, + 72, + 8, + 130, + 16, + 284 + ], + "product_columns": [ + 1, + 2, + 54, + 8, + 58, + 16, + 117, + 128, + 433 + ], + "phase_character_mask": 20, + "flipped_columns": 256 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 48, + 66, + 128, + 330 + ], + "product_columns": [ + 1, + 2, + 32, + 48, + 24, + 128, + 63, + 64, + 409 + ], + "phase_character_mask": 0, + "flipped_columns": 0 + }, + { + "G_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "H_columns": [ + 1, + 2, + 8, + 32, + 44, + 128, + 59, + 66, + 489 + ], + "product_columns": [ + 1, + 2, + 32, + 128, + 168, + 66, + 143, + 57, + 305 + ], + "phase_character_mask": 256, + "flipped_columns": 256 + } + ], + "pair_composition_scope": "Algebraic closure controls on the four actual maps; not asserted to be adjacent in the word.", + "inverse_correction": "K_G inverse = Z_ell K_(G inverse), in right-to-left matrix convention" + }, + "release_binding": { + "status": "PASS_FROZEN_RELEASE_CROSSLINKS_ONLY", + "providers": { + "base": { + "word_sha256": "08e6c96fbe3dfec96cb8451b3867ef8c1a214109ecd1e5af7fcc28e0f05728d0", + "retained_complete_recipe_sha256": "bdd292a21746c584479060e1cacdf9e74c368f9007608f11c3e573e0a5c1fd7d", + "fresh_subset_recipe_scope": "40 interface classes regenerated separately; not a byte replay of complete retained recipe payload" + }, + "extra": { + "word_sha256": "d83c2ec9cecc0ad092d34ea4080b28a4fd7199579356b6d5a8fc6cd53ff93299", + "retained_complete_recipe_sha256": "4b08fd0ddf681e29c2df01a01eb06db2431c9431799422f1785d44145e1d08ef", + "fresh_subset_recipe_scope": "40 interface classes regenerated separately; not a byte replay of complete retained recipe payload" + } + }, + "release_sha256": "f4c359390cbd28c60aff03304fa4811efbb2c23d072765eb5fb09f3e41858010", + "final_manifest_sha256": "215cb84a35ed000ddf929dc91d8c89fc64f379fe9d380504a53057711fce559f", + "limitations": [ + "Full recipe payload not included in this local certificate; native receipt contains its hash.", + "Full manifest source archive and release execution not replayed.", + "Native receipt manifest refers to its own source context; it is not equated to the final package manifest.", + "Author EVIDENCE discloses frozen-spec corrections and successful-prefix reuse; no uninterrupted fresh release assertion." + ] + }, + "controls": { + "rejected": [ + "residual left global phase", + "residual right global phase", + "warp global phase", + "warp linear phase", + "warp quadratic cocycle", + "warp translation", + "warp signed inverse", + "warp wrong terminal", + "warp singular G", + "dependent terminal frame basis", + "promoted residual billed as width4", + "residual wrappers swapped", + "one interface omitted", + "coverage provider relabelled" + ], + "phase_blind_mutant_preserves_all_512_permutation_columns": true, + "monomial_inverse_columns": 32768 + } +} diff --git a/research/staged544-native-quadratic-audit/SOURCE-CREDITS.md b/research/staged544-native-quadratic-audit/SOURCE-CREDITS.md new file mode 100644 index 0000000000..c054fad87e --- /dev/null +++ b/research/staged544-native-quadratic-audit/SOURCE-CREDITS.md @@ -0,0 +1,14 @@ +# Source credit and independence + +New work: dataisfire with substantial OpenAI Codex assistance, Apache-2.0. No independent human review, fresh third-party AI review or proof-kernel verification is claimed. + +The construction extends [PR3682](https://github.com/CrocSwap/integer-mult-bounds/pull/3682), head431e6c6023ef352c41696469de7fb614cd4ded8c. Its retimed word, actual T360 source clock and immutable native/parent framework are retained. The complete new source/receipt snapshot is bound by REPLAY-INPUTS.json. The new ordinary source stage is an explicit pinned record applied after the unchanged predecessor reconstruction. + +- [PR3605](https://github.com/CrocSwap/integer-mult-bounds/pull/3605), Ross Richardson, supplies the staged-entrance mechanism, literal cleanup and exact Gaussian residual-check pattern. staged_pair.py is retained; the new544 shear and its proof are separate. +- [PR3638](https://github.com/CrocSwap/integer-mult-bounds/pull/3638), head d62e1acd7518a231440383f0d0dddf54d6edf8c1, supplies the T360 source-window clock, chronological aggregate model and integral-network/literal construction, with its retained PR3605 and earlier credits. The new inventory, integer incumbent and literal fill are recomputed. No predecessor owner receipt is used as proof of the new fill. +- [PR3687](https://github.com/CrocSwap/integer-mult-bounds/pull/3687) and [PR3693](https://github.com/CrocSwap/integer-mult-bounds/pull/3693), Sagar Thakrar and roger-sato with their credited AI assistance, supply audit_core.py and the whole-word semantics adapter audit_verify.py. These bytes are retained and reused. They are independent of the current constructor in the stated interpreter scope, not a newly written independent audit or new reviewer approval. +- The coupled-word source lineage includes PR3133, PR2979, Marius-Paul Dumitrean, dcharb78, Jeremy Kothe and the retained native/owner/block-norm/outer authors. All notices and scientific engines inside the source snapshot remain intact. + +owner_audit.py is a standalone standard-library adaptation of the source-window/family/prefix/invoice predicates in PR3638's independent_literal.py. It imports no producer, optimizer or retained owner checker. Its source template, plan and actual native canonical words are authenticated inputs. Three controls mutate actual literal roles and must fail for the intended reason. It shares the credited contract interpretation; it is not evidence of independent human agreement. + +The rational finite-price enclosure is retained from the PR3682 sources. New script adapters bind it to the actual finite histogram. Native forward/backward scalar replay, wrapper/phase lowering and all-column warp recipes were freshly run for both new words; unchanged native and parent ancestry is explicitly reused. The separate new544 span(414,51) residual check includes global Gaussian phase. diff --git a/research/staged544-native-quadratic-audit/SOURCES.json b/research/staged544-native-quadratic-audit/SOURCES.json new file mode 100644 index 0000000000..b4e03fc91c --- /dev/null +++ b/research/staged544-native-quadratic-audit/SOURCES.json @@ -0,0 +1,182 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "67f085acd86acd7d4e03922d9cf4b26bca66fed5", + "sha256": "47b42433f5a85809a3aadd29c2c339da2c6ed728e4f7762df6b88bccb7874cf0" + } + ], + "external_public_inputs": [ + { + "local_path": "frozen/NATIVE-LINEAGE-NOTICE", + "sha256": "ee0c73ca35877aad0e0b6adc560a3881cb82276dba4cf2d4fc58cd19e57cc420", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/NATIVE-LINEAGE-NOTICE", + "git_blob": "380e979f0e84e00a22bd890615d87cc4684ad740" + }, + { + "local_path": "frozen/NATIVE-base.json", + "sha256": "98a7325d56c466673e60e17cb8d426b4e42f2adaf06786a23383eb265cfd0dd1", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/evidence/NATIVE-base.json", + "git_blob": "5d8c8be01570bd6e76dfe62321ec68be1b37cd53" + }, + { + "local_path": "frozen/NATIVE-extra.json", + "sha256": "3a47df8de3b4d82c12c7c2030b256830ed26642df23e2bc31f9d4da41ab0f7ff", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/evidence/NATIVE-extra.json", + "git_blob": "32f4acafe4216e6e34c214964428ae936042be92" + }, + { + "local_path": "frozen/PINS.json", + "sha256": "f619e8e1c163078fb70c6fc3b98a498a671b8c02927b91d6cc253af2a775b6c9", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/PINS.json", + "git_blob": "7c83dc543292205bc65abd332f77215b58feebf7" + }, + { + "local_path": "frozen/WORD-base.json.gz", + "sha256": "08e6c96fbe3dfec96cb8451b3867ef8c1a214109ecd1e5af7fcc28e0f05728d0", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/inputs/NEW-base.json.gz", + "git_blob": "806784bf99d9d15004d2d227d06268556a0726c8" + }, + { + "local_path": "frozen/WORD-extra.json.gz", + "sha256": "d83c2ec9cecc0ad092d34ea4080b28a4fd7199579356b6d5a8fc6cd53ff93299", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/inputs/NEW-extra.json.gz", + "git_blob": "c531be7383ad3ba941600c7ced14e5e10d6d1c67" + }, + { + "local_path": "frozen/old-WORD-base.json.gz", + "sha256": "5ca4be99851f8878cbfe0fd6c454df926b11218f17feefa1664721cf03156699", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/inputs/OLD-base.json.gz", + "git_blob": "674ea18ade4af85ca865fb08dc973637a09e30e6" + }, + { + "local_path": "frozen/old-WORD-extra.json.gz", + "sha256": "965268a9be73d3f62e7ef680d18f108cf064bfe1f44b82157baa61443232904e", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "CrocSwap/integer-mult-bounds research/staged544-terminal-gap-fill; exact public frozen bytes, native receipts are author evidence only", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/inputs/OLD-extra.json.gz", + "git_blob": "b17e2be67e327f04802fd034c344fe4253c13a4a" + }, + { + "local_path": "vendor/bw_adapters.py", + "sha256": "c5907050a9a7fa36d4fcba3ad4fe440d1bec2063360c095013891785ba65c3ce", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "native/vendor/native/new/code/borrow/bw_adapters.py", + "usage": "Only clifford_exact.py used in optional reference generation; independent verifier executes none of these sources", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/vendor/native/new/code/borrow/bw_adapters.py", + "git_blob": "82beaa9c1d13bcd5f79d0a5e10e8a10733eac347" + }, + { + "local_path": "vendor/bw_gauss.py", + "sha256": "0884b14d6d77cde419a3c773ad9b21d0d18de1e6e20e6b6d5add458ed32ba4cb", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "native/vendor/native/new/code/borrow/bw_gauss.py", + "usage": "Only clifford_exact.py used in optional reference generation; independent verifier executes none of these sources", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/vendor/native/new/code/borrow/bw_gauss.py", + "git_blob": "1ff29dfb244e2114de8e586a450ae9fb70308d58" + }, + { + "local_path": "vendor/bw_phases.py", + "sha256": "9d1a620e26715f4c42fd0347ecc14ef5a4a9031867869b64e8bae4d8526a821e", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "native/vendor/native/new/code/borrow/bw_phases.py", + "usage": "Only clifford_exact.py used in optional reference generation; independent verifier executes none of these sources", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/vendor/native/new/code/borrow/bw_phases.py", + "git_blob": "99f351785ebca5fbf3336bedcd7b48bac9c255e5" + }, + { + "local_path": "vendor/bw_transport.py", + "sha256": "9818e08b819310b40f1441b89be8c4369584a5b3fa5dfe9b86b1df9a7f5d6a76", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "native/vendor/native/new/code/borrow/bw_transport.py", + "usage": "Only clifford_exact.py used in optional reference generation; independent verifier executes none of these sources", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/vendor/native/new/code/borrow/bw_transport.py", + "git_blob": "08248542b18864c94a5ac050c8669f68519838e1" + }, + { + "local_path": "vendor/clifford_exact.py", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "native/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "usage": "Only clifford_exact.py used in optional reference generation; independent verifier executes none of these sources", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/native/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2" + }, + { + "local_path": "frozen/EVIDENCE.json", + "sha256": "f398820698eb2d04c4a371bed3246ca7b0eab968b46eef5c7381deb1c0e9d45c", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "research/staged544-terminal-gap-fill/admission/EVIDENCE.json", + "usage": "Frozen source-bound author release crosslinks only; no full replay claim", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/admission/EVIDENCE.json", + "git_blob": "b83f9fbb89dad04cf6613ace56a14c05be03e742" + }, + { + "local_path": "frozen/FINAL-PACKAGE-MANIFEST.json", + "sha256": "215cb84a35ed000ddf929dc91d8c89fc64f379fe9d380504a53057711fce559f", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "research/staged544-terminal-gap-fill/admission/FINAL-PACKAGE-MANIFEST.json", + "usage": "Frozen source-bound author release crosslinks only; no full replay claim", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/admission/FINAL-PACKAGE-MANIFEST.json", + "git_blob": "ca780c8aab452b2a1545f1c318f6ad451f74d2ea" + }, + { + "local_path": "frozen/NATIVE-RECEIPT-CORRECTED.json", + "sha256": "bb6783ff5658a3dc7ee6656ef87cb5ead8d7c2c781536c152d6e12043e162499", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "research/staged544-terminal-gap-fill/admission/NATIVE-RECEIPT-CORRECTED.json", + "usage": "Frozen source-bound author release crosslinks only; no full replay claim", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/admission/NATIVE-RECEIPT-CORRECTED.json", + "git_blob": "c6fda0653cb382a3d8614cc1383cde30537d72a2" + }, + { + "local_path": "frozen/RELEASE.json", + "sha256": "f4c359390cbd28c60aff03304fa4811efbb2c23d072765eb5fb09f3e41858010", + "origin_commit": "91f81d131252db704f945891da1ea54e29d46b8b", + "origin": "research/staged544-terminal-gap-fill/admission/RELEASE.json", + "usage": "Frozen source-bound author release crosslinks only; no full replay claim", + "origin_repository": "CrocSwap/integer-mult-bounds", + "origin_path": "research/staged544-terminal-gap-fill/admission/RELEASE.json", + "git_blob": "1a1426c7921650274df29dfb7dadbb906b698201" + } + ] +} diff --git a/research/staged544-native-quadratic-audit/TASK.json b/research/staged544-native-quadratic-audit/TASK.json new file mode 100644 index 0000000000..6659e14b6b --- /dev/null +++ b/research/staged544-native-quadratic-audit/TASK.json @@ -0,0 +1,79 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 6, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "original_card": { + "id": "independent-moment", + "question": "Does one changed supplier or assembly claim lack a source-bound independent check of a specific new implication?", + "starting_points": [ + "certificates/selected-result.json", + "research/rank7-joint-endframes/README.md", + "docs/research/research-family-status.md" + ], + "methods": [ + "Independently reconstruct a coordinated frame/circuit change and its single-change control, then derive the complete rank and physical ledger.", + "Implement certified moment inequalities through a different exact enclosure method." + ], + "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": "Read #2979 joint rank-7 end-frame proposal and the revision-6 evidence status. Its claimed kappa is not selected. Compare coordinated changes with the losing single-change controls and locate the complete physical ledger; an aggregate moment alone does not validate the mechanism.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Prioritize a bounded independent audit of #2979: reconstruct one joint group and its single-lowering control, check the declared frames/chronology, then trace changed children, idle widths and cleanup buffers into the complete invoice and both supplier caps. Choose one still-missing implication after checking existing audits. Stop with exact unresolved dependencies if full admission exceeds the session; do not launch a new lowering census on an unvalidated premise or substitute extra root digits for mechanism checking.", + "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.", + "Promoting #2979 from merged source archive to validated supplier solely from author PASS receipts or aggregate pricing." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure", + "2979", + "rank7 joint endframes", + "paired extraction", + "joint lowering" + ] + }, + "scope_status": "refined", + "actual_scope": "Independent exact quadratic-phase audit of all26promoted cold terminal residuals and5 genuinely changed native warp interfaces per PR3945 staged544 provider, plus a Clifford lift cocycle/inverse witness.", + "scope_change_reason": "Assigned follow-up to PR3969 native-phase obligation. Pair framed arithmetic with finite symplectic geometry and central-extension cocycles; replace aggregate moment checking with independent exact phase action.", + "bottleneck_link": "A literal binary frame map and paid owner bill do not determine relative complex phases; signed lift and wrapper equality must hold before native admission.", + "budget_minutes": 60, + "stop_rule": "Stop on a reproducible phase mismatch or complete bounded verification of these changed interfaces. Global scalar-frame recipes, full emitted program and full supplier admission remain separate.", + "outcome": "completed", + "evidence": "RESULT.json independent20,480column checks; PROOF.md cocycle lemma; 14 semantic rejection controls; complete LEDGER.json statuses.", + "author": "Chris R / Clear1nsight with OpenAI Codex assistance", + "ai_assistance": "Substantial OpenAI Codex assistance; one agent independently implemented checker while root coordinated overlap/publication.", + "open_questions": [ + { + "question": "Do all changed scalar frame-transition recipes and complete emitted program preserve their signed phase action in the retained release?", + "why_it_matters": "This audit closes promoted residuals and genuinely changed warp interfaces only.", + "first_step": "Regenerate complete source-bound canonical word and CLIFFORD-RECIPES; match retained hashes, then extend independent scalar-column checks to exact changed transition classes.", + "blocked_by": "Full recipe materialization and emitted-program binding are not part of this local-interface certificate." + } + ], + "mathematical_pairing": { + "primary": "framed arithmetic and native operator interfaces", + "contrasting": "finite symplectic geometry; Z4 quadratic refinements and Z2 lift cocycles" + }, + "overlap": { + "cache": "677 open PR bodies, complete7page snapshot at2026-10-1907:42UTC", + "discussions": "partial signed-in1166read by root07:41UTC, claim3969comment6262298202; not exhaustive novelty", + "nearest": [ + "PR3945 native author replay", + "PR3969 independently checked owner/terminal bridge; explicitly excluded phase", + "PR3929 frame compiler" + ] + } +} diff --git a/research/staged544-native-quadratic-audit/VALIDATION.json b/research/staged544-native-quadratic-audit/VALIDATION.json new file mode 100644 index 0000000000..fe599ed7c3 --- /dev/null +++ b/research/staged544-native-quadratic-audit/VALIDATION.json @@ -0,0 +1,36 @@ +{ + "status": "PASS_BOUNDED_NATIVE_PHASE_AUDIT", + "scientific_generation": { + "command": "python3 -B research/staged544-native-quadratic-audit/generate.py /external/recipes.json", + "result": "byte-identical to retained RECIPES.json" + }, + "registered_replay": { + "command": "python3 scripts/research_package.py --package research/staged544-native-quadratic-audit", + "result": "PASS_REGISTERED_RESEARCH_PACKAGE", + "normal_seconds": 16.143, + "optimized_seconds": 15.333 + }, + "isolated_interpreter": { + "command": "python3 -I -B -X pycache_prefix=/external/cache research/staged544-native-quadratic-audit/verify.py", + "result": "PASS", + "seconds": 20.703 + }, + "source_binding": "All17retainednative/word/receipt blobs matched exact public PR3945 file inventory; source SHA256 checked on every run. Both source-main metadata pins passed.", + "prepublication_checkpoint": { + "utc": "2026-10-19 07:58 UTC", + "main": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "priority_revision": 6, + "pr3945": "91f81d131252db704f945891da1ea54e29d46b8b" + }, + "review": "Root bounded mathematical/code review: no phase-order/cocycle issue found. Added explicit frame independence and isolated-script import support. This is collaborator review, not maintainer acceptance.", + "limitations": [ + "Full native recipe payload, emitted program and release were not replayed.", + "Hosted CI status and exact public commit are reported in PR/session handoff after publication.", + "All-size, uniform precision/stock/tape, physical and supplier obligations remain inherited or unknown." + ], + "python_source_sha256": { + "verify.py": "a99c1313816b5d37e98d2d6a50b13a43f62f6ad5b0254ced3b6b1373947af2f8", + "generate.py": "0d06322361482723753651d3d92415c5253d477977e22f963fc83ffbfa94fa72", + "exact_phase.py": "e3d76b3373ff40a83a4b212b3fe1c0b431b3cfdc807da601d6e7f273c02c6d30" + } +} diff --git a/research/staged544-native-quadratic-audit/VERIFY.json b/research/staged544-native-quadratic-audit/VERIFY.json new file mode 100644 index 0000000000..52437dd943 --- /dev/null +++ b/research/staged544-native-quadratic-audit/VERIFY.json @@ -0,0 +1,28 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Independent exact Gaussian integer all-column interface equality, source coverage, cocycle witness and 14 phase/coverage rejection controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Same independent audit with assertions disabled; verifier uses explicit failures." + } + ] +} diff --git a/research/staged544-native-quadratic-audit/exact_phase.py b/research/staged544-native-quadratic-audit/exact_phase.py new file mode 100644 index 0000000000..4659b91e1b --- /dev/null +++ b/research/staged544-native-quadratic-audit/exact_phase.py @@ -0,0 +1,154 @@ +"""Independent scalar Gaussian-integer action; no native compiler imports. +Chris R / Clear1nsight with substantial OpenAI Codex assistance. Apache-2.0. +""" +from functools import lru_cache + +N = 9 +SIZE = 1 << N + +def need(ok, why): + if not ok: + raise ValueError(why) + +def rot(z, p): + a,b=z + return ((a,b),(-b,a),(-a,-b),(b,-a))[p%4] + +def lin(cols,x): + y=0 + for j,c in enumerate(cols): + if x & (1<>i&1] + q.append((sum(gram[i][i] for i in bits)+2*sum(gram[i][j]for i in bits for j in bits if i>j)&1)==((quad[j]>>i)&1)for i in range(N)for j in range(N)),'symmetric quadratic form') + need(all(alpha[i]%2==((quad[i]>>i)&1)for i in range(N)),'quadratic parity') + perm=[];phasev=[] + for x in range(SIZE): + perm.append(sum(((r&x).bit_count()%2)<>i&1] + phasev.append((phase+sum(alpha[i]for i in bits)+2*sum((quad[i]>>j)&1 for i in bits for j in bits if i0 else 2]+=1 + elif not r:phase_hist[1 if s>0 else 3]+=1 + digest.update(json.dumps([x,da,sorted(a.items())],separators=(',',':')).encode()) + return dict(columns=SIZE,nonzero_coefficients=support,gaussian_axis_phase_histogram=phase_hist,operator_sha256=digest.hexdigest()) + +def lift_cocycle(G,H): + """K_H K_G = K_(HG) Z_ell. Exact finite Z4 phase defect.""" + gp,gq=kernel(tuple(G));hp,hq=kernel(tuple(H)) + HG=tuple(lin(H,c)for c in G);cp,cq=kernel(HG) + defect=[(gq[x]+hq[gp[x]]-cq[x])%4 for x in range(SIZE)] + ell=sum((defect[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±ve{cRKW+p~gSnVTb%BFZ)epEJ1I4*AP8ZrRXXU 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 JbW1Cn3jn$nQt1Ey literal 0 HcmV?d00001 diff --git a/research/staged544-native-quadratic-audit/frozen/WORD-extra.json.gz b/research/staged544-native-quadratic-audit/frozen/WORD-extra.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c531be7383ad3ba941600c7ced14e5e10d6d1c67 GIT binary patch literal 74425 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 z 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 a{2=x9TiBifgoL2jalJEr?dHi{zx^MgbT>}` literal 0 HcmV?d00001 diff --git a/research/staged544-native-quadratic-audit/frozen/old-WORD-extra.json.gz b/research/staged544-native-quadratic-audit/frozen/old-WORD-extra.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b17e2be67e327f04802fd034c344fe4253c13a4a GIT binary patch literal 72766 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 literal 0 HcmV?d00001 diff --git a/research/staged544-native-quadratic-audit/generate.py b/research/staged544-native-quadratic-audit/generate.py new file mode 100644 index 0000000000..5a630f7c8c --- /dev/null +++ b/research/staged544-native-quadratic-audit/generate.py @@ -0,0 +1,40 @@ +"""Generate finite reference recipes with the pinned predecessor compiler. +Generation is not independent verification. verify.py never imports the compiler. +""" +import json,gzip,sys +from pathlib import Path +P=Path(__file__).resolve().parent +sys.path.insert(0,str(P/'vendor')) +import clifford_exact as c + +def kg(cols): + G=c.transpose(cols,9);gi=c.inv(G,9);ci=c.transpose(gi,9) + Q=tuple((1<0 else k.adjoint()) + op=op.then(c.canonical_frame(9,d['terminal'])) + d['recipe']=c.lower_child(op)[0];items[key]=d;coverage[key]=[] + coverage[key].append(label) + for tag in ['base','extra']: + a=json.load(gzip.open(P/'frozen'/('old-WORD-'+tag+'.json.gz')));b=json.load(gzip.open(P/'frozen'/('WORD-'+tag+'.json.gz'))) + for r,terminal in b['helper_final'].items(): + if terminal==a['helper_final'][r]:continue + for version,w in [('old',a),('new',b)]: + add(dict(kind='residual',entrance=w['start_extra'].get(r,[]),terminal=w['helper_final'][r]),dict(provider=tag,kind='terminal',helper=int(r),version=version)) + for i,(old,new)in enumerate(zip(a['warps'],b['warps'])): + if old[2:]==new[2:]:continue + for version,w in [('old',old),('new',new)]: + for sign in [1,-1]: + add(dict(kind='warp',G_columns=w[2],entrance=w[3] if sign>0 else w[4],terminal=w[4]if sign>0 else w[3],sign=sign),dict(provider=tag,kind='warp',index=i,register=w[1],version=version,sign=sign)) + return {'items':[dict(items[k],coverage=coverage[k])for k in sorted(items)]} +if __name__=='__main__': + if len(sys.argv)!=2:raise SystemExit('explicit output path required') + Path(sys.argv[1]).write_text(json.dumps(build(),indent=2)+'\n') diff --git a/research/staged544-native-quadratic-audit/vendor/bw_adapters.py b/research/staged544-native-quadratic-audit/vendor/bw_adapters.py new file mode 100644 index 0000000000..82beaa9c1d --- /dev/null +++ b/research/staged544-native-quadratic-audit/vendor/bw_adapters.py @@ -0,0 +1,165 @@ +"""Paid residual wrappers for entering helpers (Lemma A): generation and independent decoding. Apache-2.0. +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. The wrapper construction follows PR #458 +(chafreaky): a helper that starts at frame E and ends at FULL has the physical residual S_E = T_FULL T_E^-1 (apply T_E^-1 first); +S_E = L_E (C_[w] x I) R_E with R_E applied first; the wrappers R_E^-1 before the whole local invocation and L_E^-1 after its +full-frame cleanup turn the residual into the coordinate factor C_[w] x I and restore the other 9 - w coordinates identically. +usage: adapters_gk.py CANONICAL-WORD.json.gz RESIDUAL-ADAPTERS.json OUT-LEMMA-A.json +Writes the recipes (generation uses clifford_exact.lower_child) and then DECODES the serialized monomials with the primitive +constructors of clifford_exact (not lower_child) and checks, for every entrance frame, that L_E^-1 S_E R_E^-1 has exactly the +tableau and zero-state vector (global phase included) of fourier(9, range(w)); mutated recipes (wrong phase, swapped sides, wrong +translation, wrong width) must be rejected.""" +if not __debug__: + raise RuntimeError('assertions must remain enabled') # every check of this stage is an assert +import copy, gzip, json, sys +from pathlib import Path +# Package-path adaptation only; the exact wrapper mathematics is unchanged. +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE / 'vendor/clifford')) # BW: the pinned vendor531 clifford_exact (byte copy) +sys.path.insert(0, str(HERE)) +from clifford_exact import canonical_frame, lower_child, fourier, diag, perm, xgate, Op, identity, transpose, inv, parity, monomial as mono_of, mv +import bw_gauss +n = 9; FULL = tuple(1 << i for i in range(n)) +def monomial_op(rec): + """decode a serialized monomial (matrix rows, quadratic rows, Z4 linear part, translation, phase)""" + out = diag(n, tuple(rec['quadratic_rows']), tuple(rec['linear_Z4'])).then(perm(n, tuple(rec['matrix_rows']))).then(xgate(n, rec['offset'])) + return out.then(Op(n, identity(n), [('phase', rec['phase'])])) +def S_of(U, END=FULL): + # HPE: a helper that starts at E=U and ends at END has residual T_END T_E^-1 (END = FULL is the inherited case) + return canonical_frame(n, tuple(U)).adjoint().then(canonical_frame(n, tuple(END))) +def wrapped_ok(U, rec, END=FULL): + """exactly: L^-1 S R^-1 = C_[w] x I (apply order: R^-1, S, L^-1), w = dim END - dim E""" + w = len(END) - len(U); S = S_of(U, END); Rm = monomial_op(rec['right']); Lm = monomial_op(rec['left']) + net = Rm.adjoint().then(S).then(Lm.adjoint()); target = fourier(n, range(w)) + return rec['rank'] == w and net.tab == target.tab and net.zero_state() == target.zero_state() +def _contains(a, b): + a = list(a) + for x in b: + for y in sorted(a, reverse=True): + if x >> (y.bit_length() - 1) & 1: x ^= y + if x: return False + return True +def Kop(G_cols): + """BW: K_G = perm(G) then diag(Q), Q = I + G^-T G^-1: PR2226's monomial() and the conjugator inside clifford_exact.canonical_frame.""" + G = transpose(tuple(G_cols), n); gi = inv(G, n) + Q = tuple((1 << i) ^ sum(parity(gi_i & gi_j) << j for j, gi_j in enumerate(transpose(gi, n))) for i, gi_i in enumerate(transpose(gi, n))) + return perm(n, G).then(diag(n, Q)) +def numeric_K(G_cols): + import numpy as np + pv, ph = bw_gauss.monomial(list(G_cols), n) + N = 1 << n; re = np.zeros((N, N), dtype=np.int64); im = np.zeros((N, N), dtype=np.int64) + unit = [(1, 0), (0, 1), (-1, 0), (0, -1)] + for x in range(N): re[pv[x], x], im[pv[x], x] = unit[ph[x]] + return re, im, 0 +def warp_ok(G_cols, rec): + """BW: the serialized monomial equals PR2226's exact numpy K_G on all 512 columns (indep. decode) and its op decodes to K_G exactly.""" + m = bw_gauss.recipe_matrix(rec, n) + if not bw_gauss.equal_scaled(numeric_K(G_cols), m): return False + dec = monomial_op(rec); ref = Kop(G_cols) + return dec.tab == ref.tab and dec.zero_state() == ref.zero_state() + +def main(): + c = json.load(gzip.open(sys.argv[1])); frames = c['frames']; v = c['v'] + starts = sorted({c['start'][r] for r in range(2 * v, len(c['start'])) if c['start'][r] != 0 and c['final'][r] == 1}) + # HPE: (entrance, terminal) pairs of helpers ending at a proper subspace; key 'E:U'. Inherited words have none. + ends = sorted({(c['start'][r], c['final'][r]) for r in range(2 * v, len(c['start'])) if c['final'][r] != 1}) + # COLD-HPE: e == 0 (a cold helper, entrance = bottom, T_0 = I) is allowed: the (0, U) recipe is keyed '0:U' + assert all(len(frames[u]) < n and _contains(frames[u], frames[e]) for e, u in ends) + cold_ends = [(e, u) for e, u in ends if e == 0] + recipes = {} + for f in starts: + U = frames[f]; rec, compiled = lower_child(S_of(U)) + recipes[str(f)] = dict(frame=f, vectors=list(U), entrance_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + for e, u in ends: + E, U = frames[e], frames[u]; rec, compiled = lower_child(S_of(E, U)) + recipes['%d:%d' % (e, u)] = dict(frame=e, terminal=u, vectors=list(E), terminal_vectors=list(U), entrance_rank=len(E), + terminal_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + # BW: monomial recipes of the warps K_G (anticipatory dirty borrowing, PR2226): one per operator, serialized like a wrapper monomial + warp_recipes = {} + for w in c.get('warps', []): + _, rec_k = mono_of(Kop(w['G_columns'])) + warp_recipes[str(w['op'])] = dict(op=w['op'], from_frame=w['from_frame'], to_frame=w['to_frame'], G_columns=list(w['G_columns']), K=rec_k) + Path(sys.argv[2]).write_text(json.dumps(dict(status='RESIDUAL_ADAPTER_RECIPES', recipes=recipes, warps=warp_recipes), sort_keys=True, separators=(',', ':')) + '\n') + # ---- independent decode of the serialized file + data_all = json.loads(Path(sys.argv[2]).read_text()); data = data_all['recipes'] + dot = lambda a, b: bin(a & b).count('1') & 1 + detail = [] + for f in starts: + rec = data[str(f)]; U = frames[f] + assert wrapped_ok(U, rec), ('wrapper product is not C_[w] x I', f) + detail.append(dict(frame=f, entrance_rank=len(U), residual_width=n - len(U), vectors=list(U), all_even_weight=all(bin(x).count('1') % 2 == 0 for x in U), + totally_isotropic=all(dot(a, b) == 0 for a in U for b in U))) + hdetail = [] + for e, u in ends: # HPE: independent decode, residual width = dim U - dim E + rec = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + assert wrapped_ok(E, rec, U), ('HPE wrapper product is not C_[w] x I', e, u) + hdetail.append(dict(frame=e, terminal=u, entrance_rank=len(E), terminal_rank=len(U), residual_width=len(U) - len(E))) + controls = [] + def reject(name, fn): + f = starts[0]; rec = copy.deepcopy(data[str(f)]); fn(rec) + if wrapped_ok(frames[f], rec): raise AssertionError('mutated wrapper accepted: ' + name) + controls.append(name) + reject('wrong global phase', lambda r: r['right'].__setitem__('phase', (r['right']['phase'] + 1) % 4)) + reject('wrong translation', lambda r: r['left'].__setitem__('offset', r['left']['offset'] ^ 1)) + reject('wrong quadratic form', lambda r: r['right'].__setitem__('quadratic_rows', [x ^ 2 if i == 0 else x for i, x in enumerate(r['right']['quadratic_rows'])]) if False else r['right']['linear_Z4'].__setitem__(0, (r['right']['linear_Z4'][0] + 2) % 4)) + reject('sides swapped', lambda r: (r.__setitem__('left', r['right']), r.__setitem__('right', r['left']))) + reject('wrong width', lambda r: r.__setitem__('rank', r['rank'] + 1)) + if ends: # HPE controls on the first (E, U) pair + e, u = next((p for p in ends if p[0] != 0), ends[0]); rec0 = data['%d:%d' % (e, u)] # COLD-HPE: an entering pair if any (= ends[0] without cold ends) + def hreject(name, ok): + if ok: raise AssertionError('HPE mutation accepted: ' + name) + controls.append(name) + hreject('hpe: U-wrapper decoded against a FULL ending', wrapped_ok(frames[e], rec0)) + hreject('hpe: width misreported as 9 - dim E', wrapped_ok(frames[e], dict(rec0, rank=n - len(frames[e])), frames[u])) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u]) and _contains(frames[f], frames[e])) + hreject('hpe: wrong terminal hyperplane', wrapped_ok(frames[e], rec0, frames[other])) + fe = next(((e2, u2) for e2, u2 in ends if str(e2) in data), None) + if fe: # an entrance shared with FULL-ended helpers: R_{E,FULL} must not serve as R_{E,U} + r2 = data['%d:%d' % fe] + hreject('hpe: pre wrapper resolved to the FULL recipe R_{E,FULL}', wrapped_ok(frames[fe[0]], dict(r2, right=data[str(fe[0])]['right']), frames[fe[1]])) + hreject('hpe: wrong global phase', wrapped_ok(frames[e], dict(rec0, left=dict(rec0['left'], phase=(rec0['left']['phase'] + 1) % 4)), frames[u])) + if cold_ends: # COLD-HPE controls on the first cold pair (0, U): factor_iff_pre says only R_{0,U} itself may precede + e, u = cold_ends[0]; recc = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + ID = dict(matrix_rows=[1 << i for i in range(n)], offset=0, quadratic_rows=[0] * n, linear_Z4=[0] * n, phase=0) + assert monomial_op(ID).tab == identity(n) # the control's wrapper really is the identity + def creject(name, ok): + if ok: raise AssertionError('cold HPE mutation accepted: ' + name) + controls.append(name) + creject('cold hpe: identity pre wrapper instead of R_{0,U}', wrapped_ok(E, dict(recc, right=ID), U)) + creject('cold hpe: identity post wrapper instead of L_{0,U}', wrapped_ok(E, dict(recc, left=ID), U)) + creject('cold hpe: no wrappers (cold FULL convention L = R = I)', wrapped_ok(E, dict(recc, left=ID, right=ID), U)) + creject('cold hpe: U-wrapper decoded against a FULL ending', wrapped_ok(E, recc)) + creject('cold hpe: width misreported as 9', wrapped_ok(E, dict(recc, rank=n), U)) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u])) + creject('cold hpe: wrong terminal hyperplane', wrapped_ok(E, recc, frames[other])) + creject('cold hpe: wrong global phase', wrapped_ok(E, dict(recc, right=dict(recc['right'], phase=(recc['right']['phase'] + 1) % 4)), U)) + ent = next((p for p in ends if p[0] != 0 and p[1] == u), None) + same = lambda x, y: monomial_op(x).tab == monomial_op(y).tab and monomial_op(x).zero_state() == monomial_op(y).zero_state() + if ent and not same(data['%d:%d' % ent]['right'], recc['right']): # an entering helper ending at the same U: its R_{E,U} must not serve as R_{0,U} + creject('cold hpe: pre wrapper resolved to an entering recipe R_{E,U}', wrapped_ok(E, dict(recc, right=data['%d:%d' % ent]['right']), U)) + wdetail = [] + for w in c.get('warps', []): # BW: independent decode of every warp recipe, then mutation controls on the first warp + rec = data_all['warps'][str(w['op'])] + assert rec['G_columns'] == w['G_columns'] + assert warp_ok(w['G_columns'], rec['K']), ('warp recipe differs from the exact monomial K_G', w['op']) + wdetail.append(dict(op=w['op'], from_frame=w['from_frame'], to_frame=w['to_frame'], columns_checked=1 << n)) + if c.get('warps'): + w0 = c['warps'][0]; k0 = data_all['warps'][str(w0['op'])]['K'] + def wreject(name, ok): + if ok: raise AssertionError('warp mutation accepted: ' + name) + controls.append(name) + wreject('warp: wrong global phase', warp_ok(w0['G_columns'], dict(k0, phase=(k0['phase'] + 1) % 4))) + wreject('warp: wrong translation', warp_ok(w0['G_columns'], dict(k0, offset=k0['offset'] ^ 1))) + wreject('warp: wrong linear phase', warp_ok(w0['G_columns'], dict(k0, linear_Z4=[(k0['linear_Z4'][0] + 2) % 4] + k0['linear_Z4'][1:]))) + wreject('warp: wrong quadratic form', warp_ok(w0['G_columns'], dict(k0, quadratic_rows=[k0['quadratic_rows'][0] ^ 2, k0['quadratic_rows'][1] ^ 1] + k0['quadratic_rows'][2:]))) + wreject('warp: recipe of another operator', warp_ok(w0['G_columns'], data_all['warps'][str(c['warps'][1]['op'])]['K'])) + wreject('warp: inverse recipe used as the warp', warp_ok(w0['G_columns'], mono_of(Kop(w0['G_columns']).adjoint())[1])) + G2 = list(w0['G_columns']); G2[0] ^= G2[1] + wreject('warp: wrong G (frame-changed column)', warp_ok(G2, k0)) + sing = list(w0['G_columns']); sing[1] = sing[0] + try: Kop(sing); raise SystemExit('non-invertible G accepted') + except (AssertionError, StopIteration, ValueError): controls.append('warp: non-invertible G') + res = dict(status='PASS_RESIDUAL_WRAPPERS_ARE_EXACT', frames=len(detail), **({'hyperplane_end_pairs': hdetail} if ends else {}), **({'cold_hyperplane_end_pairs': len(cold_ends)} if cold_ends else {}), wrappers_reject=controls, all_even_weight=all(d['all_even_weight'] for d in detail), **({'warp_recipes_exact_on_all_512_columns': wdetail} if wdetail else {}), + all_totally_isotropic=all(d['totally_isotropic'] for d in detail), detail=detail) + Path(sys.argv[3]).write_text(json.dumps(res, indent=1) + '\n') + print('Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for', len(detail), 'entrance frames, global phase included;', len(controls), 'wrapper mutations rejected; all-even-weight:', res['all_even_weight']) +if __name__ == '__main__': main() diff --git a/research/staged544-native-quadratic-audit/vendor/bw_gauss.py b/research/staged544-native-quadratic-audit/vendor/bw_gauss.py new file mode 100644 index 0000000000..1ff29dfb24 --- /dev/null +++ b/research/staged544-native-quadratic-audit/vendor/bw_gauss.py @@ -0,0 +1,114 @@ +"""Exact Gaussian column products of monomial warps (numpy only). + +Port of PR2226's operators.py (Cinna Davis, @1337isnot1337, with OpenAI Codex assistance; Apache-2.0): change / monomial / +apply_mono / coord / frame / check. Shares no code with the clifford_exact phase compiler or the emitter. Matrices are +(re, im, exp) with entries (re + i im) / 2^exp-scaled: a product of frames and warps is *exact* when every row and column has +one support entry of magnitude exactly 2^exp. +""" +if not __debug__: + raise RuntimeError('assertions must remain enabled') # every check of this stage is an assert +import hashlib +import numpy as np +def lin(cols,x): + out=0 + for i,col in enumerate(cols): + if x>>i&1:out^=col + return out +def f2rank(xs): + b={} + for x in xs: + while x: + i=x.bit_length() + if i not in b:b[i]=x;break + x^=b[i] + return len(b) +def extend(xs,hh): + out=list(xs) + for i in range(hh): + if f2rank(out+[1<len(out):out.append(1<>i)&1)<>i&1)==(M[i]>>j&1) for i in range(hh) for j in range(hh)) + permv=np.array([lin(cols,x) for x in range(1<>i)&1)*(x>>i&1) for i in range(hh))+ + 2*sum(((M[j]>>i)&1)*(x>>i&1)*(x>>j&1) for i in range(hh) for j in range(i+1,hh)) + for x in permv],dtype=np.int64)%4 + return permv,phase +def apply_mono(z,recipe,sign=1): + re,im,exp=z;perm,phase=recipe;rr=np.empty_like(re);ii=np.empty_like(im) + if sign==1: + for p in range(4): + mask=phase==p;r=re[mask];i=im[mask] + if p==0:a,b=r,i + elif p==1:a,b=-i,r + elif p==2:a,b=-r,-i + else:a,b=i,-r + rr[perm[mask]]=a;ii[perm[mask]]=b + else: + r=re[perm];i=im[perm] + for p in range(4): + mask=phase==p + if p==0:a,b=r[mask],i[mask] + elif p==1:a,b=i[mask],-r[mask] + elif p==2:a,b=-r[mask],-i[mask] + else:a,b=-i[mask],r[mask] + rr[mask]=a;ii[mask]=b + return rr,ii,exp +def coord(z,axes,sign=1): + re,im,exp=z + for j in axes: + p=np.array([x for x in range(len(re)) if not(x>>j&1)]);q=p^(1<0 else -1);return frame(z,E,hh,1) +def recipe_matrix(rec,hh): + """Dense exact matrix (re, im, exp=0) of a serialized clifford_exact monomial (matrix_rows, quadratic_rows, linear_Z4, offset, phase): + |x> -> i^(qvalue(x)+phase) |G x ^ offset>, qvalue = sum alpha_i x_i + 2 sum_{i in x} parity((Q_i >> (i+1)) & (x >> (i+1))).""" + N=1<>i&1)+2*sum(((Q[i]>>(i+1))&(x>>(i+1))).bit_count()&1 for i in range(hh) if x>>i&1)+ph)%4 + re[y,x],im[y,x]=unit[q] + return re,im,0 +def equal_scaled(z,m): + """z (scaled by 2^exp) equals m (exp 0) entrywise exactly""" + re,im,exp=z;return bool(np.array_equal(re,m[0]<0 else K.adjoint() + op=ops[f0].adjoint().then(Ks).then(ops[f1]);rec,compiled=lower_child(op) + assert rec['rank']==0 and rec['right'] is None,('warp is not a monomial Clifford',sign,op_id,f0,f1) + Z=bw_gauss.warp_product(G,frames[f0],frames[f1],sign*op_id,n) + assert bw_gauss.equal_scaled(Z,bw_gauss.recipe_matrix(rec['left'],n)),('recipe differs from the exact column product',sign,op_id,f0,f1) + hist['warp']+=1;warps.append({'sign':sign,'op':op_id,'old':f0,'new':f1,'G_columns':G,**rec}) +raw=json.dumps({'children':recipes,'endpoint_adapters':adapters,'warps':warps},sort_keys=True,separators=(',',':')).encode() +(OUT/'CLIFFORD-RECIPES.json').write_bytes(raw) +result={'status':'PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES', + 'canonical_word_sha256':hashlib.sha256(P.read_bytes()).hexdigest(), + 'frames':len(frames),'directed_edges':len(edges),'ranks':{str(k):x for k,x in hist.items()}, + 'endpoint_adapters':len(adapters),'warp_recipes':len(warps),'warp_recipes_rank_zero':all(w['rank']==0 for w in warps), + 'warp_recipes_equal_exact_512_column_product':True, + 'all_child_equalities_include_global_phase':True, + 'recipe_sha256':hashlib.sha256(raw).hexdigest(),'seconds':time.monotonic()-start, + 'scope':'Every local frame, centre transition and warp. Expanded scalar-interface integration and global emitted program are separate obligations.'} +(OUT/'CLIFFORD-REVIEW.json').write_text(json.dumps(result,indent=2)+'\n') +print('PASS exact local phases',result['seconds'],'seconds',flush=True) diff --git a/research/staged544-native-quadratic-audit/vendor/bw_transport.py b/research/staged544-native-quadratic-audit/vendor/bw_transport.py new file mode 100644 index 0000000000..08248542b1 --- /dev/null +++ b/research/staged544-native-quadratic-audit/vendor/bw_transport.py @@ -0,0 +1,416 @@ +"""Transport an explicit BORROW-WORD to the native canonical frame-id form, with warps, and replay it exactly. + +Anticipatory dirty borrowing is the construction of PR2226 (Cinna Davis, @1337isnot1337, with OpenAI Codex +assistance; Apache-2.0): a retiring helper's register is lent to a later helper through a monomial Clifford +logical reference change K_G ("warp"), the retired field's value being replaced by K_G z. The explicit +chronological BORROW-WORD (canonical coordinates, literal frames, warps, cold restoration, inverse cleanup +with private zero buffers) is the builder output of the borrowing work (P1/P2). This script is the +transport stage of the native chain (the analogue of hpe_audit_and_transport.py): it never trusts the builder. +It replays the program in the free operator algebra generated by the warps over every arbitrary input, +in BOTH orientations (forward and inverse-transpose), checks every frame chain and the paid profile, compacts +the helper registers to R' = R - k, and writes the native CANONICAL-WORD. + +usage: bw_transport.py BORROW-WORD.json[.gz] OUT_DIR +""" +if not __debug__: + raise RuntimeError('assertions must remain enabled') # every check of this stage is an assert +import argparse +import copy +import gzip +import hashlib +import json +import sys +import time +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def basis(vs): + pivots = {} + for x in vs: + for k in sorted(pivots, reverse=True): + if x >> k & 1: + x ^= pivots[k] + if x: + k = x.bit_length() - 1 + for j in pivots: + if pivots[j] >> k & 1: + pivots[j] ^= x + pivots[k] = x + return tuple(pivots[k] for k in sorted(pivots, reverse=True)) + + +def span(b): + s = {0} + for x in b: + s |= {t ^ x for t in s} + return frozenset(s) + + +def rank_of(vs): + return len(basis(vs)) + + +def solve_G(cols, h): + """G given as images of e_i; returns (invertible?, image-of-subspace function).""" + def lin(x): + out = 0 + for i, c in enumerate(cols): + if x >> i & 1: + out ^= c + return out + return lin, rank_of(cols) == h + + +# ---- free operator algebra over the warps ------------------------------------------------------------------ +def add_row(dst, src, c): + for key, value in list(src.items()): + z = dst.get(key, Q(0)) + c * value + if z: + dst[key] = z + elif key in dst: + del dst[key] + + +def warp_row(row, op): + out = {} + for (var, word), value in row.items(): + word = word[1:] if word and word[0] == -op else (op,) + word + out[var, word] = value + return out + + +def is_dyadic(q): + return q.denominator & (q.denominator - 1) == 0 + + +def gate_regs(e): + if e[0] == 'add': + return [e[1], e[2]] + if e[0] == 'scale': + return [e[1]] + raise AssertionError(e[0]) + + +def dual(e): + e = list(e) + if e[0] == 'add': + e[1], e[2] = e[2], e[1] + e[3] = -e[3] + elif e[0] == 'scale': + e[2], e[3] = e[3], e[2] + return e + + +def apply_gate(e, rows, back): + if back: + e = dual(e) + if e[0] == 'scale': + q = Q(e[2], e[3]) + assert q + rows[e[1]] = {j: q * x for j, x in rows[e[1]].items()} + else: + assert e[1] != e[2] + add_row(rows[e[1]], rows[e[2]], Q(e[3], e[4])) + + +def run(word_path, out): + t0 = time.monotonic() + word = read(word_path) + assert word['kind'] == 'BORROW-WORD' + v, h, R0 = word['report']['v'], word['report']['h'], word['report']['R'] + assert h == 9 and v == 112 + n0 = 2 * v + R0 + removed = sorted(word['removed']) + assert all(2 * v <= r < n0 for r in removed) and len(set(removed)) == len(removed) + k = len(removed) + kept = [r for r in range(n0) if r not in set(removed)] + newid = {r: i for i, r in enumerate(kept)} + n = len(kept) + R = R0 - k + assert n == 2 * v + R + Zbase = n0 # builder convention: zero buffer of restored c is register n0 + c + ports = word['ports'] + assert len(set(ports)) == v + full = tuple(1 << i for i in range(h - 1, -1, -1)) + frames, frame_ids = [(), full], {(): 0, full: 1} + + def fid(vectors): + frame = basis(vectors) + if frame not in frame_ids: + frame_ids[frame] = len(frames) + frames.append(frame) + return frame_ids[frame] + + def R_(r): # register -> new register (int) or ['Z', c] + if isinstance(r, list): + return r + if r >= Zbase: + return ['Z', newid[r - Zbase]] + return newid[r] + + start = [fid([p]) for p in ports] + [0] * (v + R) + for r, frame in word['start_extra'].items(): + assert 2 * v <= int(r) < n0 and int(r) not in set(removed) + start[newid[int(r)]] = fid(frame) + final = [1] * v + [fid(x for x in range(1, 1 << h) if (x & p).bit_count() % 2 == 0) for p in ports] + [1] * R + helper_final = {} + for r, frame in word['helper_final'].items(): + assert 2 * v <= int(r) < n0 and int(r) not in set(removed) + helper_final[newid[int(r)]] = fid(frame) + final[newid[int(r)]] = helper_final[newid[int(r)]] + zero_buffers = sorted(helper_final) # every restored (hyperplane-ended) helper is replaced by a private zero buffer in the FULL cleanup + + def gate(e): + e = copy.deepcopy(e) + # Four-low lifted-target port (PR2436 mechanism): literal A-phase warp after the entry adapters. + if e[0] == 'warp': + assert len(e) == 5 + return ['warp', R_(e[1]), e[2], fid(e[3]), fid(e[4])] + if e[0] == 'add': + e[1], e[2] = R_(e[1]), R_(e[2]) + else: + e[1] = R_(e[1]) + e[-1] = None if e[-1] is None else fid(e[-1]) + return e + + # warps: operator table; op id = position + 1; G given by images of the basis vectors + warps = [] + for i, (pos, lender, G, frm, to) in enumerate(word['warps']): + warps.append({'op': i + 1, 'B_pos': pos, 'lender': newid[lender], 'G_columns': list(G), + 'from_frame': fid(frm), 'to_frame': fid(to)}) + byp = {} + for w_ in warps: + byp.setdefault(w_['B_pos'], []).append(w_) + + def warp_event(r, op, f0, f1): + return ['warp', r, op, f0, f1] + + # compensation (zero frame): initial corrections first, as twisted additions t += c * W(s) + pre = [] + for term in word['initial_corrections']: + q = Q(term['coefficient']) + pre.append(['tadd', newid[term['target']], newid[term['source']], list(term['operator_word']), + q.numerator, q.denominator, 0]) + precondition = pre + [gate(e) for e in word['precondition']] # the formal initial corrections come first (PR2226 order) + compensation = [gate(e) for e in word['compensation']] + A = [gate(e) for e in word['A']] + cut = [gate(e) for e in word['cut']] + B = [] + for p in range(len(word['B']) + 1): + for w_ in sorted(byp.get(p, []), key=lambda x: x['op']): + B.append(warp_event(w_['lender'], w_['op'], w_['from_frame'], w_['to_frame'])) + if p < len(word['B']): + B.append(gate(word['B'][p])) + assert sum(1 for e in B if e[0] == 'warp') == len(warps) + tail = [gate(e) for e in word['restore']] + cleanup = [] + for e in word['cleanup']: + if e[0] == 'warp': + cleanup.append(warp_event(R_(e[1]), e[2], 1, 1)) + assert basis(e[3]) == full + else: + cleanup.append(gate(e)) + centers = [newid[r] for r in word['centers']] + center_frames = [fid(f) for f in word['center_frames']] + levels = {str(t): fid(f) for t, f in word['target_levels'].items()} + + canonical = dict(h=h, v=v, R=R, ports=ports, frames=frames, start=start, final=final, + precondition=precondition, compensation=compensation, A=A, cut=cut, B=B, tail=tail, + cleanup=cleanup, centers=centers, center_frames=center_frames, target_levels=levels, + warps=warps, zero_buffers=zero_buffers, removed=removed, helper_origin=kept[2 * v:], + borrow=dict(k=k, base=word.get('base'), original_helpers=R0)) + # ---- exact scalar replay in the free algebra over the warps (both orientations) ----------------------------------- + nz = len(zero_buffers) + + def regkey(r): + return tuple(r) if isinstance(r, list) else ('L', r) + + def expand_tadd(e): + _, t, s, wordops, a, b, f = e + ev = [warp_event(s, op, 0, 0) for op in reversed(wordops)] + ev.append(['add', t, s, a, b, 0]) + ev += [warp_event(s, -op, 0, 0) for op in wordops] + return ev + + def program(): + yield 'pre', [x for e in precondition + compensation for x in (expand_tadd(e) if e[0] == 'tadd' else [e])] + yield 'A', A + yield 'A', cut + yield 'B', B + yield 'tail', tail + yield 'cleanup', cleanup + + def fullprog(): + return [(part, e) for part, es in program() for e in es] + prog = fullprog() + for back in (False, True): + rows = {regkey(r): {(r, ()): Q(1)} for r in range(n)} + for c in zero_buffers: + rows[('Z', c)] = {} + for part, e in prog: + if e[0] == 'warp': + key = ('L', e[1]) if not isinstance(e[1], list) else tuple(e[1]) + rows[key] = warp_row(rows[key], e[2]) + else: + if e[0] == 'add': + src, dst = regkey(e[2]), regkey(e[1]) + a, b = e[3], e[4] + if back: + src, dst, a = dst, src, -a + assert src != dst + add_row(rows[dst], rows[src], Q(a, b)) + else: + key = regkey(e[1]) + a, b = (e[3], e[2]) if back else (e[2], e[3]) + q = Q(a, b) + assert q + rows[key] = {j: q * x for j, x in rows[key].items()} + expected = {regkey(r): {(r, ()): Q(1)} for r in range(n)} + for t in range(v): + if back: + expected[('L', t)][(v + t, ())] = Q(-1) + else: + expected[('L', v + t)][(t, ())] = Q(1) + for c in zero_buffers: + expected[('Z', c)] = {} + bad = [key for key in expected if rows[key] != expected[key]] + assert not bad, ('arbitrary-input endpoint (free warp algebra)', back, bad[:8]) + # dyadic primitives + for part, e in prog: + if e[0] == 'add': + assert is_dyadic(Q(e[3], e[4])) + elif e[0] == 'scale': + q = Q(e[2], e[3]) + a = abs(q.numerator) + assert is_dyadic(q) and a and a & (a - 1) == 0 + + wrapped_regs = {r for r in range(2 * v, n) if start[r] != 0 or final[r] != 1} # entering or hyperplane-ended helpers carry wrappers + # ---- frame chains, paid profile, edges, warps ------------------------------------------------------------------- + contains = lambda a, b: basis(frames[a] + frames[b]) == tuple(frames[b]) + cur = start.copy() + paid, edges = Counter(), set() + wsum = {w_['op']: w_ for w_ in warps} + G_of = {} + for w_ in warps: + lin, inv_ = solve_G(w_['G_columns'], h) + assert inv_, ('non-invertible G', w_['op']) + img = basis([lin(x) for x in frames[w_['from_frame']]]) + assert img == tuple(frames[w_['to_frame']]), ('G does not map the from frame onto the to frame', w_['op']) + assert len(frames[w_['from_frame']]) == len(frames[w_['to_frame']]) + G_of[w_['op']] = lin + warp_edges = set() + + def regs_of(e): + return [r for r in gate_regs(e) if not isinstance(r, list)] + + def climb(r, f): + old = cur[r] + assert contains(old, f), ('nonmonotone', r, old, f) + if old != f: + degree = len(frames[f]) - len(frames[old]) + paid[degree] += 1 + edges.add((old, f)) + cur[r] = f + + def do_warp(e): + _, r, op, f0, f1 = e + if isinstance(r, list): + assert r[0] == 'Z' + assert f0 == f1 == 1 + return + assert cur[r] == f0, ('warp frame mismatch', r, op, cur[r], f0) + a = abs(op) + lin = G_of[a] + if op > 0: + ok = basis([lin(x) for x in frames[f0]]) == tuple(frames[f1]) + else: + ok = basis([lin(x) for x in frames[f1]]) == tuple(frames[f0]) + assert ok, ('warp G does not carry the frame', op, f0, f1) + cur[r] = f1 + warp_edges.add((1 if op > 0 else -1, a, f0, f1)) + + # zero-frame phase + for e in precondition + compensation: + if e[0] == 'tadd': + assert start[e[2]] == 0 and start[e[1]] == 0 and e[-1] == 0 and e[2] not in set(wrapped_regs) and all(op != 0 for op in e[3]) + for ev in expand_tadd(e): + if ev[0] == 'warp': + do_warp(ev) # frame 0 -> 0: K_G itself is the physical operator + continue + for r in regs_of(e): + assert start[r] == 0 and e[-1] == 0, ('zero-frame precondition on a nonzero entrance', e) + for part in ('A', 'B'): + if part == 'B': + assert all(cur[r] == f for r, f in zip(centers, center_frames)) + assert all(cur[v + t] == levels.get(str(t), 0) for t in range(v)) + for r, frame in zip(centers, center_frames): + served = {levels.get(str(e[1] - v), 0) for e in cut if e[2] == r} + old = frame + for f in sorted(served, key=lambda f: -len(frames[f])): + assert contains(f, old) + if old != f: + paid[len(frames[old]) - len(frames[f])] += 1 + edges.add((old, f)) + edges.add((f, old)) + old = f + for e in (A if part == 'A' else B): + if e[0] == 'warp': + do_warp(e) + else: + for r in regs_of(e): + climb(r, e[-1]) + for e in tail: + for r in regs_of(e): + climb(r, e[-1]) + for r, f in enumerate(final): + climb(r, f) + for e in cleanup: + if e[0] == 'warp': + do_warp(e) + continue + for r in gate_regs(e): + if isinstance(r, list): + assert r[0] == 'Z' and r[1] in set(zero_buffers) and e[-1] == 1 + else: + assert final[r] == 1 and e[-1] == 1, ('cleanup on a non-FULL end', e) + assert all(len(frames[final[r]]) < h for r in zero_buffers) + assert set(zero_buffers) == set(helper_final) + rep = word['report'] + assert dict(paid) == {int(r): c for r, c in rep['local_profile'].items()}, ('paid profile differs', dict(paid), rep['local_profile']) + canonical['local_profile'] = dict(sorted(paid.items())) + canonical['edges'] = sorted(edges) + canonical['warp_edges'] = sorted(warp_edges) + out.mkdir(parents=True, exist_ok=False) + payload = json.dumps(canonical, sort_keys=True, separators=(',', ':')).encode() + (out / 'CANONICAL-WORD.json.gz').write_bytes(gzip.compress(payload, mtime=0)) + raw = word_path.read_bytes() + (out / 'FULL-WORD.json.gz').write_bytes(gzip.compress(gzip.decompress(raw) if word_path.suffix == '.gz' else raw, mtime=0)) + receipt = dict(status='PASS_BORROW_WORD_FREE_ALGEBRA_ALL_COLUMNS_AND_NATIVE_FRAMES', + input_content_sha256=hashlib.sha256(gzip.decompress(raw) if word_path.suffix == '.gz' else raw).hexdigest(), + canonical_content_sha256=hashlib.sha256(payload).hexdigest(), + live_columns_each_orientation=n, helpers=R, original_helpers=R0, removed_helpers=k, + zero_buffers=nz, warps=len(warps), warp_events=sum(e[0] == 'warp' for part, e in prog), + initial_corrections=len(word['initial_corrections']), + scalar_operations=len([1 for p, e in prog if e[0] != 'warp']), + local_profile=dict(sorted(paid.items())), local_rank_mass=sum(r * z for r, z in paid.items()), + widths=[len(frames[final[r]]) - len(frames[start[r]]) for r in range(2 * v, n)], + frames=len(frames), directed_edges=len(edges), warp_edge_classes=len(warp_edges), + seconds=time.monotonic() - t0, + scope='Fresh exact forward and inverse-transpose replay over a free noncommutative warp algebra on every arbitrary input, native frame chains, dyadic primitives, zero buffers returned to zero. Physical Clifford exactness of every warp is checked by the local replay and the phase recipes.') + (out / 'SCALAR-FRAME-AUDIT.json').write_text(json.dumps(receipt, indent=2) + '\n') + print(json.dumps({k_: x for k_, x in receipt.items() if k_ != 'widths'}, indent=2), flush=True) + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('word', type=Path) + ap.add_argument('out', type=Path) + a = ap.parse_args() + run(a.word, a.out) diff --git a/research/staged544-native-quadratic-audit/vendor/clifford_exact.py b/research/staged544-native-quadratic-audit/vendor/clifford_exact.py new file mode 100644 index 0000000000..166841a037 --- /dev/null +++ b/research/staged544-native-quadratic-audit/vendor/clifford_exact.py @@ -0,0 +1,149 @@ +"""Small exact Gaussian-dyadic Clifford compiler, independent of gx internals. +Paulis use i^p X^x Z^z. State vectors use integer Gaussian numerators / 2^d. +The tableau is supplemented by a literal circuit, so global phases are kept. +""" +from dataclasses import dataclass + +def parity(x):return x.bit_count()&1 +def rank(rows): + p={} + for x in rows: + while x: + b=x.bit_length()-1 + if b not in p:p[b]=x;break + x^=p[b] + return len(p) +def transpose(rows,n):return tuple(sum(((rows[j]>>i)&1)<>j&1);a[j],a[k]=a[k],a[j] + for i in range(n): + if i!=j and a[i]>>j&1:a[i]^=a[j] + assert [r&((1<>n for r in a) +def basis_extend(cols,n): + out=[] + for x in list(cols)+[1<len(out):out.append(x) + assert len(out)==n + return tuple(out) +def nullspace(rows,n): + a=list(rows);p=[];k=0 + for j in range(n): + t=next((i for i in range(k,len(a)) if a[i]>>j&1),None) + if t is None:continue + a[t],a[k]=a[k],a[t] + for i in range(len(a)): + if i!=k and a[i]>>j&1:a[i]^=a[k] + p.append(j);k+=1 + return tuple((1<>j)&1)<>i&1:out=pmul(out,T[i]) + for i in range(n): + if z>>i&1:out=pmul(out,T[n+i]) + return out +def compose(A,B):return tuple(apply(A,p) for p in B) +def inverse(T): + n=len(T)//2;cols=[x|(z<>n;u,v,p=apply(T,(x,z,0));assert (u,v)==identity(n)[j][:2];out.append((x,z,(-p)%4)) + return tuple(out) +def qvalue(Q,alpha,x,n): + return (sum(alpha[i] for i in range(n) if x>>i&1)+2*sum(parity((Q[i]>>(i+1))&(x>>(i+1))) for i in range(n) if x>>i&1))%4 +def mul_i(a,p): + x,y=a;p%=4 + return [(x,y),(-y,x),(-x,-y),(y,-x)][p] +@dataclass +class Op: + n:int + tab:tuple + circuit:list + def then(self,b): + assert self.n==b.n + return Op(self.n,compose(b.tab,self.tab),self.circuit+b.circuit) + def adjoint(self): + circ=[] + for e in reversed(self.circuit): + if e[0]=='P':circ.append(('P',inv(e[1],self.n))) + elif e[0]=='D':circ.append(('D',e[1],tuple((-x)%4 for x in e[2]))) + elif e[0]=='C':circ.append(('C',e[1],-e[2])) + elif e[0]=='phase':circ.append(('phase',(-e[1])%4)) + else:circ.append(e) + return Op(self.n,inverse(self.tab),circ) + def zero_state(self,basis=0): + N=1<>i)&1 for i in range(n)) + assert all(alpha[i]%2==(Q[i]>>i)&1 for i in range(n)) + return Op(n,tuple([(1<>i&1 else 0,1<>i&1 else 0) for i in range(n)]),[('C',q,sgn)]) +def xgate(n,b):return Op(n,tuple([(1<>i)&1)) for i in range(n)]),[('X',b)]) +def fourier(n,axes=None): + out=ident(n) + for i in range(n) if axes is None else axes:out=out.then(cgate(n,1<len(selected):picks.append(j);selected.append(x) + assert len(picks)==r and all(x>>r==0 for x in Bcols) + Br=transpose(selected,r);Bi=inv(Br,r);Dr=transpose([Dcols[j]&((1<0 else w[4],terminal=w[4]if sign>0 else w[3],sign=sign),dict(provider=tag,kind='warp',index=i,register=w[1],version=version,sign=sign)) + e.need(len(promoted)==26 and len(actual)==5 and len(indexonly)==47,'changed interface coverage') + counts[tag]=dict(promoted_helpers=promoted,changed_native_warp_indices=actual,index_only_warp_changes=indexonly) + return out,counts + +def coverage_check(items,words): + expected,counts=expected_coverage(words) + actual={key(item):item['coverage']for item in items} + e.need(len(actual)==len(items),'duplicate recipe descriptor') + e.need(actual==expected,'source-to-interface coverage') + return counts + +def controls(items,words): + results=[] + def rejects(name,fn): + try:fn() + except (ValueError,KeyError):results.append(name);return + raise ValueError('control accepted: '+name) + warp=next(x for x in items if x['kind']=='warp'and len(x['entrance'])==5) + residual=next(x for x in items if x['kind']=='residual'and len(x['terminal'])==5) + for side in ['left','right']: + z=copy.deepcopy(residual);z['recipe'][side]['phase']=(z['recipe'][side]['phase']+1)%4 + rejects('residual '+side+' global phase',lambda z=z:e.check_item(z)) + for name,mut in [ + ('warp global phase',lambda z:z['recipe']['left'].__setitem__('phase',(z['recipe']['left']['phase']+1)%4)), + ('warp linear phase',lambda z:z['recipe']['left']['linear_Z4'].__setitem__(0,(z['recipe']['left']['linear_Z4'][0]+2)%4)), + ('warp quadratic cocycle',lambda z:(z['recipe']['left']['quadratic_rows'].__setitem__(0,z['recipe']['left']['quadratic_rows'][0]^2),z['recipe']['left']['quadratic_rows'].__setitem__(1,z['recipe']['left']['quadratic_rows'][1]^1))), + ('warp translation',lambda z:z['recipe']['left'].__setitem__('offset',z['recipe']['left']['offset']^1)), + ('warp signed inverse',lambda z:z.__setitem__('sign',-z['sign'])), + ('warp wrong terminal',lambda z:z.__setitem__('terminal',z['terminal'][:-1])), + ('warp singular G',lambda z:z['G_columns'].__setitem__(0,z['G_columns'][1])), + ]: + z=copy.deepcopy(warp);mut(z);rejects(name,lambda z=z:e.check_item(z)) + z=copy.deepcopy(residual);z['terminal'].append(z['terminal'][0]);z['recipe']['rank']=len(z['terminal']) + rejects('dependent terminal frame basis',lambda:e.check_item(z)) + z=copy.deepcopy(residual);z['recipe']['rank']=4 + rejects('promoted residual billed as width4',lambda:e.check_item(z)) + z=copy.deepcopy(residual);z['recipe']['left'],z['recipe']['right']=z['recipe']['right'],z['recipe']['left'] + rejects('residual wrappers swapped',lambda:e.check_item(z)) + z=copy.deepcopy(items);z.pop() + rejects('one interface omitted',lambda:coverage_check(z,words)) + z=copy.deepcopy(items);z[0]['coverage'][0]['provider']='other' + rejects('coverage provider relabelled',lambda:coverage_check(z,words)) + # A phase-blind permutation checker provably accepts this mutant. Our check rejects it above. + clean=e.decoded(warp['recipe']['left']);m=copy.deepcopy(warp['recipe']['left']);m['phase']=(m['phase']+1)%4 + e.need(clean[0]==e.decoded(m)[0] and clean[1]!=e.decoded(m)[1],'phase-blind witness') + # Explicit inverse/unitary controls on every compiled monomial over every basis column. + mono_count=0 + for item in items: + for side in ['left','right']: + if item['recipe'][side]is None:continue + k=e.decoded(item['recipe'][side]);mono_count+=1 + for x in range(e.SIZE):e.need(e.mono(e.mono({x:(1,0)},k),k,True)=={x:(1,0)},'monomial inverse') + return dict(rejected=results,phase_blind_mutant_preserves_all_512_permutation_columns=True,monomial_inverse_columns=mono_count*e.SIZE) + +def run(with_controls=True): + authenticate();items=json.loads((P/'RECIPES.json').read_text())['items'] + words={tag:tuple(json.load(gzip.open(P/'frozen'/(name+tag+'.json.gz')))for name in ['old-WORD-','WORD-'])for tag in ['base','extra']} + counts=coverage_check(items,words) + checks=[e.check_item(item)for item in items] + result=dict(status='PASS_INDEPENDENT_QUADRATIC_PHASE_INTERFACES',coverage=counts,unique_interfaces=len(items),source_occurrences=sum(len(x['coverage'])for x in items),all_basis_columns=len(items)*e.SIZE,items=checks) + result['lift_cocycle']=e.cocycle_certificate(items) + result['release_binding']=release_binding() + if with_controls:result['controls']=controls(items,words) + return result + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--emit',type=Path);args=ap.parse_args();t=time.monotonic();result=run() + if args.emit: + e.need(P not in args.emit.resolve().parents,'receipt output must be outside package') + args.emit.write_text(json.dumps(result,indent=2)+'\n') + else:e.need(result==json.loads((P/'RESULT.json').read_text()),'retained result mismatch') + print(result['status'],json.dumps({k:result[k]for k in ['unique_interfaces','source_occurrences','all_basis_columns']}),'seconds',round(time.monotonic()-t,3))