diff --git a/research/helper408-rank7-pairing/.gitattributes b/research/helper408-rank7-pairing/.gitattributes new file mode 100644 index 0000000000..fa1385d99a --- /dev/null +++ b/research/helper408-rank7-pairing/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/research/helper408-rank7-pairing/BOUNDARY.md b/research/helper408-rank7-pairing/BOUNDARY.md new file mode 100644 index 0000000000..fd7de6b25b --- /dev/null +++ b/research/helper408-rank7-pairing/BOUNDARY.md @@ -0,0 +1,255 @@ +# A diagonal obstruction to rank-seven helper408 extraction + +For the two pinned PR2894 providers carried by PR2908, helper408 cannot be +isolated and restored at its original rank-seven last frame by the proposed +scalar input/output basis changes. This remains impossible when protected +terminal helpers are generously made available. The decisive certificate is an +11 by 11 diagonal forbidden-input minor with determinant `-1/4`. + +This is a fixed-word, fixed-entrance, fixed-terminal-support obstruction. It +does not exclude a changed middle word, changed source access, additional +intermediate operations, or a different endpoint. There is no new supplier and +no new kappa claim. + +## Exact premises + +The source scientific pins are PR2908 head +`51309592971e3b5be935599eed2a95404dc7781e`, containing the PR2894 providers at +`18d03c447886895ef9abf888398178e0428533ca`. The shared research base is +`475fec190d5ad746bd4690574dca30d6901acdaf`. Source bytes, provenance and their +independent integrity gate are recorded by the surrounding package. + +| Provider | SHA256 of compressed source bytes | +| --- | --- | +| `PARENT-base.json.gz` | `c20a470aec0f3e61833cb41fe190639eb358f58017143d2336c55c80fba265eb` | +| `PARENT-extra.json.gz` | `db34e39876241087b581ed9374c53e9cd393e3e86ef6103bfb54f3077c3d2761` | + +Work over the dyadic ring `Z[1/2]`, enlarged to `Q` for the complete linear +space computation. Every live data/helper input is arbitrary and independent; +no helper is assumed initially zero. A zero entrance *frame* does not mean a +zero value. The non-target coordinates are + +``` +L = {0,...,703} \ (removed union {112,...,223}), |L| = 520. +``` + +`M` is the complete non-target middle operator: `A[prelude_events:]`, followed +chronologically by `B` and all its inserted warps, followed by `restore`, +omitting exactly the target writes. Each warp is its own invertible formal +generator, multiplied on the left. Only adjacent inverse cancellation is +allowed. No source auditor or source `structure.py` is imported. The exact +replay uses 4,583 gates and produces 11,912 nonzero free-word terms. + +Let `P` be the union of `helper_final`, `start_extra`, and initial-correction +source registers. The allowed input coordinates are + +``` +H = {r in L : r >= 224 and r not in P}, |H| = 226. +``` + +Input basis changes `S` are arbitrary invertible scalar changes inside `H`, +extended by the identity elsewhere. In particular, existing 72 cold helper +entrances, nonzero entrance frames, and operator-correction sources stay +protected. The checker also verifies that no prelude warp lender lies in `H`. + +The proposed helper408 entrance/terminal pair is + +``` +(empty, E7), E7 = span_GF(2)(256,128,66,36,22,8,1). +``` + +If a supplier existed, its physical residual would be the paired operator +`T_native(E7) T_native(empty)^-1`. No native factorization or phase identity +for this residual is assumed or certified here. The symbol `T` below denotes +the proposed *scalar output basis change*, not this native residual. + +## Deriving the terminal support + +Replay the entire literal frame chain, including all `A` incidents, target +writes' source incidents, the 24 prelude warps, all 72 `B` warps, and the +`restore` incidents. Scalar incidents must be monotone; a warp checks its +recorded incoming frame and replaces it by its recorded outgoing frame. A +union of all historical frames would be incorrect across these resets. +The replay covers 10,456 scalar register incidents. + +Let `F_r` be the frame after `restore` and before the prescribed final climbs. +Every register available to an appended scalar gate at `E7` must satisfy +`F_r <= E7`. Thus the maximal relaxed non-target support is + +``` +R = (105,307,309,314,369,371,373,378,408,572,573). +``` + +The following are the derived last frames; the list is complete. + +| Registers | Last frame basis | +| --- | --- | +| 105, 408, 572, 573 | `(256,128,66,36,22,8,1)` | +| 307, 309, 314 | `(385,74,44,30)` | +| 369, 371, 373, 378 | `(392,67,37,22)` | + +The nine registers in `R \ {105,408}` are existing cold helpers. Allowing +arbitrary terminal mixing on them relaxes the requirement that those existing +extractions survive. A negative result for this larger `R` therefore also +applies with the original cold-helper protection enforced. Ordinary data +register105 is likewise allowed. Target registers are excluded throughout. + +## Necessary paired identities + +Write the desired isolated helper as `h=408`. If scalar changes `S,T` produce +both an identity column and identity row on that helper, define + +``` +v = S e_h, alpha = e_h^T T, +y = M v, u = alpha M. +``` + +Then `v,u` are scalar supported on `H`, `y,alpha` are scalar supported on `R`, +and `alpha y = u v = 1`. Indeed, the row identity +`e_h^T T M S = e_h^T` already gives +`alpha M = e_h^T S^-1`, which is supported on `H` and nonzero. + +The complete rational spaces checked here are + +``` +V = {v in Q^H : Mv is scalar and supported on R}, +A = {alpha in Q^R : alpha M is scalar and supported on H}. +``` + +They have dimensions zero and zero in both source variants. The forward +system has 608 nonzero coefficient equations and rank226; the dual system has +17 nonzero coefficient equations and rank11. Consequently the full pairing +matrix on their bases is empty and zero. This is exact rational elimination, +not a random or modular rank estimate. + +## Small certificate: every terminal readout vanishes + +The full space computation is corroborating evidence. The following minor +alone proves the obstruction. In the order of `R` above, take the forbidden +input columns + +``` +J = (14,307,309,314,369,371,373,378,41,572,573). +``` + +Every member of `J` is outside `H`: 14 and 41 are data inputs and the others +are protected cold helpers. Exact free-word replay gives + +``` +M[R,J] = diag(-1/2,1,1,1,1,1,1,1,1/2,1,1), +det M[R,J] = -1/4. +``` + +All off-diagonal polynomials are zero, and all diagonal polynomials are the +displayed scalars with no nonempty operator words. Thus, for a readout +`alpha` supported on `R`, the requirement that `alpha M` be supported on `H` +forces + +``` +-alpha_105/2 = 0, alpha_408/2 = 0, +alpha_r = 0 for r = 307,309,314,369,371,373,378,572,573. +``` + +Hence `alpha=0`, contradicting the required unit pairing or merely the +nonzero row identity. The determinant is a unit in `Z[1/2]`; no odd-denominator +normalization is used. The obstruction remains valid over `Q` and for every +representation of the frozen free-operator word on a dyadic module. Because +the minor is already a scalar identity, this conclusion does not depend on +distinct nonempty free words remaining independent after specialization. + +The two source files were independently loaded and replayed. Their complete +non-target middle operators compare equal, with canonical term-list SHA256 +`d1c29a23fbe07da932c44d9e9b1467ab866894faac115d456eae8e42069aec68` under the +encoding in `operator_digest`. Neither equality nor one variant's result is +assumed when checking the other. + +## Positive calibration and invalid controls + +The existing PR2908 rank-eight `E52=(256,128,64,36,20,8,2,1)` certificate is +reconstructed from its 24 input gates and three output gates. The checker +derives `S,T,v,u,alpha,y` and verifies all seven displayed identities: + +``` +S e408 = v, u S = e408^T, M v = y, +alpha M = u, alpha y = 1, T y = e408, +e408^T T = alpha. +``` + +In particular it obtains `y=2 e42` and +`alpha=e408^T+(1/2)e42^T+e105^T`, with unit pairing. Its explicit `v,u` are +included in the checker output. Register42 has last frame `E52`, so it is +unavailable at `E7`. This explains a concrete capability lost by the proposed +smaller endpoint. + +The following changed candidates are each rejected for an actual failed +equation or support requirement in both variants: + +| Changed candidate | Failed obligation | +| --- | --- | +| Change known `v_226` from `1/2` to `1` | `Mv` scalar/support requirement at E52 | +| Change known `alpha_42` from `1/2` to `1` | `alpha M` scalar/support requirement on H | +| Claim the unchanged known E52 pair at E7 | Terminal readout support: register42 is outside R | + +These are algebraic or frame mutants of a valid witness. No checksum failure +is counted as a mathematical negative control. + +## Cost consequences and remaining boundaries + +There is no changed word and therefore no realized local cost change. The +proposed saving fails before target-compensation changes, native lowering, +cleanup regeneration, owner assignment or recursive admission can be +constructed. None of those obligations may be waived by this obstruction. + +For the favorable screen declared before computation, an ideal extraction +would remove helper408's rank-two terminal climb from the PR2894 profile, +change its width9 to width7, and require a 73rd private zero buffer. Relative +to PR2908's actual rank-eight extraction, which already pays that buffer and +has local delta `+3 H1 - 2 H2` from PR2894, the optimistic local child-count +delta would be `-3 H1 + H2` per supplier call. There are 666 calls; every +other local child, all eight center H8 children, every bridge and every owner +residue remain charged. If `k_b` copies of helper408 are present in owner bin +`b`, shrinking each width8 to width7 changes its idle rank from `r_b` to +`r_b+k_b`, not necessarily only by one. The favorable raw moment delta is + +``` +666 * (-3 * 1^p + 2^p) + sum_b ((r_b+k_b)^p - r_b^p), 0 < p < 1, +sum_b k_b = 666. +``` + +This is only the unrealizable favorable budget being screened, with added +terminal climbs, scalar compensation, inverse cleanup, native conversion, +routing, precision and stock changes still owed. The parent package owns the +literal owner-bin verification and full cost ledger. Physical families would +be `66304+408+8+73+2=66795` if no further scratch were needed; this count does +not certify a new supplier. No native phase, chronological owner realization, +all-size recurrence, precision, machine or outer theorem follows here. + +This finite exact computation has a short written linear-algebra implication +for arbitrary dirty inputs and arbitrary allowed scalar basis changes. It is +not a formal-kernel proof and is not a classification of other words or +endpoints. In particular, a source-partner recovery that changes `H`, a +changed middle `M`, or altered incident frames would invalidate one of the +explicit premises and would require its own proof and full invoice. + +## Reproduction and credit + +From the repository root, using only Python's standard library: + +```sh +python3 -I -O -B research/helper408-rank7-pairing/verify_boundary.py +``` + +Expected terminal status: `PASS_SCOPED_RANK7_OBSTRUCTION`. The checker also +prints the complete support sets, dimensions, diagonal certificate, source +digests, positive calibration and the three rejected mutants for each +provider. Its source hashes authenticate the input bytes; its exact checks use +explicit exceptions and remain active with Python optimization enabled. + +The paired boundary construction and E52 calibration are credited to Jeremy +Diviney (PR2908). The input providers and chronological frame conventions are +credited to Jeremy Kothe (PR2894 and PR2833), with the retained Yiyang Lu +(PR2857), Dugongue (PR2863), Marius-Paul Dumitrean (PR2843/2802), Philippe Van +Velzen (PR2853), Tekalign and exact/native lineage credits in the surrounding +package. This new scoped obstruction and independent standard-library checker +were prepared for Ross Richardson with substantial OpenAI Codex assistance. +Apache-2.0. diff --git a/research/helper408-rank7-pairing/INDEPENDENT.md b/research/helper408-rank7-pairing/INDEPENDENT.md new file mode 100644 index 0000000000..ecf922c35a --- /dev/null +++ b/research/helper408-rank7-pairing/INDEPENDENT.md @@ -0,0 +1,264 @@ +# Independent inverse-column and chronological row certificates + +The proposed rank-seven replacement of PR2908's first paired extraction is +impossible with its pinned PR2894 middle word and the declared protected +entrances. Both admissible terminal spaces are zero, independently in the +`base` and `extra` providers. Two small exact restrictions prove this without +depending on the full nullspace calculation. + +This check was derived before reading `verify_boundary.py` or `BOUNDARY.md`. +It imports neither file, nor any predecessor Python module. After obtaining +the result, the primary proof was cross-read: its forward forbidden-input +minor agrees with the independent chronological row calculation below. + +## Fixed domain and actual cut + +The scientific sources are Jeremy Diviney's PR2908 at +`51309592971e3b5be935599eed2a95404dc7781e`, carrying Jeremy Kothe's PR2894 +providers at `18d03c447886895ef9abf888398178e0428533ca`. Each direct replay checks +both SHA256 and Git-blob identities for all five used data files against +`SOURCE-PINS.json`; these two commit identifiers are also fixed in the checker. + +All non-target input values are arbitrary. The scalar coefficient domain is +`Q`, which contains the proposed dyadic domain. Warps are independent invertible +noncommuting operators; only adjacent inverse symbols cancel. The map `M` +contains the 4,583 chronological non-target gates from `A[84:]`, `B` with its +72 numbered warps inserted at their recorded positions, and `restore`. +Targets 112 through 223 are omitted. A target-to-non-target source edge would +invalidate that reduction and is explicitly rejected. + +The eligible input set `H` contains 226 helpers. It excludes all removed +registers, all 72 existing `helper_final` registers, every `start_extra` +register and every source of the initial operator corrections. Input changes +`S` must act inside `H` and be the identity elsewhere. Zero entrance frame +does not mean a zero initial value. + +At the actual cut after `restore`, before final climbs, the complete relaxed +terminal support at + +``` +E7 = span_GF(2)(256,128,66,36,22,8,1) +``` + +is, in this order, + +``` +R = (105,307,309,314,369,371,373,378,408,572,573). +``` + +The last-frame collector includes all incidences of the full `A` word, +including prelude warps and sources of target writes; all `B` gates and warp +resets; and all `restore` gates. Every live register is observed. It also checks +the center frames at the separate target-only cut and all 72 retained cold +helper endpoints. Thus omission of target writes from `M` does not omit their +source incidences from terminal eligibility. The primary checker separately +validates monotonicity at every scalar incidence and both ends of every warp. + +Let + +``` +C = (307,309,314,369,371,373,378,572,573). +``` + +These nine terminal registers are existing cold helpers. The independent +test generously permits them in the terminal support. Preserving them would +only restrict the proposed terminal change `T` further. The data register105 +is also permitted, while targets and removed registers are excluded. + +## The inverse-column restriction is the identity matrix + +For an arbitrary scalar `y` supported on `R`, exact inverse replay gives + +``` +(M^-1 y)_550 = y_408, +(M^-1 y)_551 = y_105, +(M^-1 y)_c = y_c for each c in C. +``` + +These equalities are complete operator-polynomial identities: the displayed +coordinates have no omitted nonempty operator words or other coefficients. +Registers 550 and 551 are protected nonzero-entry `start_extra` helpers, +and every member of `C` is a protected cold helper. All eleven coordinates +are outside `H`. + +Equivalently, in the given order of `R`, set + +``` +Jinv = (551,307,309,314,369,371,373,378,550,572,573). +``` + +Then the exact 11 by 11 restriction is + +``` +(M^-1)[Jinv,R] = I_11. +``` + +Its determinant is one. Therefore `M^-1 y` supported on `H` forces `y=0`. +This already excludes any nonzero extractable column at `E7`. + +## An independent row restriction has determinant -1/4 + +For a scalar covector `alpha` supported on the same `R`, chronological right +multiplication gives + +``` +(alpha M)_14 = -alpha_105/2, +(alpha M)_41 = alpha_408/2, +(alpha M)_c = alpha_c for each c in C. +``` + +Again these are complete operator identities. Data inputs 14 and 41 and +all nine cold inputs are outside `H`. In the order + +``` +Jrow = (14,307,309,314,369,371,373,378,41,572,573) +``` + +the restriction is + +``` +M[R,Jrow] = diag(-1/2,1,1,1,1,1,1,1,1/2,1,1). +``` + +Its determinant is `-1/4`, a unit already over `Z[1/2]`. Hence the scalar +support condition on `alpha M` forces `alpha=0` independently of the column +argument. Because both restrictions are scalar identities, their obstruction +survives every representation of the pinned free-operator word on a dyadic +module; no independence of nonempty words after specialization is needed. + +For clarity about chronology, write `M=G_n ... G_1`. To compute `M^-1 y`, +the checker visits `G_n,...,G_1` and applies each inverse on the left. To +compute `alpha M`, it visits the same reversed chronological list and +multiplies each `G_i` on the right. A shear `d += q s` updates the covector +coordinate `s += q d`; an operator on `d` appends its symbol to the right +of each existing coefficient word. Prepending here would be wrong. + +## Consequence for simultaneous input and terminal changes + +Suppose invertible scalar changes `S` on `H` and `T` on `R` produced both +the helper408 identity row and identity column in `T M S`. Then + +``` +v = S e408, y = T^-1 e408, +alpha = e408^T T, u = e408^T S^-1 +``` + +would satisfy + +``` +M v = y, alpha M = u, alpha y = u v = 1, +v,u supported on H, y,alpha supported on R. +``` + +The inverse-column identity already forces `y=0`, and the row identity +independently forces `alpha=0`; either contradicts the unit pairing. +The full rational calculation confirms dimensions zero and zero, using +11 inverse-column constraints of rank11 and 17 row constraints of rank11. +This covers every allowed rational scalar basis change, hence every allowed +dyadic one. It is not merely a failed candidate search. + +## Existing rank-eight composition and defect-sensitive controls + +The checker reconstructs the existing PR2908 composition from its actual +`WORD-*` providers and `TRANSFORM.json`. Its 24 input gates define `S`, and +its three terminal gates are + +``` +408 += (1/2) * 42 +408 += 105 +42 -= 2 * 408. +``` + +They act at `E8=(256,128,64,36,20,8,2,1)` and give + +``` +y = 2 e42, +alpha = e408^T + (1/2)e42^T + e105^T. +``` + +The replay independently derives `v=S e408` and `u=e408^T S^-1`, then +checks `Mv=y`, `alpha M=u`, `T y=e408`, `u S=e408^T`, and both pairings +equal one. The complete rank-eight terminal spaces have dimensions 7 and 4 +with a nonzero pairing matrix. Terminal register42 has frame `E8` and is +unavailable at `E7`. + +The simultaneous literal recipe is also checked: the new `A` is exactly the +old prelude, followed by the input gates, followed by the old remaining `A`; +new `restore` is old `restore` followed by the terminal gates. `B`, all warps, +prelude length, initial operator corrections, removed helpers and entry data +stay exactly equal. Input gates touch only `H` at frame zero. Terminal gates +touch no existing cold helper, and the old `helper_final` map is preserved +with only the new helper408 endpoint added. + +For every compensation target, the actual new correction map equals `C S`. +The incorrect `C S^-1` map differs and is rejected. This matters because +the correction observes the transformed raw input, rather than undoing `S`. + +Both literal cleanup lists are independently rebuilt by reversing the entire +changed non-target word and inverting every gate. The cold-helper host map is +`r -> r+704`, and all cleanup gates use the complete rank-nine frame. The +parent has 4,583 cleanup gates and 72 private buffers; the existing rank-eight +composition has 4,610 cleanup gates and 73 private buffers. This checks the +literal inverse recipe; the inherited native allocation and initialization of +those buffers are not re-proved here. + +The following controls are required to distinguish actual semantic defects: + +| Changed object | Observed consequence | +| --- | --- | +| Admit register42 into the rank-seven terminal support | A one-dimensional column and row pair appears with nonzero pairing | +| Replace `C S` by `C S^-1` | Actual target compensation differs | +| Omit the inverse of the final terminal gate | `M v = y` fails | +| Use forward chronology for the row pullback | `alpha M = u` fails | +| Add a target112-to-helper408 gate | Non-target reduction explicitly rejects the new dependency | + +The operator implementation also distinguishes the words `(1,2)` and `(2,1)` +and checks left and right adjacent inverse cancellation. All mathematical and +integrity checks use explicit exceptions and remain active under Python `-O`. + +## Scope, costs and next obligations + +There is no new word and no paid saving: the proposed endpoint fails its +necessary algebraic interface before a cost improvement can be realized. +The declared favorable recursive screen, full owner-bin multiplicities, +unchanged centers and bridges, helper stock, and remaining scalar costs are +accounted for in the parent package. The above rank-eight gate and buffer +counts validate the predecessor composition only; they are not a newly +improved profile. + +This is exact finite symbolic replay plus a written implication for arbitrary +dirty input values and all scalar changes within the fixed support class. It +is not a formal-kernel proof, an all-size supplier theorem, or a restriction +on changed middles or alternative endpoints. Native phases, compensation +lowering, physical owner realization, full recursive moments, precision and +outer assembly would all remain necessary for any changed construction. + +An eligible next mechanism must change a premise that the witnesses use: +for example, paid recovery that changes the admissible entrances550/551, +the middle word, or the terminal incidence at register42. Such a change +requires a new combined word and a complete invoice. No such construction +or search is included here. + +## Reproduction, independence and credit + +From the repository root: + +```sh +python3 -I -O -B research/helper408-rank7-pairing/check_independent.py +``` + +The exact stdout JSON ends with status +`PASS_INDEPENDENT_RANK7_PAIRING no_new_kappa`; it includes each provider's +support set, dimensions, two small restrictions, rank-eight bases, source +hashes, cleanup counts and control outcomes. It can be redirected to a +receipt without changing the computation. Only the standard library is used. + +The new contribution is the independently derived inverse-column certificate, +its independent row counterpart and the composition-sensitive calibration. +The paired extraction mechanism, its actual 24+3-gate word, and the rank-eight +positive result belong to Jeremy Diviney (PR2908). The retained provider word +and earlier staged composition belong to Jeremy Kothe (PR2894/2833), with the +Yiyang Lu, Dugongue, Marius-Paul Dumitrean, Philippe Van Velzen, Tekalign and +exact/native lineage credit retained in `NOTICE.md` and the pinned sources. +Prepared for Ross Richardson with substantial OpenAI Codex assistance. +Apache-2.0. diff --git a/research/helper408-rank7-pairing/NOTICE.md b/research/helper408-rank7-pairing/NOTICE.md new file mode 100644 index 0000000000..ec74fb826b --- /dev/null +++ b/research/helper408-rank7-pairing/NOTICE.md @@ -0,0 +1,7 @@ +# Attribution and scope + +Prepared for Ross Richardson with substantial OpenAI Codex GPT-6 Astra assistance, including two separately assigned mathematical specialists. No independent human or formal-kernel review is claimed. Apache-2.0, under the repository LICENSE. + +Jeremy Diviney supplied PR2908 (51309592971e3b5be935599eed2a95404dc7781e), its first paired helper408 extraction, exact source words and actual T74 allocation. Jeremy Kothe supplied PR2894 (18d03c447886895ef9abf888398178e0428533ca), the parent word and preload changes. Yiyang Lu/PR2857, Dugongue/PR2863, Marius-Paul Dumitrean/PR2843/2802, Philippe Van Velzen/PR2853, Tekalign and the retained exact/native authors retain their separate contributions; the copied sources/CREDITS.md records the full lineage. PR2904's fixed-gate screen is a scoped predecessor, not this terminal-basis test. + +The supplied word and allocation data and documents are copied byte-for-byte from PR2908 with SHA-256 and Git blob IDs in SOURCE-PINS.json. No predecessor executable is imported. The new exact checkers and written minor obstruction test a different rank-seven endpoint; they do not recertify PR2908's full native/outer release, establish a new kappa, or admit any multiplication theorem. The rank-eight source is a positive control. diff --git a/research/helper408-rank7-pairing/README.md b/research/helper408-rank7-pairing/README.md new file mode 100644 index 0000000000..fa58d69b43 --- /dev/null +++ b/research/helper408-rank7-pairing/README.md @@ -0,0 +1,155 @@ +# Rank-seven helper408 extraction is impossible at the fixed terminal cut + +For both PR2894 parent providers carried by PR2908, arbitrary allowed scalar +input and output basis changes cannot isolate helper408 at its original +rank-seven last frame. Two independent exact implementations produce small +invertible forbidden-input restrictions. The conclusion covers all rational +scalar changes in the declared support class, hence all dyadic ones. It is a +scoped obstruction, with **no new supplier or kappa**. + +The question comes from the paired extraction mechanism in +[Discussion2612](https://github.com/CrocSwap/integer-mult-bounds/discussions/2612) +and [PR2908](https://github.com/CrocSwap/integer-mult-bounds/pull/2908). That +predecessor succeeds at rank eight. This package tests whether its first +helper408 extraction could instead stop at rank seven; the ongoing second +and subsequent rank-eight extraction work is a separate question. + +## Fixed model and decisive witnesses + +Freeze PR2908 at `51309592971e3b5be935599eed2a95404dc7781e`, carrying PR2894 +at `18d03c447886895ef9abf888398178e0428533ca`. All data and helper values are +arbitrary. The map `M` contains the 4,583 non-target gates after the prelude, +including all 72 middle warps. Input scalar changes act only on the 226 +unprotected zero-frame helpers `H`; zero frame does not mean zero value. +Targets, existing cold entrances, nonzero entrances and initial-correction +sources stay protected. + +The complete relaxed terminal support at +`E7=(256,128,66,36,22,8,1)` is + +``` +R = (105,307,309,314,369,371,373,378,408,572,573). +``` + +This generously includes nine existing cold helpers and data register105. +For the forbidden input coordinates + +``` +J = (14,307,309,314,369,371,373,378,41,572,573), +Jinv = (551,307,309,314,369,371,373,378,550,572,573), +``` + +the exact restrictions are + +``` +M[R,J] = diag(-1/2,1,1,1,1,1,1,1,1/2,1,1), +(M^-1)[Jinv,R] = I_11. +``` + +Both `J` and `Jinv` are outside `H`. A scalar row supported on `R` whose +pullback is supported on `H` must therefore vanish. Independently, a scalar +terminal column on `R` whose inverse image is supported on `H` must vanish. +Either conclusion contradicts the unit pairing needed to obtain both an +identity row and column in `T M S`. The scalar minors are units over +`Z[1/2]` and survive every representation of this frozen operator word. + +[BOUNDARY.md](BOUNDARY.md) derives the full frame eligibility, forward +operator and diagonal minor. [INDEPENDENT.md](INDEPENDENT.md) independently +reconstructs inverse columns and chronological row pullbacks. Both find +zero-dimensional rank-seven spaces in both providers. The complete middle +operators have 11,912 terms and identical canonical SHA256 +`d1c29a23fbe07da932c44d9e9b1467ab866894faac115d456eae8e42069aec68`. + +The known rank-eight pair passes both implementations. The independent +checker also verifies the literal input/terminal composition, `C S` target +compensation, and reverse-inverse cleanup recipe with 73 private buffers. +Admitting the unavailable rank-eight register42 restores a nonzero pair. +Coefficient, support, compensation, chronology, cleanup and forbidden target +dependency controls distinguish actual defects from source hash failures. + +## Favorable budget and why the search stops + +The candidate was motivated by removing the original rank-two end climb and +narrowing helper408. Its necessary boundary condition fails, so none of the +following hypothetical saving is realized. Against the actual PR2908 word: + +| Item | Actual rank eight | Ideal rank seven hypothesis | +| --- | --- | --- | +| Local child histogram | `{1:2407,2:640,3:262,4:128,5:26,8:8}` | `{1:2404,2:641,3:262,4:128,5:26,8:8}` | +| Helper408 width | 8 | 7 | +| Private cleanup buffers | 73 | 73 | +| Physical families | 66,795 | 66,795 if no further scratch is needed | + +`check_budget.py` reconstructs the complete actual and hypothetical profiles +from all 271,728 roles in the pinned 666-call T74 fill. It verifies capacity, +non-overlap, complete role coverage, original compact prefixes and the full +published profile. Let `k_b` be the number of helper408 roles sharing owner +bin `b`, and `r_b` its actual idle rank. Compacting within that bin after +shrinking those widths leaves idle rank `r_b+k_b`, not just `r_b+1`. +For `0
= 0, "available rank-two climb") + + order = read("allocation/ORDER.json") + replicas = 74 + calls = 9 * replicas + need(len(order) == calls and set(map(tuple, order)) == + {(s, r) for s in range(9) for r in range(replicas)}, "complete calls") + template = read("allocation/vendor/TEMPLATE.json.gz") + need(template["m"] == 73, "supplier dimension") + caps = {} + for child in template["idle_children"]: + c, rank = child["child"], child["rank"] + need(c not in caps or caps[c] == rank, "consistent capacity") + caps[c] = rank + fill = read("allocation/FILL.json.gz") + need(fill["columns"] == ["time", "helper", "owner_replica", "child", "port", "offset"], "fill schema") + seen = set() + masks = defaultdict(int) + shrinks = Counter() + for t, h, owner, child, port, offset in fill["rows"]: + need(0 <= t < calls and 0 <= h < len(helpers), "role bounds") + need((t, h) not in seen, "duplicate role") + seen.add((t, h)) + need(0 <= owner < replicas and child in caps and 0 <= port < 112, "owner bounds") + width = widths[h] + need(0 <= offset and offset + width <= caps[child], "capacity") + key = (owner, child, port) + mask = ((1 << width) - 1) << offset + need(not masks[key] & mask, "overlapping intervals") + masks[key] |= mask + if h == helper_index: + shrinks[key] += 1 + need(len(seen) == calls * len(helpers), "complete role coverage") + need(sum(shrinks.values()) == calls, "one helper408 per call") + + current_idle, ideal_idle, affected = Counter(), Counter(), Counter() + for owner in range(replicas): + for child, cap in caps.items(): + for port in range(112): + key = (owner, child, port) + occupied = masks[key] + used = occupied.bit_count() + need(occupied == (1 << used) - 1, "compact original prefix") + r, k = cap - used, shrinks[key] + need(0 <= used - k <= cap, "hypothetical reduced capacity") + if r: + current_idle[r] += 1 + if r + k: + ideal_idle[r + k] += 1 + if k: + affected[(r, k)] += 1 + current = current_idle.copy() + ideal = ideal_idle.copy() + for r, n in current_local.items(): + current[r] += calls * n + for r, n in ideal_local.items(): + ideal[r] += calls * n + need(current == profile(read("allocation/PROFILE.json")), "complete current profile") + need(mass(current) == mass(ideal) == 65088 * replicas, "complete rank mass") + need(current_local[8] == ideal_local[8] == 8, "all eight centre children retained") + stock = 896 * replicas + 408 + 8 + 73 + 2 + need(stock == 66795, "charged private stock") + + controls = [] + def reject(name, predicate): + try: + predicate() + except ValueError: + controls.append(name) + else: + raise ValueError("control accepted: " + name) + unpaid_idle = current.copy() + unpaid_idle[1] -= 3 * calls + unpaid_idle[2] += calls + reject("omit_new_idle_ranks", lambda: need(mass(unpaid_idle) == mass(current), "rank mass")) + reject("omit_extra_zero_buffer", lambda: need(896 * replicas + 408 + 8 + 72 + 2 == stock, "private stock")) + reject("omit_one_helper408_role", lambda: need(sum(shrinks.values()) - 1 == calls, "role count")) + reject("reuse_rank8_local_profile", lambda: need(mass(current_local) + sum(widths) == + mass(ideal_local) + sum(widths) - 1, "changed local and width balance")) + result = { + "status": "PASS_HYPOTHETICAL_RANK7_BUDGET_NO_SUPPLIER", + "source_commit": pins["source_commit"], "calls": calls, + "roles": len(seen), "helper408_index": helper_index, + "current_local": dict(sorted(current_local.items())), + "ideal_local": dict(sorted(ideal_local.items())), + "current_full_profile": dict(sorted(current.items())), + "ideal_full_profile": dict(sorted(ideal.items())), + "affected_bins_by_old_idle_and_number_of_shrinks": [ + {"old_idle": r, "helper408_roles": k, "bins": n} + for (r, k), n in sorted(affected.items())], + "complete_rank_mass": mass(current), "private_buffers": 73, + "physical_families": stock, "controls": controls, + "comparison": "Delta(p)=666*(-3+2^p)+sum_b((r_b+k_b)^p-r_b^p)<0 for 0
r+704 for cold r"} + + +def positive_control(parent, actual, transform): + before, after = transform["before"], transform["after"] + h = transform["helper"] + p = parent["prelude_events"] + require(actual["A"] == parent["A"][:p] + before + parent["A"][p:], + "actual A is not the stated current-word input composition") + require(actual["restore"] == parent["restore"] + after, + "actual restore is not the stated terminal composition") + for key in ("B", "warps", "prelude_events", "initial_corrections", "start_extra", "removed"): + require(parent[key] == actual[key], f"unexpected changed {key}") + H = helpers(parent) + for g in before: + touched = g[1:3] if g[0] == "add" else [g[1]] + require(all(r in H for r in touched), "input composition touches protected input") + require(g[-1] == [], "input composition is not at frame zero") + R8 = set(eligible(parent, E8)) + for g in after: + require(g[0] == "add" and set(g[1:3]) <= R8 and span(g[-1]) == span(E8), + "terminal composition has an illegal endpoint support") + require(not set(g[1:3]) & set(map(int, parent["helper_final"])), + "terminal composition modifies an existing cold helper") + require(actual["helper_final"] == dict(parent["helper_final"], **{str(h): list(E8)}), + "existing cold helpers are not preserved exactly") + e = {h: F(1)} + v = scalar_vector(scalar_action(before, e)) + u = right_scalar_action([inverse(g) for g in reversed(before)], e) + y = scalar_vector(scalar_action([inverse(g) for g in reversed(after)], e)) + alpha = right_scalar_action(after, e) + M = middle(parent) + require(scalar_vector(scalar_action(M, v)) == y, "rank8 Mv=y failed") + require(right_scalar_action(M, alpha) == u, "rank8 alpha M=u failed") + require(scalar_vector(scalar_action(after, y)) == e, "rank8 Ty=e failed") + require(right_scalar_action(before, u) == e, "rank8 uS=e^T failed") + require(dot(alpha, y) == dot(u, v) == 1, "rank8 pairing is not one") + # The target correction is evaluated on the transformed raw inputs. + oldC, newC = compensation_rows(parent), compensation_rows(actual) + expected = {r: right_scalar_action(before, row) for r, row in oldC.items()} + require(newC == expected, "actual target compensation is not C S") + wrong = {r: right_scalar_action([inverse(g) for g in reversed(before)], row) + for r, row in oldC.items()} + require(wrong != newC, "C S^{-1} mutant was not distinguished") + # Omit the inverse of the final terminal gate: changes the actual word. + bad_y = scalar_vector(scalar_action([inverse(g) for g in reversed(after[:-1])], e)) + require(bad_y != y and scalar_vector(scalar_action(M, v)) != bad_y, + "omitted inverse gate mutant was not distinguished") + # Chronology matters in the dual action, not just sign conventions. + bad_row = scalar_action(list(reversed(M)), alpha, row=True) + require(bad_row != scalar_action([], u), "row chronology mutant was not distinguished") + # Use the terminal-basis engine independently on the existing certificate. + r8 = solve(parent, E8) + require(r8["pairing_nonzero"], "rank8 full-space positive control failed") + return { + "alpha": {str(k): str(x) for k, x in alpha.items()}, + "y": {str(k): str(x) for k, x in y.items()}, + "input_v": {str(k): str(x) for k, x in v.items()}, + "input_u": {str(k): str(x) for k, x in u.items()}, + "identity_checks": ["Mv=y", "alpha M=u", "Ty=e408", "uS=e408^T", + "alpha y=uv=1", "actual A=A_parent S", "C_actual=C_parent S"], + "controls_rejected": ["C S^{-1}", "omitted terminal inverse gate", "wrong row chronology"], + "cleanup_parent": verify_cleanup_recipe(parent), + "cleanup_actual": verify_cleanup_recipe(actual), + "full_rank8": r8, + } + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--sources", type=Path, default=Path(__file__).resolve().parent / "sources" / "data") + args = parser.parse_args() + source_hashes = {} + pins = json.loads((Path(__file__).resolve().parent / "SOURCE-PINS.json").read_text()) + require(pins["source_commit"] == "51309592971e3b5be935599eed2a95404dc7781e", + "unexpected PR2908 source commit") + require(pins["parent_commit"] == "18d03c447886895ef9abf888398178e0428533ca", + "unexpected PR2894 predecessor commit") + + def load(name): + data = (args.sources / name).read_bytes() + sha = hashlib.sha256(data).hexdigest() + blob = hashlib.sha1(f"blob {len(data)}\0".encode() + data).hexdigest() + require(pins["files"]["data/" + name] == {"sha256": sha, "git_blob": blob}, + f"source bytes do not match pinned SHA256 and Git blob: {name}") + source_hashes[name] = sha + return json.loads(gzip.decompress(data) if name.endswith(".gz") else data) + + transform = load("TRANSFORM.json") + results = {} + for provider in ("base", "extra"): + parent = load(f"PARENT-{provider}.json.gz") + actual = load(f"WORD-{provider}.json.gz") + result = solve(parent, E7) + require(not result["pairing_nonzero"], f"{provider}: rank7 pairing is nonzero") + result["focused_witness"] = focused_witness(parent) + positive = positive_control(parent, actual, transform) + # The known rank8 pair uses exactly the missing terminal coordinate42. + relaxed = solve(parent, E7, sorted(set(result["terminal_registers"]) | {42})) + require(relaxed["pairing_nonzero"], "missing-coordinate support control failed") + bad = copy.deepcopy(parent) + bad["restore"].append(["add", 408, 112, 1, 1, list(E7)]) + try: + middle(bad) + except ValueError as error: + require("target is read" in str(error), "target-read control failed for wrong reason") + else: + raise ValueError("target-to-helper read was silently omitted") + result["positive_control"] = positive + result["semantic_controls"] = { + "admit_illegal_terminal42": {"pairing_nonzero": relaxed["pairing_nonzero"], + "column_dimension": relaxed["column_dimension"], "row_dimension": relaxed["row_dimension"]}, + "target_to_helper_read": "rejected", + } + results[provider] = result + # Free symbols are noncommuting; only adjacent inverse pairs reduce. + require(word_left(1, (2,)) != word_left(2, (1,)), "commuting operator implementation") + require(word_left(-1, (1, 2)) == (2,) and word_right((2, 1), -1) == (2,), + "free-group inverse cancellation failed") + print(json.dumps({"status": "PASS_INDEPENDENT_RANK7_PAIRING no_new_kappa", + "source_sha256": source_hashes, "providers": results}, indent=2, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/research/helper408-rank7-pairing/evidence/BOUNDARY.json b/research/helper408-rank7-pairing/evidence/BOUNDARY.json new file mode 100644 index 0000000000..ea097e2ad8 --- /dev/null +++ b/research/helper408-rank7-pairing/evidence/BOUNDARY.json @@ -0,0 +1,925 @@ +{ + "both_middle_operators_identical": true, + "calibration_transform_sha256": "1d38f0369fce0b892d202ce2e5fd7ea95d9a95d3f80734b672cddd5cb93ce8ca", + "reports": [ + { + "Alpha": [], + "H": [ + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 274, + 276, + 278, + 279, + 280, + 281, + 283, + 284, + 285, + 286, + 287, + 288, + 290, + 292, + 294, + 295, + 296, + 297, + 299, + 300, + 301, + 302, + 303, + 304, + 306, + 308, + 310, + 312, + 313, + 315, + 316, + 317, + 318, + 319, + 320, + 322, + 324, + 326, + 328, + 329, + 331, + 332, + 333, + 334, + 335, + 336, + 338, + 340, + 342, + 343, + 344, + 345, + 347, + 348, + 349, + 350, + 351, + 352, + 354, + 356, + 358, + 359, + 360, + 361, + 363, + 364, + 365, + 366, + 367, + 368, + 370, + 372, + 374, + 375, + 376, + 377, + 379, + 380, + 381, + 382, + 383, + 384, + 386, + 388, + 390, + 391, + 392, + 393, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 456, + 459, + 461, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 479, + 481, + 490, + 491, + 492, + 493, + 499, + 502, + 503, + 504, + 505, + 511, + 514, + 515, + 516, + 517, + 546, + 547, + 548, + 549, + 558, + 560, + 568, + 570 + ], + "R": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ], + "R_frames": { + "105": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "307": [ + 385, + 74, + 44, + 30 + ], + "309": [ + 385, + 74, + 44, + 30 + ], + "314": [ + 385, + 74, + 44, + 30 + ], + "369": [ + 392, + 67, + 37, + 22 + ], + "371": [ + 392, + 67, + 37, + 22 + ], + "373": [ + 392, + 67, + 37, + 22 + ], + "378": [ + 392, + 67, + 37, + 22 + ], + "408": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "572": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "573": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ] + }, + "U": [], + "V": [], + "Y": [], + "calibration": { + "alpha": { + "105": "1", + "408": "1", + "42": "1/2" + }, + "controls": { + "input_coefficient_226_half_to_one": { + "reason": "column support/scalar violation", + "rejected": true + }, + "output_coefficient_42_half_to_one": { + "reason": "row support/scalar violation", + "rejected": true + }, + "unchanged_known_pair_claimed_at_E7": { + "reason": "terminal nominee outside R", + "rejected": true + } + }, + "eligible_terminal_count": 37, + "identities": [ + "S e408 = v", + "u S = e408^T", + "M v = y", + "alpha M = u", + "alpha y = 1", + "T y = e408", + "e408^T T = alpha" + ], + "pairing": "1", + "status": "PASS_EXACT_KNOWN_E52_PAIR_AND_BASIS_COMPLETION", + "u": { + "401": "-1", + "402": "1/2", + "403": "-1/2", + "404": "-1/2", + "405": "1/2", + "408": "1/2", + "409": "-1/2", + "414": "1/2", + "415": "-1/2" + }, + "v": { + "226": "1/2", + "227": "1/2", + "230": "-1/2", + "231": "-1/2", + "233": "-1/2", + "234": "-1/2", + "236": "1/2", + "239": "1/2", + "401": "-1/2", + "402": "1/2", + "403": "1/2", + "407": "-1/2", + "408": "1/2", + "410": "-1/2", + "411": "-1/2", + "414": "1/2" + }, + "y": { + "42": "2" + } + }, + "diagonal_certificate": { + "conclusion": "alpha M supported on H forces alpha = 0; no paired extraction", + "determinant": "-1/4", + "exact_scalar_diagonal": [ + "-1/2", + "1", + "1", + "1", + "1", + "1", + "1", + "1", + "1/2", + "1", + "1" + ], + "forbidden_input_columns": [ + 14, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 41, + 572, + 573 + ], + "nonempty_words_in_minor": 0, + "terminal_rows": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ] + }, + "forward": { + "dimension": 0, + "equations": 608, + "rank": 226 + }, + "frame_replay": { + "middle_warps": 72, + "prelude_warps": 24, + "scalar_incidents": 10456 + }, + "free_operator_terms": 11912, + "input_sha256": "c20a470aec0f3e61833cb41fe190639eb358f58017143d2336c55c80fba265eb", + "inverse": { + "dimension": 0, + "equations": 17, + "rank": 11 + }, + "middle_gate_count": 4583, + "middle_operator_sha256": "d1c29a23fbe07da932c44d9e9b1467ab866894faac115d456eae8e42069aec68", + "non_target_registers": 520, + "pairing": [], + "pairing_zero": true, + "variant": "base" + }, + { + "Alpha": [], + "H": [ + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 274, + 276, + 278, + 279, + 280, + 281, + 283, + 284, + 285, + 286, + 287, + 288, + 290, + 292, + 294, + 295, + 296, + 297, + 299, + 300, + 301, + 302, + 303, + 304, + 306, + 308, + 310, + 312, + 313, + 315, + 316, + 317, + 318, + 319, + 320, + 322, + 324, + 326, + 328, + 329, + 331, + 332, + 333, + 334, + 335, + 336, + 338, + 340, + 342, + 343, + 344, + 345, + 347, + 348, + 349, + 350, + 351, + 352, + 354, + 356, + 358, + 359, + 360, + 361, + 363, + 364, + 365, + 366, + 367, + 368, + 370, + 372, + 374, + 375, + 376, + 377, + 379, + 380, + 381, + 382, + 383, + 384, + 386, + 388, + 390, + 391, + 392, + 393, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 456, + 459, + 461, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 479, + 481, + 490, + 491, + 492, + 493, + 499, + 502, + 503, + 504, + 505, + 511, + 514, + 515, + 516, + 517, + 546, + 547, + 548, + 549, + 558, + 560, + 568, + 570 + ], + "R": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ], + "R_frames": { + "105": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "307": [ + 385, + 74, + 44, + 30 + ], + "309": [ + 385, + 74, + 44, + 30 + ], + "314": [ + 385, + 74, + 44, + 30 + ], + "369": [ + 392, + 67, + 37, + 22 + ], + "371": [ + 392, + 67, + 37, + 22 + ], + "373": [ + 392, + 67, + 37, + 22 + ], + "378": [ + 392, + 67, + 37, + 22 + ], + "408": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "572": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "573": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ] + }, + "U": [], + "V": [], + "Y": [], + "calibration": { + "alpha": { + "105": "1", + "408": "1", + "42": "1/2" + }, + "controls": { + "input_coefficient_226_half_to_one": { + "reason": "column support/scalar violation", + "rejected": true + }, + "output_coefficient_42_half_to_one": { + "reason": "row support/scalar violation", + "rejected": true + }, + "unchanged_known_pair_claimed_at_E7": { + "reason": "terminal nominee outside R", + "rejected": true + } + }, + "eligible_terminal_count": 37, + "identities": [ + "S e408 = v", + "u S = e408^T", + "M v = y", + "alpha M = u", + "alpha y = 1", + "T y = e408", + "e408^T T = alpha" + ], + "pairing": "1", + "status": "PASS_EXACT_KNOWN_E52_PAIR_AND_BASIS_COMPLETION", + "u": { + "401": "-1", + "402": "1/2", + "403": "-1/2", + "404": "-1/2", + "405": "1/2", + "408": "1/2", + "409": "-1/2", + "414": "1/2", + "415": "-1/2" + }, + "v": { + "226": "1/2", + "227": "1/2", + "230": "-1/2", + "231": "-1/2", + "233": "-1/2", + "234": "-1/2", + "236": "1/2", + "239": "1/2", + "401": "-1/2", + "402": "1/2", + "403": "1/2", + "407": "-1/2", + "408": "1/2", + "410": "-1/2", + "411": "-1/2", + "414": "1/2" + }, + "y": { + "42": "2" + } + }, + "diagonal_certificate": { + "conclusion": "alpha M supported on H forces alpha = 0; no paired extraction", + "determinant": "-1/4", + "exact_scalar_diagonal": [ + "-1/2", + "1", + "1", + "1", + "1", + "1", + "1", + "1", + "1/2", + "1", + "1" + ], + "forbidden_input_columns": [ + 14, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 41, + 572, + 573 + ], + "nonempty_words_in_minor": 0, + "terminal_rows": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ] + }, + "forward": { + "dimension": 0, + "equations": 608, + "rank": 226 + }, + "frame_replay": { + "middle_warps": 72, + "prelude_warps": 24, + "scalar_incidents": 10456 + }, + "free_operator_terms": 11912, + "input_sha256": "db34e39876241087b581ed9374c53e9cd393e3e86ef6103bfb54f3077c3d2761", + "inverse": { + "dimension": 0, + "equations": 17, + "rank": 11 + }, + "middle_gate_count": 4583, + "middle_operator_sha256": "d1c29a23fbe07da932c44d9e9b1467ab866894faac115d456eae8e42069aec68", + "non_target_registers": 520, + "pairing": [], + "pairing_zero": true, + "variant": "extra" + } + ], + "status": "PASS_SCOPED_RANK7_OBSTRUCTION" +} diff --git a/research/helper408-rank7-pairing/evidence/BUDGET.json b/research/helper408-rank7-pairing/evidence/BUDGET.json new file mode 100644 index 0000000000..b16357a1cb --- /dev/null +++ b/research/helper408-rank7-pairing/evidence/BUDGET.json @@ -0,0 +1,134 @@ +{ + "affected_bins_by_old_idle_and_number_of_shrinks": [ + { + "bins": 41, + "helper408_roles": 1, + "old_idle": 0 + }, + { + "bins": 131, + "helper408_roles": 2, + "old_idle": 0 + }, + { + "bins": 2, + "helper408_roles": 3, + "old_idle": 0 + }, + { + "bins": 29, + "helper408_roles": 4, + "old_idle": 0 + }, + { + "bins": 9, + "helper408_roles": 6, + "old_idle": 0 + }, + { + "bins": 1, + "helper408_roles": 1, + "old_idle": 1 + }, + { + "bins": 1, + "helper408_roles": 2, + "old_idle": 1 + }, + { + "bins": 7, + "helper408_roles": 3, + "old_idle": 1 + }, + { + "bins": 3, + "helper408_roles": 5, + "old_idle": 1 + }, + { + "bins": 1, + "helper408_roles": 2, + "old_idle": 2 + }, + { + "bins": 9, + "helper408_roles": 2, + "old_idle": 5 + }, + { + "bins": 117, + "helper408_roles": 1, + "old_idle": 6 + }, + { + "bins": 3, + "helper408_roles": 3, + "old_idle": 6 + }, + { + "bins": 1, + "helper408_roles": 2, + "old_idle": 7 + } + ], + "calls": 666, + "comparison": "Delta(p)=666*(-3+2^p)+sum_b((r_b+k_b)^p-r_b^p)<0 for 0
r+704 for cold r", + "private_zero_buffers": 73 + }, + "cleanup_parent": { + "gates": 4583, + "host_map": "r -> r+704 for cold r", + "private_zero_buffers": 72 + }, + "controls_rejected": [ + "C S^{-1}", + "omitted terminal inverse gate", + "wrong row chronology" + ], + "full_rank8": { + "column_constraint_count": 30, + "column_constraint_rank": 30, + "column_dimension": 7, + "endpoint": [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ], + "helper_count": 226, + "pairing": [ + [ + "0", + "0", + "1/2", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1/2", + "0", + "0", + "0", + "0" + ], + [ + "1/2", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/2", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "pairing_nonzero": true, + "row_constraint_count": 78, + "row_constraint_rank": 33, + "row_dimension": 4, + "terminal_column_basis": [ + { + "16": "1" + }, + { + "22": "1" + }, + { + "42": "1" + }, + { + "64": "1" + }, + { + "95": "1" + }, + { + "107": "1" + }, + { + "224": "1" + } + ], + "terminal_registers": [ + 16, + 22, + 42, + 44, + 64, + 95, + 105, + 107, + 224, + 307, + 309, + 314, + 323, + 325, + 330, + 369, + 371, + 373, + 378, + 385, + 387, + 389, + 394, + 408, + 412, + 414, + 424, + 428, + 430, + 572, + 573, + 574, + 575, + 580, + 581, + 582, + 583 + ], + "terminal_row_basis": [ + { + "105": "1", + "408": "1", + "42": "1/2" + }, + { + "412": "1", + "414": "1", + "42": "1/2" + }, + { + "16": "1/2", + "424": "1", + "44": "1" + }, + { + "16": "1/2", + "428": "1", + "430": "1" + } + ] + }, + "identity_checks": [ + "Mv=y", + "alpha M=u", + "Ty=e408", + "uS=e408^T", + "alpha y=uv=1", + "actual A=A_parent S", + "C_actual=C_parent S" + ], + "input_u": { + "401": "-1", + "402": "1/2", + "403": "-1/2", + "404": "-1/2", + "405": "1/2", + "408": "1/2", + "409": "-1/2", + "414": "1/2", + "415": "-1/2" + }, + "input_v": { + "226": "1/2", + "227": "1/2", + "230": "-1/2", + "231": "-1/2", + "233": "-1/2", + "234": "-1/2", + "236": "1/2", + "239": "1/2", + "401": "-1/2", + "402": "1/2", + "403": "1/2", + "407": "-1/2", + "408": "1/2", + "410": "-1/2", + "411": "-1/2", + "414": "1/2" + }, + "y": { + "42": "2" + } + }, + "row_constraint_count": 17, + "row_constraint_rank": 11, + "row_dimension": 0, + "semantic_controls": { + "admit_illegal_terminal42": { + "column_dimension": 1, + "pairing_nonzero": true, + "row_dimension": 1 + }, + "target_to_helper_read": "rejected" + }, + "terminal_column_basis": [], + "terminal_registers": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ], + "terminal_row_basis": [] + }, + "extra": { + "column_constraint_count": 11, + "column_constraint_rank": 11, + "column_dimension": 0, + "endpoint": [ + 256, + 128, + 66, + 36, + 22, + 8, + 1 + ], + "focused_witness": { + "forward_row_restriction": [ + [ + 14, + 105, + "-1/2" + ], + [ + 41, + 408, + "1/2" + ], + [ + 307, + 307, + "1" + ], + [ + 309, + 309, + "1" + ], + [ + 314, + 314, + "1" + ], + [ + 369, + 369, + "1" + ], + [ + 371, + 371, + "1" + ], + [ + 373, + 373, + "1" + ], + [ + 378, + 378, + "1" + ], + [ + 572, + 572, + "1" + ], + [ + 573, + 573, + "1" + ] + ], + "inverse_column_restriction": [ + [ + 550, + 408, + "1" + ], + [ + 551, + 105, + "1" + ], + [ + 307, + 307, + "1" + ], + [ + 309, + 309, + "1" + ], + [ + 314, + 314, + "1" + ], + [ + 369, + 369, + "1" + ], + [ + 371, + 371, + "1" + ], + [ + 373, + 373, + "1" + ], + [ + 378, + 378, + "1" + ], + [ + 572, + 572, + "1" + ], + [ + 573, + 573, + "1" + ] + ], + "inverse_determinant_absolute": "1", + "row_determinant_absolute": "1/4" + }, + "helper_count": 226, + "pairing": [], + "pairing_nonzero": false, + "positive_control": { + "alpha": { + "105": "1", + "408": "1", + "42": "1/2" + }, + "cleanup_actual": { + "gates": 4610, + "host_map": "r -> r+704 for cold r", + "private_zero_buffers": 73 + }, + "cleanup_parent": { + "gates": 4583, + "host_map": "r -> r+704 for cold r", + "private_zero_buffers": 72 + }, + "controls_rejected": [ + "C S^{-1}", + "omitted terminal inverse gate", + "wrong row chronology" + ], + "full_rank8": { + "column_constraint_count": 30, + "column_constraint_rank": 30, + "column_dimension": 7, + "endpoint": [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ], + "helper_count": 226, + "pairing": [ + [ + "0", + "0", + "1/2", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1/2", + "0", + "0", + "0", + "0" + ], + [ + "1/2", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/2", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "pairing_nonzero": true, + "row_constraint_count": 78, + "row_constraint_rank": 33, + "row_dimension": 4, + "terminal_column_basis": [ + { + "16": "1" + }, + { + "22": "1" + }, + { + "42": "1" + }, + { + "64": "1" + }, + { + "95": "1" + }, + { + "107": "1" + }, + { + "224": "1" + } + ], + "terminal_registers": [ + 16, + 22, + 42, + 44, + 64, + 95, + 105, + 107, + 224, + 307, + 309, + 314, + 323, + 325, + 330, + 369, + 371, + 373, + 378, + 385, + 387, + 389, + 394, + 408, + 412, + 414, + 424, + 428, + 430, + 572, + 573, + 574, + 575, + 580, + 581, + 582, + 583 + ], + "terminal_row_basis": [ + { + "105": "1", + "408": "1", + "42": "1/2" + }, + { + "412": "1", + "414": "1", + "42": "1/2" + }, + { + "16": "1/2", + "424": "1", + "44": "1" + }, + { + "16": "1/2", + "428": "1", + "430": "1" + } + ] + }, + "identity_checks": [ + "Mv=y", + "alpha M=u", + "Ty=e408", + "uS=e408^T", + "alpha y=uv=1", + "actual A=A_parent S", + "C_actual=C_parent S" + ], + "input_u": { + "401": "-1", + "402": "1/2", + "403": "-1/2", + "404": "-1/2", + "405": "1/2", + "408": "1/2", + "409": "-1/2", + "414": "1/2", + "415": "-1/2" + }, + "input_v": { + "226": "1/2", + "227": "1/2", + "230": "-1/2", + "231": "-1/2", + "233": "-1/2", + "234": "-1/2", + "236": "1/2", + "239": "1/2", + "401": "-1/2", + "402": "1/2", + "403": "1/2", + "407": "-1/2", + "408": "1/2", + "410": "-1/2", + "411": "-1/2", + "414": "1/2" + }, + "y": { + "42": "2" + } + }, + "row_constraint_count": 17, + "row_constraint_rank": 11, + "row_dimension": 0, + "semantic_controls": { + "admit_illegal_terminal42": { + "column_dimension": 1, + "pairing_nonzero": true, + "row_dimension": 1 + }, + "target_to_helper_read": "rejected" + }, + "terminal_column_basis": [], + "terminal_registers": [ + 105, + 307, + 309, + 314, + 369, + 371, + 373, + 378, + 408, + 572, + 573 + ], + "terminal_row_basis": [] + } + }, + "source_sha256": { + "PARENT-base.json.gz": "c20a470aec0f3e61833cb41fe190639eb358f58017143d2336c55c80fba265eb", + "PARENT-extra.json.gz": "db34e39876241087b581ed9374c53e9cd393e3e86ef6103bfb54f3077c3d2761", + "TRANSFORM.json": "1d38f0369fce0b892d202ce2e5fd7ea95d9a95d3f80734b672cddd5cb93ce8ca", + "WORD-base.json.gz": "3657ad53ebe5f156f307a903479e919f2fe812811ce5d5f15e72c3aaf68dfde3", + "WORD-extra.json.gz": "b975492ff4cbec0d619cdf2da34f55ce3b20c8a541132e4339cc6c8ae3b2e487" + }, + "status": "PASS_INDEPENDENT_RANK7_PAIRING no_new_kappa" +} diff --git a/research/helper408-rank7-pairing/evidence/VALIDATION.json b/research/helper408-rank7-pairing/evidence/VALIDATION.json new file mode 100644 index 0000000000..2717ec090b --- /dev/null +++ b/research/helper408-rank7-pairing/evidence/VALIDATION.json @@ -0,0 +1,41 @@ +{ + "status": "PASS_LOCAL_VALIDATION", + "python_versions": [ + "Python 3.12.12", + "Python 3.14.6" + ], + "registered_replay": { + "command": "python3.12 -B scripts/research_package.py --package research/helper408-rank7-pairing", + "status": "PASS_REGISTERED_RESEARCH_PACKAGE" + }, + "metadata": "PASS_PACKAGE_METADATA_AND_PINS", + "normal_and_optimized_receipts_equal": true, + "git_free_read_only_replay": { + "git_free": true, + "read_only_files": true, + "file_count": 31, + "content_unchanged": true + }, + "source_corruption_controls": "all three optimized direct entrypoints reject altered compressed source", + "semantic_receipts": { + "BOUNDARY": { + "sha256": "04f726804e56efdeb12bf5fe71437c9b1c5c30f2347c925428d4adc2426ee2b7", + "status": "PASS_SCOPED_RANK7_OBSTRUCTION" + }, + "INDEPENDENT": { + "sha256": "0ccc75e1e20294d8fba413e6f3e77b8c6c2baff854ca417dafe4081e0d3dc1f3", + "status": "PASS_INDEPENDENT_RANK7_PAIRING no_new_kappa" + }, + "BUDGET": { + "sha256": "c4e922b0fe83f2a9a81e1e0541b4b91342368a96843495744a5dfd140fcec285", + "status": "PASS_HYPOTHETICAL_RANK7_BUDGET_NO_SUPPLIER" + } + }, + "hosted_ci": "separate; no hosted result claimed", + "unrun": [ + "full selected-frontier cold replay", + "native realization of a new word", + "formal-kernel proof", + "all-size multiplication theorem" + ] +} diff --git a/research/helper408-rank7-pairing/sources/CONSTRUCTION.md b/research/helper408-rank7-pairing/sources/CONSTRUCTION.md new file mode 100644 index 0000000000..650131970c --- /dev/null +++ b/research/helper408-rank7-pairing/sources/CONSTRUCTION.md @@ -0,0 +1,86 @@ +# Paired input/output extraction + +Let M denote the complete non-target forward operator of the pinned PR2894 +word: the A gates after the entry prelude, the B gates and formal invertible +warps, and the restore gates. Target writes are omitted in this definition; +they are checked separately by the full independent word auditor. Operators +are noncommuting formal symbols, so the argument uses no numerical sampling. + +Let H contain zero-entry helper registers which are neither existing restored +helpers nor sources of the initial operator corrections. For a terminal +hyperplane E, let R consist of registers whose current terminal frames lie in +E. Seek a column y and a row alpha, supported on R, such that + +- v = M^-1 y is scalar and supported on H; +- u = alpha M is scalar and supported on H; +- alpha y = u v = 1. + +These are two exact nullspace conditions with a nonzero pairing. Finite-field +linear algebra can nominate candidates, but every published identity here is +replayed over rational coefficients in the free operator algebra. + +Choose an invertible dyadic input change S and output change T with +`S e_h = v`, `u S = e_h^T`, `T y = e_h`, and `e_h^T T = alpha`. +Then the h column and h row of `T M S` are both the corresponding identity +column and row. Register h is restored exactly for every arbitrary dirty +helper input and is not read by other output registers. This supplies the +cold endpoint needed by the inverse-reverse cleanup contract. + +For h=408, E is the binary hyperplane perpendicular to 52, with canonical +basis `(256,128,64,36,20,8,2,1)`. The output certificate is especially small: + +``` +alpha = e_408^T + (1/2)e_42^T + e_105^T +y = 2 e_42 + +408 += (1/2) * 42 +408 += 105 +42 -= 2 * 408 +``` + +All three terminal additions use frame E. The 24 input gates in +`data/TRANSFORM.json` act at frame zero. They include one scaling by 2 and +otherwise dyadic additions. `structure.py` derives S, T, M, u, v, alpha and y +from the literal gates and checks all seven identities, independently of the +word producer. `verify.py` also checks both full target maps and the dual +orientation with the inherited exact auditor. + +The target correction becomes `C S`. The initial operator corrections retain +their inputs because S acts only outside their source set. Warps, the cut, +ports, target levels, removed helpers and the entry prelude are unchanged. +The changed sections are exactly A, restore, helper_final, compensation, +report and cleanup. Inverse-reverse cleanup is regenerated and checked from +the full new word; its new private buffer is allocated, cleared and charged. + +The complete per-call profile changes from +`{1:2404,2:642,3:262,4:128,5:26,8:8}` to +`{1:2407,2:640,3:262,4:128,5:26,8:8}`. Helper408 changes width 9 to 8; +there remain 408 live helpers and 632 independent inputs, with **73** private +zero buffers instead of 72. + +# Owner allocation and cost + +Keeping PR2894's fill is worse despite the local improvement. The shipped fill +starts from that literal T74 allocation, makes 545 same-call width exchanges, +then 222 whole-role relocations. The exchanges preserve the set of physical +owner families at each call. Every relocation explicitly checks the owner +window and rejects a family already used in the call; the final independent +auditor rechecks all 271,728 roles, compact offsets, capacity, chronology and +family distinctness. These are discovery heuristics, with no optimality claim. + +The actual paid profile is +`{1:1620344,2:426241,3:180732,4:85248,5:25700,6:120,7:1,8:5328,23:1,32:14,48:26837}`. +Its rank mass is exactly `65088*74`. It includes every unused owner remainder. +The complete physical stock is `66304 + 408 + 8 + 73 + 2 = 66795`. +The inherited owner-only checker has a historical 72-buffer display field; +our wrapper explicitly replaces that field and labels its provenance. The +complete rebind, block-norm certificate and outer invoice independently check +the actual 73-buffer namespace, endpoints, stock and prefix reserve. + +The admission adapter preserves all inherited tests, with the new source pin +and buffer constants bound explicitly. In particular, the dimension-72 +symplectic-group stock factor is unchanged: it is not a private-buffer count. +The old source/parent artifacts are read-only. Both new providers run the full +five native stages; retained providers and the 16-stage retained parent may be +reused only through exact complete-cache/source/claim receipts, and the replay +records this distinction. diff --git a/research/helper408-rank7-pairing/sources/CREDITS.md b/research/helper408-rank7-pairing/sources/CREDITS.md new file mode 100644 index 0000000000..4233009b6a --- /dev/null +++ b/research/helper408-rank7-pairing/sources/CREDITS.md @@ -0,0 +1,39 @@ +# Credit and scope + +Jeremy Diviney, with substantial OpenAI Codex assistance, contributed the +paired input/output subspace search, the explicit helper408 extraction, the +exact structural certificate, the owner-width exchange/relocation repair, +and the source-bound 73-buffer integration. No independent human review is +claimed. This is a new application of ordinary exact linear algebra to these +literal words, not a claim to have invented nullspace or basis-change methods. + +The immediate parent is Jeremy Kothe / `jeremykothe2`, PR2894 at +`18d03c447886895ef9abf888398178e0428533ca`. Its two preload-resynthesized quartets, +T74 owner order and fill, reconstruction, and complete admission remain +credited. `vendor/preload_move.py` is unchanged from that package. + +The construction inherits Yiyang Lu / `Lyy-iiis`'s PR2857 staged shared kernels +and source-bound overlay/native/release tooling; Dugongue's PR2863 packing; +Marius-Paul Dumitrean's PR2843/PR2802 pattern-flow and retired-helper lineage; +Jeremy Kothe's PR2833 dirt-entry supplier; and Philippe Van Velzen's PR2853 +cost and block-energy lineage. Tekalign's PR2751/PR2839 owner audit and +admission lineage is retained in the corresponding code headers. The exact +moment auditor is PR2894's `tools/audit_moment2857.py`, changing only the +comparison pin and label to PR2894. + +The independently written exact scalar/frame auditor retains its original +icekylinx attribution. The fast native package is copied byte-for-byte from +PR2833's `new/fastnative`; it retains the PR2768 sparse engine and all nested +PR2226 Clifford/operator notices. The copied material, including its original +line endings, is pinned in `PINS.json`. + +The new terminal recovery changes literal gates and adds a cold endpoint. +PR2904's fixed-gate dirty-entry/refit negative census does not cover this +operation. The initial compensation-kernel search failed before this pivot; +it is not presented as a new universal obstruction. Advisory overlap was +checked against open PRs and Discussion bodies before discovery and again +before submission. That coverage is not a novelty guarantee. + +The selected repository result is not changed. A passing finite release uses +the inherited all-size/compiler/outer hypotheses and does not establish an +unconditional integer-multiplication theorem. diff --git a/research/helper408-rank7-pairing/sources/PINS.json b/research/helper408-rank7-pairing/sources/PINS.json new file mode 100644 index 0000000000..2125095d52 --- /dev/null +++ b/research/helper408-rank7-pairing/sources/PINS.json @@ -0,0 +1,52 @@ +{ + "data/PARENT-base.json.gz": "c20a470aec0f3e61833cb41fe190639eb358f58017143d2336c55c80fba265eb", + "data/PARENT-extra.json.gz": "db34e39876241087b581ed9374c53e9cd393e3e86ef6103bfb54f3077c3d2761", + "data/TRANSFORM.json": "1d38f0369fce0b892d202ce2e5fd7ea95d9a95d3f80734b672cddd5cb93ce8ca", + "data/WORD-base.json.gz": "3657ad53ebe5f156f307a903479e919f2fe812811ce5d5f15e72c3aaf68dfde3", + "data/WORD-extra.json.gz": "b975492ff4cbec0d619cdf2da34f55ce3b20c8a541132e4339cc6c8ae3b2e487", + "vendor/audit_local.py": "a38940094f7d19cd6376aafdd4734fa68eabc9aff4c98c3c4a3e9540328b1c90", + "vendor/fastnative/.gitattributes": "92e5734dbb86fb8958622e6dcea5895601800a24b0722ef86220322449a44ff8", + "vendor/fastnative/EXPECTED.json": "8d45fba81564631f9f8614e637b9fbe69dc911b4e2f0b77f0a7071f39cfd7ca8", + "vendor/fastnative/FRESHNESS.json": "92abf8c25be59ff71a90781f38c5db2f9176c623df046a6d0e2327fd0235cb6c", + "vendor/fastnative/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/fastnative/NATIVE-LINEAGE-NOTICE": "ee0c73ca35877aad0e0b6adc560a3881cb82276dba4cf2d4fc58cd19e57cc420", + "vendor/fastnative/PINS.json": "f619e8e1c163078fb70c6fc3b98a498a671b8c02927b91d6cc253af2a775b6c9", + "vendor/fastnative/README.md": "6a2026383804606cd7981e087192b3488c674f2d9443ec218dcb2e85d06406dc", + "vendor/fastnative/SOURCE-PROVENANCE.json": "8daf4fc7c75db99d34641152682208ce6c974f50d509960d0f4fa021f862abee", + "vendor/fastnative/SOURCES.json": "3599ed28c8d8a9ce096bc13507b066d09e3968587781748b2bc72f634618331b", + "vendor/fastnative/TASK.json": "8159b49d5c73dd887d432a4680dc947f63e7158a01a66d7736ff7138e8149732", + "vendor/fastnative/VERIFY.json": "e46542b70296c039b5bea0c0aa9cfd4e95e1df8859e67885ed3403bea9da7b32", + "vendor/fastnative/benchmark.py": "3e544453c89310281d745a37e861cbd79065b1740d90f1ec883fc200b189a557", + "vendor/fastnative/common.py": "8f04e08b99a370fa82115fc46fbb3af4ab44f4facd47de07b01e1a2499a94914", + "vendor/fastnative/compare.py": "ebf877a6f47ef1fd2b797fd6077bd45d132d8cb56ab7553044bae3d86e238e45", + "vendor/fastnative/controls.py": "03131f4dc6a1830f10e35fb837ada456f060ca510994d250c5c2666a6342c23a", + "vendor/fastnative/evidence/BENCHMARK.json": "9b192c5697514c7b36b709d0e5506915425ca61f24af0210e2508d7b1bdb295f", + "vendor/fastnative/evidence/COVERAGE.json": "8bead250cc97614528d9448dfd29529bf08605daa5e8007e701038ab317e00f6", + "vendor/fastnative/evidence/REGISTERED.log": "78a49def69d0465f4318b9e24613246ba5fb6de19441e54b88fb50dfe823f149", + "vendor/fastnative/evidence/VALIDATION.json": "d265ce16251effd6b5d3b7429f31f98cd385fe79f659cfa24a2820bc17ac70dd", + "vendor/fastnative/fixtures/WORD-base.json.gz": "ae8b6b4d62a9da29331062fae1bd68b0341edf83152f5a5ef50c5109ba578f9a", + "vendor/fastnative/fixtures/WORD-extra.json.gz": "1bb44a73d5841afb954b49ae94dba2e0c536b1eea9436ae5d89de87d8a04e127", + "vendor/fastnative/requirements.txt": "a23aaf94250a9f53031a592980142245a848e2372b6c6c3093e8260b129265b8", + "vendor/fastnative/run_native.py": "a7bfe110fe5098f6ef8bde3c43ecf15e8d1e06149abf7321a4c945383dcc2627", + "vendor/fastnative/stage.py": "3cce27dd5a359ebc4dc70d4aab994aee52bc0a12e59db7da3f902257f876cffe", + "vendor/fastnative/vendor/accelerators/SPARSE-NOTICE.md": "3da80a5155c625bff907a42a82c65bfcf92854d2c960bcea4537c19c99efd4f2", + "vendor/fastnative/vendor/accelerators/SPARSE-PROOF.md": "d73e4522602404caba8e7f247005a45c8a8cd26ffd2a70d65f4f9556a391d053", + "vendor/fastnative/vendor/accelerators/sparse_state.py": "e91210ecd5085cf9add872f40bb434806838da488e12152c63c86e51fb5a7a37", + "vendor/fastnative/vendor/accelerators/tables.py": "2fe087ba4558bd21ca49945dbedaa4047e4170e8fd4e2280701bb2f0481811b5", + "vendor/fastnative/vendor/native/new/code/borrow/NOTICE-PR2226.md": "6b6730303818f6edc2a253eb4d05471eee58f28b5815fb250c32ae376f774c8a", + "vendor/fastnative/vendor/native/new/code/borrow/bw_adapters.py": "c5907050a9a7fa36d4fcba3ad4fe440d1bec2063360c095013891785ba65c3ce", + "vendor/fastnative/vendor/native/new/code/borrow/bw_audit_local.py": "08d5864d9b77902fc5ab5a062a8ea843fe1e572243b8c580abb0a421b2e46d07", + "vendor/fastnative/vendor/native/new/code/borrow/bw_check_recipes.py": "d600b959a0ac462dc28deb8c0d5d8f9e0c76d7f7d7b6f92a296c5ef9e0a1de19", + "vendor/fastnative/vendor/native/new/code/borrow/bw_emit.py": "99b59a6fa3feda86785e4225157dcb1a6169d256cec4f5e0acc9cea7a701df76", + "vendor/fastnative/vendor/native/new/code/borrow/bw_gauss.py": "0884b14d6d77cde419a3c773ad9b21d0d18de1e6e20e6b6d5add458ed32ba4cb", + "vendor/fastnative/vendor/native/new/code/borrow/bw_phases.py": "9d1a620e26715f4c42fd0347ecc14ef5a4a9031867869b64e8bae4d8526a821e", + "vendor/fastnative/vendor/native/new/code/borrow/bw_tamper.py": "eab4b026965b9796eee92239660e1fb1fa629f6d9db44bc27b13911a018a6ee9", + "vendor/fastnative/vendor/native/new/code/borrow/bw_transport.py": "9818e08b819310b40f1441b89be8c4369584a5b3fa5dfe9b86b1df9a7f5d6a76", + "vendor/fastnative/vendor/native/new/code/borrow/vendor/PR2226-NOTICE.md": "f1d45d886926915531e3a59968abf0a4c974d7038f869848e71bd3a21b834422", + "vendor/fastnative/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendor/fastnative/vendor/native/new/code/borrow/vendor/pr2226_operators.py": "b37b67a04681c776dafcdc6c9af0e8a2dbfa9893b02e0fa2d77ccc9182a87988", + "vendor/fastnative/vendor/native/new/code/borrow/vendor/pr2226_replay.py": "0f9a47cdaeed0e22938c63251c232d6f23aeee2b62b0b1223cd4473c5428bcf7", + "vendor/fastnative/vendor/native/new/run_native_borrow.py": "8ec7db430f4f4771c06bdcfc31736193614f6ec209d57b63d4e2b75f17fb3ac8", + "vendor/fastnative/verify.py": "6dbdc56ca6cfde987869e12990a495d7eded78dd1887fb3fdf2d196060220fcc", + "vendor/preload_move.py": "c8fda4674644fcd5cbf39b6645ce148a21daa90a998b678cbe51f970b78b0044" +} diff --git a/research/helper408-rank7-pairing/sources/SOURCES.json b/research/helper408-rank7-pairing/sources/SOURCES.json new file mode 100644 index 0000000000..b9b9a1d41d --- /dev/null +++ b/research/helper408-rank7-pairing/sources/SOURCES.json @@ -0,0 +1,18 @@ +{ + "schema_version": 1, + "base_commit": "572207084e5c2c21958969cc2e4c58fd4df8afb6", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "889b95d936746df124872133ae1e7cc339adcb92", + "sha256": "7d185cd8c2af35988d638d969748ad7b670f902606444dbfc748e4402c340df6" + } + ] +} diff --git a/research/helper408-rank7-pairing/sources/allocation/FILL.json.gz b/research/helper408-rank7-pairing/sources/allocation/FILL.json.gz new file mode 100644 index 0000000000..68b0b7f7df Binary files /dev/null and b/research/helper408-rank7-pairing/sources/allocation/FILL.json.gz differ diff --git a/research/helper408-rank7-pairing/sources/allocation/ORDER.json b/research/helper408-rank7-pairing/sources/allocation/ORDER.json new file mode 100644 index 0000000000..7409c4df10 --- /dev/null +++ b/research/helper408-rank7-pairing/sources/allocation/ORDER.json @@ -0,0 +1 @@ +[[0,0],[0,37],[0,1],[0,38],[0,2],[0,39],[0,3],[0,40],[0,4],[0,41],[1,0],[1,37],[0,5],[0,42],[1,1],[1,38],[0,6],[0,43],[1,2],[1,39],[0,7],[0,44],[1,3],[1,40],[0,8],[0,45],[1,4],[1,41],[0,9],[0,46],[2,0],[2,37],[1,5],[1,42],[0,10],[0,47],[2,1],[2,38],[1,6],[1,43],[0,11],[0,48],[2,2],[2,39],[1,7],[1,44],[0,12],[0,49],[2,3],[2,40],[1,8],[1,45],[0,13],[0,50],[2,4],[2,41],[1,9],[1,46],[3,0],[3,37],[0,14],[0,51],[2,5],[2,42],[1,10],[1,47],[3,1],[3,38],[0,15],[0,52],[2,6],[2,43],[1,11],[1,48],[3,2],[3,39],[0,16],[0,53],[2,7],[2,44],[1,12],[1,49],[3,3],[3,40],[0,17],[0,54],[2,8],[2,45],[1,13],[1,50],[3,4],[3,41],[0,18],[0,55],[2,9],[2,46],[4,0],[4,37],[1,14],[1,51],[3,5],[3,42],[0,19],[0,56],[2,10],[2,47],[4,1],[4,38],[1,15],[1,52],[3,6],[3,43],[0,20],[0,57],[2,11],[2,48],[4,2],[4,39],[1,16],[1,53],[3,7],[3,44],[0,21],[0,58],[2,12],[2,49],[4,3],[4,40],[1,17],[1,54],[3,8],[3,45],[0,22],[0,59],[2,13],[2,50],[4,4],[4,41],[1,18],[1,55],[3,9],[3,46],[0,23],[0,60],[5,0],[5,37],[2,14],[2,51],[4,5],[4,42],[1,19],[1,56],[3,10],[3,47],[0,24],[0,61],[5,1],[5,38],[2,15],[2,52],[4,6],[4,43],[1,20],[1,57],[3,11],[3,48],[0,25],[0,62],[5,2],[5,39],[2,16],[2,53],[4,7],[4,44],[1,21],[1,58],[3,12],[3,49],[0,26],[0,63],[5,3],[5,40],[2,17],[2,54],[4,8],[4,45],[1,22],[1,59],[3,13],[3,50],[0,27],[0,64],[5,4],[5,41],[2,18],[2,55],[4,9],[4,46],[1,23],[1,60],[6,0],[6,37],[3,14],[3,51],[0,28],[0,65],[5,5],[5,42],[2,19],[2,56],[4,10],[4,47],[1,24],[1,61],[6,1],[6,38],[3,15],[3,52],[0,29],[0,66],[5,6],[5,43],[2,20],[2,57],[4,11],[4,48],[1,25],[1,62],[6,2],[6,39],[3,16],[3,53],[0,30],[0,67],[5,7],[5,44],[2,21],[2,58],[4,12],[4,49],[1,26],[1,63],[6,3],[6,40],[3,17],[3,54],[0,31],[0,68],[5,8],[5,45],[2,22],[2,59],[4,13],[4,50],[1,27],[1,64],[6,4],[6,41],[3,18],[3,55],[0,32],[0,69],[5,9],[5,46],[2,23],[2,60],[7,0],[7,37],[4,14],[4,51],[1,28],[1,65],[6,5],[6,42],[3,19],[3,56],[0,33],[0,70],[5,10],[5,47],[2,24],[2,61],[7,1],[7,38],[4,15],[4,52],[1,29],[1,66],[6,6],[6,43],[3,20],[3,57],[0,34],[0,71],[5,11],[5,48],[2,25],[2,62],[7,2],[7,39],[4,16],[4,53],[1,30],[1,67],[6,7],[6,44],[3,21],[3,58],[0,35],[0,72],[5,12],[5,49],[2,26],[2,63],[7,3],[7,40],[4,17],[4,54],[1,31],[1,68],[6,8],[6,45],[3,22],[3,59],[0,36],[0,73],[5,13],[5,50],[2,27],[2,64],[7,4],[7,41],[4,18],[4,55],[1,32],[1,69],[6,9],[6,46],[3,23],[3,60],[8,0],[8,37],[5,14],[5,51],[2,28],[2,65],[7,5],[7,42],[4,19],[4,56],[1,33],[1,70],[6,10],[6,47],[3,24],[3,61],[8,1],[8,38],[5,15],[5,52],[2,29],[2,66],[7,6],[7,43],[4,20],[4,57],[1,34],[1,71],[6,11],[6,48],[3,25],[3,62],[8,2],[8,39],[5,16],[5,53],[2,30],[2,67],[7,7],[7,44],[4,21],[4,58],[1,35],[1,72],[6,12],[6,49],[3,26],[3,63],[8,3],[8,40],[5,17],[5,54],[2,31],[2,68],[7,8],[7,45],[4,22],[4,59],[1,36],[1,73],[6,13],[6,50],[3,27],[3,64],[8,4],[8,41],[5,18],[5,55],[2,32],[2,69],[7,9],[7,46],[4,23],[4,60],[6,14],[6,51],[3,28],[3,65],[8,5],[8,42],[5,19],[5,56],[2,33],[2,70],[7,10],[7,47],[4,24],[4,61],[6,15],[6,52],[3,29],[3,66],[8,6],[8,43],[5,20],[5,57],[2,34],[2,71],[7,11],[7,48],[4,25],[4,62],[6,16],[6,53],[3,30],[3,67],[8,7],[8,44],[5,21],[5,58],[2,35],[2,72],[7,12],[7,49],[4,26],[4,63],[6,17],[6,54],[3,31],[3,68],[8,8],[8,45],[5,22],[5,59],[2,36],[2,73],[7,13],[7,50],[4,27],[4,64],[6,18],[6,55],[3,32],[3,69],[8,9],[8,46],[5,23],[5,60],[7,14],[7,51],[4,28],[4,65],[6,19],[6,56],[3,33],[3,70],[8,10],[8,47],[5,24],[5,61],[7,15],[7,52],[4,29],[4,66],[6,20],[6,57],[3,34],[3,71],[8,11],[8,48],[5,25],[5,62],[7,16],[7,53],[4,30],[4,67],[6,21],[6,58],[3,35],[3,72],[8,12],[8,49],[5,26],[5,63],[7,17],[7,54],[4,31],[4,68],[6,22],[6,59],[3,36],[3,73],[8,13],[8,50],[5,27],[5,64],[7,18],[7,55],[4,32],[4,69],[6,23],[6,60],[8,14],[8,51],[5,28],[5,65],[7,19],[7,56],[4,33],[4,70],[6,24],[6,61],[8,15],[8,52],[5,29],[5,66],[7,20],[7,57],[4,34],[4,71],[6,25],[6,62],[8,16],[8,53],[5,30],[5,67],[7,21],[7,58],[4,35],[4,72],[6,26],[6,63],[8,17],[8,54],[5,31],[5,68],[7,22],[7,59],[4,36],[4,73],[6,27],[6,64],[8,18],[8,55],[5,32],[5,69],[7,23],[7,60],[6,28],[6,65],[8,19],[8,56],[5,33],[5,70],[7,24],[7,61],[6,29],[6,66],[8,20],[8,57],[5,34],[5,71],[7,25],[7,62],[6,30],[6,67],[8,21],[8,58],[5,35],[5,72],[7,26],[7,63],[6,31],[6,68],[8,22],[8,59],[5,36],[5,73],[7,27],[7,64],[6,32],[6,69],[8,23],[8,60],[7,28],[7,65],[6,33],[6,70],[8,24],[8,61],[7,29],[7,66],[6,34],[6,71],[8,25],[8,62],[7,30],[7,67],[6,35],[6,72],[8,26],[8,63],[7,31],[7,68],[6,36],[6,73],[8,27],[8,64],[7,32],[7,69],[8,28],[8,65],[7,33],[7,70],[8,29],[8,66],[7,34],[7,71],[8,30],[8,67],[7,35],[7,72],[8,31],[8,68],[7,36],[7,73],[8,32],[8,69],[8,33],[8,70],[8,34],[8,71],[8,35],[8,72],[8,36],[8,73]] \ No newline at end of file diff --git a/research/helper408-rank7-pairing/sources/allocation/PROFILE.json b/research/helper408-rank7-pairing/sources/allocation/PROFILE.json new file mode 100644 index 0000000000..916437d9e1 --- /dev/null +++ b/research/helper408-rank7-pairing/sources/allocation/PROFILE.json @@ -0,0 +1 @@ +{"1":1620344,"2":426241,"3":180732,"4":85248,"5":25700,"6":120,"7":1,"8":5328,"23":1,"32":14,"48":26837} \ No newline at end of file diff --git a/research/helper408-rank7-pairing/sources/allocation/PROVIDERS.json b/research/helper408-rank7-pairing/sources/allocation/PROVIDERS.json new file mode 100644 index 0000000000..45de4bc33f --- /dev/null +++ b/research/helper408-rank7-pairing/sources/allocation/PROVIDERS.json @@ -0,0 +1 @@ +{"extra":{"actual_paid_profile":{"1":2407,"2":640,"3":262,"4":128,"5":26,"8":8},"widths":[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,9,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,4,9,4,9,8,9,9,4,9,9,9,9,9,9,9,9,4,9,4,9,8,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,9,8,8,9,8,9,8,9,9,9,9,9,9,9,9,9,8,8,7,7,7,7,8,9,8,9,7,7,7,7,7,7,9,9,9,9,8,8,8,9,8,8,9,9,9,9,8,7,7,8,9,8,8,9,9,9,9,8,8,8,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,8,7,8,8,9,9,9,9,8,8,8,8,7,7,7,7,9,8,9,8,8,8,8,8,7,7,9,8,9,8,7,7,7,7,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,8,8,8,8]},"gauge44":{"actual_paid_profile":{"1":2407,"2":640,"3":262,"4":128,"5":26,"8":8},"widths":[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,9,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,4,9,4,9,8,9,9,4,9,9,9,9,9,9,9,9,4,9,4,9,8,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,4,9,4,9,4,9,9,9,9,4,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,9,8,8,9,8,9,8,9,9,9,9,9,9,9,9,9,8,8,7,7,7,7,8,9,8,9,7,7,7,7,7,7,9,9,9,9,8,8,8,9,8,8,9,9,9,9,8,7,7,8,9,8,8,9,9,9,9,8,8,8,7,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,8,7,8,8,9,9,9,9,8,8,8,8,7,7,7,7,9,8,9,8,8,8,8,8,7,7,9,8,9,8,7,7,7,7,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,8,8,8,8]}} \ No newline at end of file diff --git a/research/helper408-rank7-pairing/sources/allocation/RESULT.json b/research/helper408-rank7-pairing/sources/allocation/RESULT.json new file mode 100644 index 0000000000..325169cd4c --- /dev/null +++ b/research/helper408-rank7-pairing/sources/allocation/RESULT.json @@ -0,0 +1 @@ +{"calls":666,"floating_root":0.0017203983373542838,"idle":{"1":17282,"2":1,"3":6240,"5":8384,"6":120,"7":1,"23":1,"32":14,"48":26837},"live":66304,"physical":66795,"physical_scope":"actual helper408 buffer count; whole outer invoice not yet admitted","profile":{"1":1620344,"2":426241,"3":180732,"4":85248,"5":25700,"6":120,"7":1,"8":5328,"23":1,"32":14,"48":26837},"rank_mass":4816512,"replicas":74,"roles":271728,"status":"PASS_INDEPENDENT_OWNER_CHECK_FLOATING_PRICE_ONLY"} \ No newline at end of file diff --git a/research/helper408-rank7-pairing/sources/allocation/baseline/PROFILE.json b/research/helper408-rank7-pairing/sources/allocation/baseline/PROFILE.json new file mode 100644 index 0000000000..a1a5cb62c3 --- /dev/null +++ b/research/helper408-rank7-pairing/sources/allocation/baseline/PROFILE.json @@ -0,0 +1 @@ +{"1":1618380,"2":427572,"3":180819,"4":85248,"5":25863,"8":5328,"48":26825} \ No newline at end of file diff --git a/research/helper408-rank7-pairing/sources/allocation/vendor/TEMPLATE.json.gz b/research/helper408-rank7-pairing/sources/allocation/vendor/TEMPLATE.json.gz new file mode 100644 index 0000000000..114808c32b Binary files /dev/null and b/research/helper408-rank7-pairing/sources/allocation/vendor/TEMPLATE.json.gz differ diff --git a/research/helper408-rank7-pairing/sources/data/PARENT-base.json.gz b/research/helper408-rank7-pairing/sources/data/PARENT-base.json.gz new file mode 100644 index 0000000000..0ca8149510 Binary files /dev/null and b/research/helper408-rank7-pairing/sources/data/PARENT-base.json.gz differ diff --git a/research/helper408-rank7-pairing/sources/data/PARENT-extra.json.gz b/research/helper408-rank7-pairing/sources/data/PARENT-extra.json.gz new file mode 100644 index 0000000000..5c9e40118c Binary files /dev/null and b/research/helper408-rank7-pairing/sources/data/PARENT-extra.json.gz differ diff --git a/research/helper408-rank7-pairing/sources/data/TRANSFORM.json b/research/helper408-rank7-pairing/sources/data/TRANSFORM.json new file mode 100644 index 0000000000..0e81cdc3e3 --- /dev/null +++ b/research/helper408-rank7-pairing/sources/data/TRANSFORM.json @@ -0,0 +1,271 @@ +{ + "label": "n52-a0-v2-h408", + "helper": 408, + "normal": 52, + "profile": { + "1": 2407, + "2": 640, + "3": 262, + "4": 128, + "5": 26, + "8": 8 + }, + "inventory": { + "4": 26, + "5": 2, + "7": 62, + "8": 87, + "9": 231 + }, + "delta": { + "1": 3, + "2": -2 + }, + "pessimistic_local_plus_idle": 0.004766521998909923, + "before": [ + [ + "add", + 226, + 408, + 1, + 2, + [] + ], + [ + "add", + 227, + 408, + 1, + 2, + [] + ], + [ + "add", + 230, + 408, + -1, + 2, + [] + ], + [ + "add", + 231, + 408, + -1, + 2, + [] + ], + [ + "add", + 233, + 408, + -1, + 2, + [] + ], + [ + "add", + 234, + 408, + -1, + 2, + [] + ], + [ + "add", + 236, + 408, + 1, + 2, + [] + ], + [ + "add", + 239, + 408, + 1, + 2, + [] + ], + [ + "add", + 401, + 408, + -1, + 2, + [] + ], + [ + "add", + 402, + 408, + 1, + 2, + [] + ], + [ + "add", + 403, + 408, + 1, + 2, + [] + ], + [ + "add", + 407, + 408, + -1, + 2, + [] + ], + [ + "add", + 410, + 408, + -1, + 2, + [] + ], + [ + "add", + 411, + 408, + -1, + 2, + [] + ], + [ + "add", + 414, + 408, + 1, + 2, + [] + ], + [ + "scale", + 408, + 2, + 1, + [] + ], + [ + "add", + 408, + 401, + 2, + 1, + [] + ], + [ + "add", + 408, + 402, + -1, + 1, + [] + ], + [ + "add", + 408, + 403, + 1, + 1, + [] + ], + [ + "add", + 408, + 404, + 1, + 1, + [] + ], + [ + "add", + 408, + 405, + -1, + 1, + [] + ], + [ + "add", + 408, + 409, + 1, + 1, + [] + ], + [ + "add", + 408, + 414, + -1, + 1, + [] + ], + [ + "add", + 408, + 415, + 1, + 1, + [] + ] + ], + "after": [ + [ + "add", + 408, + 42, + 1, + 2, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ], + [ + "add", + 408, + 105, + 1, + 1, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ], + [ + "add", + 42, + 408, + -2, + 1, + [ + 256, + 128, + 64, + 36, + 20, + 8, + 2, + 1 + ] + ] + ] +} diff --git a/research/helper408-rank7-pairing/sources/data/WORD-base.json.gz b/research/helper408-rank7-pairing/sources/data/WORD-base.json.gz new file mode 100644 index 0000000000..6303cfd847 Binary files /dev/null and b/research/helper408-rank7-pairing/sources/data/WORD-base.json.gz differ diff --git a/research/helper408-rank7-pairing/sources/data/WORD-extra.json.gz b/research/helper408-rank7-pairing/sources/data/WORD-extra.json.gz new file mode 100644 index 0000000000..38af2b6ea7 Binary files /dev/null and b/research/helper408-rank7-pairing/sources/data/WORD-extra.json.gz differ diff --git a/research/helper408-rank7-pairing/verify_boundary.py b/research/helper408-rank7-pairing/verify_boundary.py new file mode 100644 index 0000000000..39756c56dd --- /dev/null +++ b/research/helper408-rank7-pairing/verify_boundary.py @@ -0,0 +1,411 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Exact rational scalar-boundary spaces in the free group algebra. + +Written independently of the PR2908 auditor/structure implementation. No source +module is imported. The two pinned providers remain the mathematical premises. +""" +import argparse +from collections import defaultdict +from fractions import Fraction +import gzip +import hashlib +import json +from pathlib import Path + +Q = Fraction +E7 = (256, 128, 66, 36, 22, 8, 1) +E8 = (256, 128, 64, 36, 20, 8, 2, 1) +EXPECTED_R = (105, 307, 309, 314, 369, 371, 373, 378, 408, 572, 573) +CERTIFICATE_J = (14, 307, 309, 314, 369, 371, 373, 378, 41, 572, 573) +EXPECTED_SHA256 = { + 'base': 'c20a470aec0f3e61833cb41fe190639eb358f58017143d2336c55c80fba265eb', + 'extra': 'db34e39876241087b581ed9374c53e9cd393e3e86ef6103bfb54f3077c3d2761', +} +TRANSFORM_SHA256 = '1d38f0369fce0b892d202ce2e5fd7ea95d9a95d3f80734b672cddd5cb93ce8ca' + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def gf2_basis(vectors): + pivots = {} + for original in vectors: + x = original + while x: + bit = x.bit_length() - 1 + if bit in pivots: + x ^= pivots[bit] + else: + pivots[bit] = x + break + for bit in sorted(pivots): + for higher in pivots: + if higher > bit and (pivots[higher] >> bit) & 1: + pivots[higher] ^= pivots[bit] + return tuple(pivots[bit] for bit in sorted(pivots, reverse=True)) + + +def contained(a, b): + return gf2_basis(tuple(a) + tuple(b)) == gf2_basis(b) + + +def supported_add(destination, source, coefficient): + for k, c in source.items(): + value = destination.get(k, Q(0)) + coefficient * c + if value: + destination[k] = value + else: + destination.pop(k, None) + + +def target(r): + return 112 <= r < 224 + + +def literal_program(provider): + """M = restore * B * Aord, chronological list; no target writes.""" + program = list(provider['A'][provider['prelude_events']:]) + warps = defaultdict(list) + for symbol, record in enumerate(provider['warps'], 1): + warps[record[0]].append(['warp', record[1], symbol]) + for position in range(len(provider['B']) + 1): + program.extend(warps[position]) + if position < len(provider['B']): + program.append(provider['B'][position]) + program.extend(provider['restore']) + return [g for g in program if g[0] == 'warp' or not target(g[1])] + + +def replay(provider): + live = sorted(set(range(704)) - set(provider['removed']) - set(range(112, 224))) + rows = {r: {(r, ()): Q(1)} for r in live} + for gate in literal_program(provider): + kind, destination = gate[:2] + need(destination in rows, 'destination not in live non-target coordinates') + if kind == 'add': + source = gate[2] + need(source in rows and source != destination, 'invalid scalar source') + supported_add(rows[destination], rows[source], Q(gate[3], gate[4])) + elif kind == 'scale': + coefficient = Q(gate[2], gate[3]) + need(coefficient != 0, 'noninvertible scale') + rows[destination] = {k: coefficient * c for k, c in rows[destination].items()} + elif kind == 'warp': + symbol = gate[2] + need(symbol != 0, 'invalid free generator') + image = {} + for (column, word), c in rows[destination].items(): + # Left multiplication, with only adjacent inverse cancellation. + reduced = word[1:] if word and word[0] == -symbol else (symbol,) + word + image[column, reduced] = c + rows[destination] = image + else: + raise ValueError('unknown gate') + return rows + + +def terminal_frames(provider): + """Replay *all* frame incidents, including target writes and warp resets.""" + live = set(range(704)) - set(provider['removed']) + current = [(p,) for p in provider['ports']] + [()] * 592 + for r, frame in provider['start_extra'].items(): + current[int(r)] = gf2_basis(frame) + counts = defaultdict(int) + + def climb(register, frame): + need(register in live, 'frame incident on removed register') + frame = gf2_basis(frame) + need(contained(current[register], frame), 'nonmonotone scalar frame') + current[register] = frame + counts['scalar_incidents'] += 1 + + def step(gate): + if gate[0] == 'warp': + _, r, symbol, before, after = gate + need(current[r] == gf2_basis(before), 'prelude warp frame mismatch') + need(provider['warps'][abs(symbol) - 1][1] == r, 'prelude lender mismatch') + current[r] = gf2_basis(after) + counts['prelude_warps'] += 1 + elif gate[0] == 'add': + for r in gate[1:3]: + climb(r, gate[-1]) + elif gate[0] == 'scale': + climb(gate[1], gate[-1]) + else: + raise ValueError('unknown frame gate') + + for gate in provider['A']: + step(gate) + for r, frame in zip(provider['centers'], provider['center_frames']): + need(current[r] == gf2_basis(frame), 'center frame mismatch') + warps = defaultdict(list) + for record in provider['warps']: + warps[record[0]].append(record) + for position in range(len(provider['B']) + 1): + for _, r, _, before, after in warps[position]: + need(current[r] == gf2_basis(before), 'B warp frame mismatch') + current[r] = gf2_basis(after) + counts['middle_warps'] += 1 + if position < len(provider['B']): + step(provider['B'][position]) + for gate in provider['restore']: + step(gate) + return {r: current[r] for r in sorted(live) if not target(r)}, dict(counts) + + +def kernel(equations, variables): + """Complete sparse rational Gaussian elimination; no modular inference.""" + pivots = {} + nonzero_equations = 0 + for source in equations: + row = {k: Q(c) for k, c in source.items() if c} + if not row: + continue + nonzero_equations += 1 + while row: + lead = min(row) + if lead not in pivots: + d = row[lead] + pivots[lead] = {k: c / d for k, c in row.items()} + break + supported_add(row, pivots[lead], -row[lead]) + free = [r for r in variables if r not in pivots] + basis = [] + for f in free: + vector = {f: Q(1)} + for p in sorted(pivots, reverse=True): + value = -sum(c * vector.get(k, Q(0)) for k, c in pivots[p].items() if k != p) + if value: + vector[p] = value + basis.append(vector) + return basis, {'equations': nonzero_equations, 'rank': len(pivots), 'dimension': len(free)} + + +def column_image(matrix, vector): + result = {} + for r, row in matrix.items(): + polynomial = {} + for (c, word), coefficient in row.items(): + if c in vector: + supported_add(polynomial, {word: coefficient}, vector[c]) + if polynomial: + result[r] = polynomial + return result + + +def row_image(matrix, covector): + result = {} + for r, coefficient in covector.items(): + supported_add(result, matrix[r], coefficient) + return result + + +def scalar_column(image, allowed): + need(all(r in allowed and set(poly) == {()} for r, poly in image.items()), 'column support/scalar violation') + return {r: poly[()] for r, poly in image.items()} + + +def scalar_row(image, allowed): + need(all(r in allowed and not word for r, word in image), 'row support/scalar violation') + return {r: coefficient for (r, _), coefficient in image.items()} + + +def analyze(matrix, H, R): + H, R = set(H), set(R) + forward = [] + for r, row in matrix.items(): + byword = defaultdict(dict) + for (c, word), coefficient in row.items(): + if c in H and (r not in R or word): + byword[word][c] = coefficient + forward.extend(byword.values()) + inverse = defaultdict(dict) + for r in sorted(R): + for (c, word), coefficient in matrix[r].items(): + if c not in H or word: + inverse[c, word][r] = coefficient + V, v_info = kernel(forward, sorted(H)) + Alpha, a_info = kernel(inverse.values(), sorted(R)) + Y = [scalar_column(column_image(matrix, v), R) for v in V] + U = [scalar_row(row_image(matrix, a), H) for a in Alpha] + pairing = [[sum(a.get(r, Q(0)) * c for r, c in y.items()) for y in Y] for a in Alpha] + for i, u in enumerate(U): + for j, v in enumerate(V): + need(pairing[i][j] == sum(u.get(r, Q(0)) * c for r, c in v.items()), 'two forms of pairing differ') + return {'V': V, 'Y': Y, 'Alpha': Alpha, 'U': U, 'pairing': pairing, + 'forward': v_info, 'inverse': a_info} + + +def encode_vector(vector): + return {str(k): str(c) for k, c in sorted(vector.items())} + + +def scalar_change(gates, coordinates): + matrix = {r: {r: Q(1)} for r in coordinates} + for gate in gates: + if gate[0] == 'add': + need(gate[1] != gate[2], 'self add in calibration') + supported_add(matrix[gate[1]], matrix[gate[2]], Q(gate[3], gate[4])) + elif gate[0] == 'scale': + c = Q(gate[2], gate[3]) + need(c != 0, 'zero scale in calibration') + matrix[gate[1]] = {r: c * a for r, a in matrix[gate[1]].items()} + else: + raise ValueError('nonscalar calibration gate') + return matrix + + +def check_pair(matrix, H, R, v, alpha): + need(set(v) <= set(H), 'input nominee outside H') + need(set(alpha) <= set(R), 'terminal nominee outside R') + y = scalar_column(column_image(matrix, v), set(R)) + u = scalar_row(row_image(matrix, alpha), set(H)) + need(sum(alpha.get(r, Q(0)) * c for r, c in y.items()) == 1, 'nonunit witness pairing') + return y, u + + +def rejects(action, reason): + try: + action() + except ValueError as error: + need(str(error) == reason, 'control failed for an unexpected reason: ' + str(error)) + return {'rejected': True, 'reason': reason} + raise ValueError('invalid witness control was accepted') + + +def calibrate(matrix, H, frames, transform): + """Verify the pinned known E52 construction, then break real equations.""" + h = transform['helper'] + need(h == 408, 'calibration helper differs') + R8 = {r for r in matrix if contained(frames[r], E8)} + for gate in transform['before']: + need(gate[-1] == [], 'calibration entrance not zero frame') + need(set(gate[1:3] if gate[0] == 'add' else gate[1:2]) <= set(H), + 'calibration entrance touches protected register') + for gate in transform['after']: + need(gf2_basis(gate[-1]) == E8, 'calibration terminal not E52') + need(set(gate[1:3] if gate[0] == 'add' else gate[1:2]) <= R8, + 'calibration terminal touches ineligible register') + S = scalar_change(transform['before'], matrix) + T = scalar_change(transform['after'], matrix) + v = {r: row[h] for r, row in S.items() if h in row} + alpha = T[h] + y, u = check_pair(matrix, H, R8, v, alpha) + need(y == {42: Q(2)}, 'known E52 column image differs') + need(alpha == {408: Q(1), 42: Q(1, 2), 105: Q(1)}, 'known E52 row differs') + uS = {} + for r, c in u.items(): + supported_add(uS, S[r], c) + Ty = {r: sum(c * y.get(k, Q(0)) for k, c in row.items()) for r, row in T.items()} + Ty = {r: c for r, c in Ty.items() if c} + need(uS == {h: Q(1)} and Ty == {h: Q(1)}, 'known E52 basis completion fails') + bad_v = dict(v) + bad_v[226] += Q(1, 2) # 1/2 -> 1: changes an actual input coefficient. + bad_alpha = dict(alpha) + bad_alpha[42] += Q(1, 2) # 1/2 -> 1: changes the cancelling output coefficient. + R7 = {r for r in matrix if contained(frames[r], E7)} + controls = { + 'input_coefficient_226_half_to_one': rejects( + lambda: check_pair(matrix, H, R8, bad_v, alpha), 'column support/scalar violation'), + 'output_coefficient_42_half_to_one': rejects( + lambda: check_pair(matrix, H, R8, v, bad_alpha), 'row support/scalar violation'), + 'unchanged_known_pair_claimed_at_E7': rejects( + lambda: check_pair(matrix, H, R7, v, alpha), 'terminal nominee outside R'), + } + return { + 'status': 'PASS_EXACT_KNOWN_E52_PAIR_AND_BASIS_COMPLETION', + 'eligible_terminal_count': len(R8), 'v': encode_vector(v), 'u': encode_vector(u), + 'alpha': encode_vector(alpha), 'y': encode_vector(y), 'pairing': '1', + 'identities': ['S e408 = v', 'u S = e408^T', 'M v = y', 'alpha M = u', + 'alpha y = 1', 'T y = e408', 'e408^T T = alpha'], + 'controls': controls, + } + + +def diagonal_certificate(matrix, H, R): + need(tuple(R) == EXPECTED_R, 'eligible set differs from certificate') + need(not (set(CERTIFICATE_J) & set(H)), 'certificate column allowed in H') + diagonal = [Q(-1, 2)] + [Q(1)] * 7 + [Q(1, 2), Q(1), Q(1)] + determinant = Q(1) + for i, r in enumerate(R): + for j, c in enumerate(CERTIFICATE_J): + polynomial = {word: coefficient for (column, word), coefficient in matrix[r].items() if column == c} + expected = {(): diagonal[i]} if i == j else {} + need(polynomial == expected, 'exact forbidden-input minor differs') + determinant *= diagonal[i] + need(determinant == Q(-1, 4), 'certificate determinant differs') + return { + 'terminal_rows': list(R), 'forbidden_input_columns': list(CERTIFICATE_J), + 'exact_scalar_diagonal': [str(c) for c in diagonal], 'determinant': str(determinant), + 'nonempty_words_in_minor': 0, + 'conclusion': 'alpha M supported on H forces alpha = 0; no paired extraction', + } + + +def operator_digest(matrix): + terms = [[r, c, list(word), str(a)] for r in sorted(matrix) + for (c, word), a in sorted(matrix[r].items())] + return hashlib.sha256(json.dumps(terms, separators=(',', ':')).encode()).hexdigest() + + +def report(provider, label, transform): + M = replay(provider) + frames, frame_counts = terminal_frames(provider) + protected = (set(map(int, provider['helper_final'])) | set(map(int, provider['start_extra'])) + | {record['source'] for record in provider['initial_corrections']}) + H = sorted(r for r in M if r >= 224 and r not in protected) + R = sorted(r for r in M if contained(frames[r], E7)) + need(frames[408] == E7 and 408 in H and 408 in R, 'helper408 boundary differs') + prelude_lenders = {g[1] for g in provider['A'][:provider['prelude_events']] if g[0] == 'warp'} + need(not (prelude_lenders & set(H)), 'eligible input helper affected by prelude warp') + result = analyze(M, H, R) + need(len(H) == 226 and result['forward']['dimension'] == 0 and result['inverse']['dimension'] == 0, + 'scoped obstruction ranks differ') + return { + 'variant': label, 'H': H, 'R': R, 'R_frames': {str(r): list(frames[r]) for r in R}, + 'frame_replay': frame_counts, + 'non_target_registers': len(M), 'free_operator_terms': sum(map(len, M.values())), + 'middle_gate_count': len(literal_program(provider)), + 'middle_operator_sha256': operator_digest(M), + 'forward': result['forward'], 'inverse': result['inverse'], + 'V': [encode_vector(v) for v in result['V']], + 'Y': [encode_vector(y) for y in result['Y']], + 'Alpha': [encode_vector(a) for a in result['Alpha']], + 'U': [encode_vector(u) for u in result['U']], + 'pairing': [[str(c) for c in row] for row in result['pairing']], + 'pairing_zero': not any(c for row in result['pairing'] for c in row), + 'diagonal_certificate': diagonal_certificate(M, H, R), + 'calibration': calibrate(M, H, frames, transform), + } + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--data-dir', type=Path, default=Path(__file__).resolve().parent / 'sources' / 'data') + args = parser.parse_args() + transform_raw = (args.data_dir / 'TRANSFORM.json').read_bytes() + need(hashlib.sha256(transform_raw).hexdigest() == TRANSFORM_SHA256, + 'calibration transform bytes differ from scientific pin') + transform = json.loads(transform_raw) + reports = [] + for label in ('base', 'extra'): + path = args.data_dir / ('PARENT-' + label + '.json.gz') + raw = path.read_bytes() + need(hashlib.sha256(raw).hexdigest() == EXPECTED_SHA256[label], 'provider bytes differ from scientific pin') + provider = json.loads(gzip.decompress(raw)) + item = report(provider, label, transform) + item['input_sha256'] = hashlib.sha256(raw).hexdigest() + reports.append(item) + print(json.dumps({ + 'status': 'PASS_SCOPED_RANK7_OBSTRUCTION', + 'calibration_transform_sha256': TRANSFORM_SHA256, + 'both_middle_operators_identical': reports[0]['middle_operator_sha256'] == reports[1]['middle_operator_sha256'], + 'reports': reports, + }, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main()