From d4e989bb518f471291966cc771081c326ea45865 Mon Sep 17 00:00:00 2001 From: Chris R Date: Mon, 19 Oct 2026 22:15:00 +1100 Subject: [PATCH] Bound serial affine COPY by 121 total child ranks --- research/r437-affine-two-child-bound/PROOF.md | 233 +++++++++ .../r437-affine-two-child-bound/README.md | 110 +++++ .../r437-affine-two-child-bound/RESULT.json | 153 ++++++ .../r437-affine-two-child-bound/SOURCES.json | 69 +++ .../r437-affine-two-child-bound/TASK.json | 75 +++ .../r437-affine-two-child-bound/VALIDATION.md | 36 ++ .../r437-affine-two-child-bound/VERIFY.json | 51 ++ .../independent_f2.py | 45 ++ .../inputs/R437-LICENSE | 201 ++++++++ .../inputs/R437-UPSTREAM-NOTICE.md | 71 +++ .../inputs/pr3967-CATALOGUE.json | 447 ++++++++++++++++++ .../inputs/pr4010-RESULT.json | 101 ++++ .../inputs/pr4014-PROOF.md | 222 +++++++++ .../inputs/r437-EXPECTED.json | 34 ++ .../inputs/r437-word.json.gz | Bin 0 -> 42280 bytes .../test_package.py | 34 ++ .../r437-affine-two-child-bound/verify.py | 201 ++++++++ 17 files changed, 2083 insertions(+) create mode 100644 research/r437-affine-two-child-bound/PROOF.md create mode 100644 research/r437-affine-two-child-bound/README.md create mode 100644 research/r437-affine-two-child-bound/RESULT.json create mode 100644 research/r437-affine-two-child-bound/SOURCES.json create mode 100644 research/r437-affine-two-child-bound/TASK.json create mode 100644 research/r437-affine-two-child-bound/VALIDATION.md create mode 100644 research/r437-affine-two-child-bound/VERIFY.json create mode 100644 research/r437-affine-two-child-bound/independent_f2.py create mode 100644 research/r437-affine-two-child-bound/inputs/R437-LICENSE create mode 100644 research/r437-affine-two-child-bound/inputs/R437-UPSTREAM-NOTICE.md create mode 100644 research/r437-affine-two-child-bound/inputs/pr3967-CATALOGUE.json create mode 100644 research/r437-affine-two-child-bound/inputs/pr4010-RESULT.json create mode 100644 research/r437-affine-two-child-bound/inputs/pr4014-PROOF.md create mode 100644 research/r437-affine-two-child-bound/inputs/r437-EXPECTED.json create mode 100644 research/r437-affine-two-child-bound/inputs/r437-word.json.gz create mode 100644 research/r437-affine-two-child-bound/test_package.py create mode 100644 research/r437-affine-two-child-bound/verify.py diff --git a/research/r437-affine-two-child-bound/PROOF.md b/research/r437-affine-two-child-bound/PROOF.md new file mode 100644 index 0000000000..01d35dbcce --- /dev/null +++ b/research/r437-affine-two-child-bound/PROOF.md @@ -0,0 +1,233 @@ +# Two serial affine children cannot reach the cheap R437 COPY repair + +Chris R / Clear1nsight, with substantial OpenAI Codex assistance. Apache-2.0. + +## Contract and the genuinely changed premise + +PR4014 excluded affine translations from its one-child dependency proof and +explicitly left unequal two-child widths open. Here translations are allowed +and two child widths are arbitrary. The new result concerns a **serial affine +source pullback**. It does not include general multi-role, address-masked Boolean +circuits covered by the earlier linear-address one-child theorem. + +Let R=Z/q^w for an odd prime q and w>=1. Fix one physical prefix, fresh-row and +spectator fiber. Its two banks have n=64f address digits each, f>=1; the physical +tail is reflected. A forward affine map is x -> Lx+t with L invertible lower +triangular and t arbitrary in R^(2n). This grants every unit diagonal and every +translation, including translations supplied by fixed header digits, for free. +All schedule and coefficients are payload-independent. There are no additional +source payload channels, arbitrary-address readers or payload-controlled global +branches. The final operation on every arbitrary Boolean source F is exactly +one pullback F(Ax+t). Cloning a source or retaining dirty helpers is harmless +only when the output remains this single serial pullback; using masks to combine +differently routed copies changes the contract. + +The standard reversed child W_a swaps coordinate i with 2n-1-i for 0<=ib, select rows of X corresponding to original M rows d-a..d-b-1 and columns of X +corresponding to the SAME original indices. W_a sends these rows into 0..a-1; +W_b leaves these columns unchanged. The columns are >p-1, since a<=Na, use original +M indices a..b-1: W_a leaves these rows in the first p rows and W_b sends their +columns into the final b columns. Again a triangular unit minor of size b-a +appears. Hence NE_p(X) cannot vanish unless a=b=t. Only a lower bound on the +minor size is asserted; NE rank need not equal |a-b|. + +Partition the coordinates as t, d-2t, t, and let J reverse t coordinates. Write + + M = [ A0 0 0 ] W_t M W_t = [ JFJ JE JDJ ] + [ B C 0 ] [ 0 C BJ ] + [ D E F ] [ 0 0 JA0J]. + +The target has zero NE blocks at cuts t and d-t. By (2), X has the same zeros, +so D=E=B=0. Its middle diagonal block is C, which is lower triangular. +The middle block of LXR is exactly L_middle C R_middle: terms from the first +block vanish because R is lower triangular; terms from the last block vanish +because X's upper off-diagonal blocks are zero. This product is lower +triangular, contradicting the target. This proves the lemma without passing to +a residue field, division by nonunits, an enumeration of GL or a size limit. + +## Actual all-class rank-seven target and the width bound + +Let P be any of the nine literal rank-seven split projectors in the retained +R437 source. Its all-class GL64 contract includes a conjugate Q whose image is +the last seven head axes, 57..63. PR4014 records the source-bound construction: +a basis of im(P) followed by a basis of ker(P), then a basis permutation. +That split-projector premise and the all-GL64 quantifier are inherited inputs; +this package does not infer production admission from finite small-prime tests. + +For an arbitrary diagonal ancestor-unit matrix H=diag(h_i) on the head, the required map is + + D_H(Q) = diag(H,I) [[I-Q,Q],[Q,I-Q]] diag(H^-1,I), + +with physical tail reflected and all f columns included. It fixes the first +and last N=57f physical coordinates and swaps the central 7f head/tail pairs +with unit weights. Its middle block has nonzero entries above the diagonal. +The lemma forces p=max(a,b)>N=57f. There is a stronger constraint when +both children are proper, a,b=N. If recursive widths are a=k_1 f,b=k_2 f with +positive integer ranks, then + + min(k_1,k_2)>=57, max(k_1,k_2)>=58, + k_1+k_2>=115. (3) + +This is necessary, not a construction attaining115. For arbitrary positive +integer address widths the conclusion is a+b>=114f+1; it is wrong to infer +115f without the integer-rank premise. In particular7f+1f,7f+7f,42f+42f, +and58f+1f cannot realize this target in the serial affine domain. The +rank inequality explains why a single very large child plus a cheap child +also fails; this is stronger than merely requiring one child wider than57f. + +## Quotient refinement: total width at least121f + +There is a further necessary bound. We know a,b>=N. Factor W_a=W_N V_s and +W_b=V_t W_N, where s=a-N,t=b-N and V_s,V_t are outer reversed swaps wholly +inside the middle2r coordinates, r=7f. They commute with W_N. Partition M into +N,2r,N blocks. In X=W_a M W_b, the two outer target-zero cuts force its +cross blocks to vanish. Specifically those blocks are invertible permutation +multiples of the lower off-diagonal blocks B,D,E of M, so B=D=E=0. +The induced middle equation is therefore + + L_mid V_s C V_t R_mid = weighted W_r, + +where all three non-permutation middle factors are lower triangular. Reduce +modulo q. In NE_r(V_s C V_t), the first s rows have rank at most s. Each +remaining top-half row comes from a top-half row of the lower-triangular C; +after V_t its right-half support lies within the t columns moved from the +first t positions. These rows have rank at most t. The target has rank r +across that cut, so s+t>=r. Consequently + + a+b >= 2N+r =121f. (4) + +With positive integer recursive ranks and proper widths k_i<=63, this gives +k_1+k_2>=121; the boundary pairs are58+63,59+62,60+61 and reversals. These are +necessary candidates, not asserted constructions. Without the proper-child +restriction a full-width child changes the admissibility question. +A separate F2 example with n=3,r=2,N=1 and two width2 children attains2N+r=4; +it prevents extrapolating the bound into a claim that all proper pairs fail. +The independently authored checker retains the literal factors. + +An all-class implementation with a fixed pair of child widths must handle this +class. An adaptive implementation may choose a different pair for this class; +we have not established its density among actual GL64 classes or lifts. The +result neither excludes three or more children nor masked multi-role synthesis. + +## Favorable complete-profile gate before construction + +The retained current pooled profile from PR4010 is +{1:380160,2:400877,3:22176,4:26592,5:29376,6:17375,7:26496,14:1,42:403}. +It has W=28416, rank mass1808352, deficit64W-mass=10272, and2592 COPY calls. +The earlier unpooled OQ4 profile has the same mass; profiles are kept distinct. + +Replacing the incumbent single rank-seven COPY by any fixed serial affine +pair satisfying (4) adds at least114 ranks per COPY. Even optimistically charging +one rank58 and one rank63 and assigning ZERO cost to all other new work gives + + M_min(c) = (sum_r n_r(r/64)^(1-c) + +2592[(58/64)^(1-c)+(63/64)^(1-c)-(7/64)^(1-c)])/28416. + +For c>=0 and child widths<64, every rank term of the replacement profile is +at least its c=0 value. Thus M_min(c)>=M_min(0)>1. For the intended0<=c<=1 regime, concavity and monotonicity of x^(1-c) +make58+63 the favorable proper integer pair among those satisfying(4). +The verifier computes the +exact value21915/18944 from the retained profile; rank mass becomes2103840, +exceeding64W by285216. A width>=64 cannot be a proper +smaller recursive child and cannot rescue this gate. Larger proper children +only increase the c=0 mass; for c>1 the simple profile monotonicity still gives +its own c=0 lower bound, so no optimizing-width claim is needed there. + +If only a fraction theta of COPY calls incurs this minimum replacement and all +others optimistically retain rank7, a necessary zero-exponent condition is + theta <10272/(2592*114)=107/3078. At positive c, writing + Delta(c)=(58/64)^(1-c)+(63/64)^(1-c)-(7/64)^(1-c), the necessary condition is + theta < [1-M_old(c)] / [(2592/28416)Delta(c)] when Delta(c)>0. +This is a **hypothetical fixed58+63 invoice**, not a proved achievable algorithm +or a frequency estimate; actual larger child choices require their own Delta. + +Every real bill also includes affine/header preparation, admitted source +production, coefficient evaluation, clone/mask/ADD scans, source preservation, +child CALL/RETURN, output transfer, all dirty readers, reset, erasure and head +return. Whole-run visited backing counts output, helper, child, coefficient and +parking inventories; erasure does not refund visited cells. These nonnegative +terms and supplier stock/precision bounds are unresolved. Since even the zero +version fails for the fixed schedule, no physical implementation is warranted. + +## A constructive masked translation escape, with its actual count + +There is no affine impossibility claim for general circuits. For any linear T +on a finite address group, let D=im(T-I). The exact identity + + F(Tx) = XOR_{d in D} [ (T-I)x=d ] AND F(x+d) (4) + +holds for every Boolean F: exactly one mask is active. Thus translations plus +address masks implement the target with zero children. For the weighted split +swap above, T-I has free image rank7f: each swapped pair contributes one free +coordinate even with arbitrary unit weights. Therefore |D|=q^(7fw). +For translation-only branches with fixed translations, this count is minimal: +each branch can supply F(Tx) only where its translation equals (T-I)x, and every +displacement in D occurs. Arbitrary source delta functions rule out borrowing +one displacement's bit for another. This branch-count lower bound does not +apply to affine lower-triangular branch maps, which have different linear parts. + +A direct realization uses one zeroed output and one translated temporary: +produce F(x+d), scan and mask-XOR into output, erase temporary, repeat. The +source is borrowed unchanged; arbitrary dirty helpers can remain untouched; +the output is then shared with the incumbent readers. For V physical bits this +literal full-scan realization performs |D| full mask-XOR scans, processes +|D|V mask/source positions and erases |D|V temporary bits, in addition to the +|D| translation-production invoices and final head/owner return. Source, +output and reusable temporary occupy3V payload cells excluding metadata, +translation scratch, child inventories and numerical/parking storage. It is +not an O(Vn) realization: the branch count is exponential in fw for fixed q. +No unproved physical tariff for a translation is supplied. Sparse or fused +routing could evade the full-scan accounting but must specify and price its +new mechanism. This exact positive control explains the serial scope boundary. + +## Evidence and stopping decision + +The checker enumerates complete small lower-unitriangular middle factors and +uses north-east rank tables, not just the proof's zero predicate, to exclude +membership in the target lower-triangular double coset. Additional randomized +unit-diagonal local-ring cases check the explicit unit minors and block lemma. +An exhaustive affine translation/mask replay checks (4), arbitrary source and +unchanged dirty helpers; missing masks, missing unit weights and a corrupted profile receipt are failure controls. An +independent bit-packed enumeration checks all64^3 F2 three-factor words, finds +16960 distinct outputs and excludes the middle swap. A literal two-full-width +child identity is a positive scope escape. F2 is an algebra control outside +odd-prime supplier admission; the written theorem covers the admitted rings. + +Stop the fixed serial affine two-child route, including its7+1 candidate. +Retain masked circuits, three-child words and proven adaptive density as open +changed hypotheses. No improved kappa, encoded supplier, full physical caller, +formal-kernel proof or selected-frontier change is asserted. diff --git a/research/r437-affine-two-child-bound/README.md b/research/r437-affine-two-child-bound/README.md new file mode 100644 index 0000000000..e365956b67 --- /dev/null +++ b/research/r437-affine-two-child-bound/README.md @@ -0,0 +1,110 @@ +# R437: two serial affine COPY children need at least121 ranks + +**Two proper reversed children, separated by arbitrary forward affine address +maps, cannot implement the all-class rank-seven COPY contract with a cheap +mixed-width pair. Their total width must be at least121f.** A fixed all-COPY +replacement therefore fails the favorable paid moment: even the hypothetical +58+63 pair gives **21915/18944 >1 at exponent zero**, before routing, +preparation, restoration or storage charges. No improvement of kappa is claimed. + +The exact domain is a **single serial source pullback**, with linear part +`L W_a M W_b R`, where L,M,R are invertible lower triangular and arbitrary +affine translations are allowed. Ancestor weights are arbitrary diagonal units. +Combining differently routed copies through address-dependent Boolean masks is +outside this domain. This package gives an exact zero-child masked translation +construction using q^(7fw) branches. Its literal full-scan realization has +exponential scan count, providing a scope escape without a physical tariff. + +The proof pairs local-ring coordinate flags with reversible address information +flow. The valid all-class projector on the last seven head axes fixes57f +coordinates at each end. Preserved north-east zero blocks exclude two widths +both<=57f. A unit-minor argument forces both widths>=57f. The middle14f quotient +then requires the excess widths to sum to at least7f, hence total121f. +The written proof covers every admitted local ring and every f. + +## Measurable result and full-cost boundary + +The PR4010 pooled profile has903456 replica-indexed requests,2592 COPY calls, +rank mass1808352 and deficit10272. A fixed serial affine replacement needs at +least114 extra ranks per COPY, adding295488 and bringing mass to2103840, +which exceeds64W by285216. For an adaptive mechanism, a necessary zero-exponent +condition under the hypothetical replacement invoice is `theta <107/3078` +(about3.48%). No class-frequency bound or attaining construction is established. +The positive-exponent formula and additional costs are in [PROOF.md](PROOF.md). + +This resolves the serial affine part of PR4014's mixed-width/translation handoff. +It does **not** extend PR4014's one-child theorem to all dirty masked two-child +circuits. That result covers more payload-role logic but excludes translations; +this result permits translations and two children but requires a serial pullback. +Neither theorem closes the full arbitrary-stream caller. + +## Evidence and reproduction + +```sh +python3 -I -B research/r437-affine-two-child-bound/verify.py +python3 -I -O -B research/r437-affine-two-child-bound/verify.py +python3 -I -B research/r437-affine-two-child-bound/test_package.py +python3 -I -O -B research/r437-affine-two-child-bound/independent_f2.py +python3 -B scripts/research_package.py --package research/r437-affine-two-child-bound +``` + +The checker authenticates retained bytes and original Git blob IDs. It checks729 +F3 and32768 F2 complete middle factors, all applicable width pairs,9120 local-ring +words (6720 unit minors and2400 restoration cases), the actual128/256-coordinate +target cut profiles, and complete81/6561-address masked translation examples +with arbitrary source deltas and untouched dirty helpers. F2 examples are +algebra controls outside odd-prime supplier admission. + +A separately authored bit-packed checker enumerates all64^3 F2 triple products, +obtains16960 distinct two-width1 outputs and excludes the middle swap. It also +retains a two-full-width escape and a proper-child toy attaining the quotient +bound. These controls prevent stronger unsupported conclusions. The Git-free +read-only export uses actual optimized subprocesses, checks unchanged bytes, +and rejects altered, missing or linked sources and a corrupted width receipt. +All checks remain active with Python assertions disabled. + +The rank-seven split-projector/all-GL64 premise and compiler census remain +inherited from pinned predecessors. Nine ranks checked modulo101 are a finite +integrity check, not large-q admission. No full compiler replay, physical +supplier admission, formal-kernel proof or independent human acceptance is claimed. + +## Provenance, overlap and credit + +Base: canonical main20ecf2891d80b5acf18d980b2164fb44ea7faa90, priority revision6. +The explicit donor assignment changes the `independent-moment` card; +[TASK.json](TASK.json) preserves it. Parent coordination checked current R437 PRs +and a733-body open-PR cache; bounded searches found no newer affine/mixed-width +result beyond4014. The local overlap helper had no usable remote snapshot. +This coverage is not a novelty certificate. + +[PR4014](https://github.com/CrocSwap/integer-mult-bounds/pull/4014), head +99a6320aa2299433f2fa3731de624ecbe1debe46, supplies the original linear-address +one-child obstruction, source conjugacy premise and explicit affine/mixed-width +handoff. [PR3982](https://github.com/CrocSwap/integer-mult-bounds/pull/3982) +supplies the rank-seven parabolic construction and196-interchange obligation. +[PR4010](https://github.com/CrocSwap/integer-mult-bounds/pull/4010), head +92daee4bf12255efe4ae0102eeb5f72794bf9c57, supplies the current pooled profile. +The older OQ4 profile is retained separately, without relabelling. Exact source +paths and heads are in [SOURCES.json](SOURCES.json). + +Credit ai-nanachi's R437/#3647; Ali Romman/#1043 and Sagar Thakrar/#3700/OQ4; +eumemic, DreamingOfClouds, Crow, DaysSky and chafreaky's retained lineage; +zxv/#3690, David Arias, Jose Manuel/jmbarrancoml and the physical caller lineage; +Rohan Arun/#3959 and #3995 pooled IR; and the donor's #3936/#3950/#3967/#3982/ +#4010/#4014 work. Original license and notice are retained byte-for-byte. +New proof and replay by Chris R / Clear1nsight with substantial OpenAI Codex +assistance. A separate same-session Codex reviewer supplied the stronger115/121 +rank deductions and independent finite controls; the author checked and retained +them. Apache-2.0. No selected-frontier change. + +## Open next questions + +1. Can address-masked multi-role synthesis avoid q^(7fw) full-scan branches? +Start with a full-cube identity and source/dirty-helper restoration, then price +all masks, routes and temporaries. The serial obstruction does not decide it. +2. Can an adaptive producer prove a sufficiently small bad-class frequency and +pay detection? Start with the actual GL64 measure and positive-exponent moment. +A single worst class supplies no density estimate. +3. Can three or more narrow children beat the serial two-child barrier? First +check an exact word and whole-profile invoice. No general many-child lower bound +or favorable many-child construction is supplied here. diff --git a/research/r437-affine-two-child-bound/RESULT.json b/research/r437-affine-two-child-bound/RESULT.json new file mode 100644 index 0000000000..f336f695d5 --- /dev/null +++ b/research/r437-affine-two-child-bound/RESULT.json @@ -0,0 +1,153 @@ +{ + "source": { + "captures": [ + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478 + ], + "ranks_mod_101": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "all_class_split_premise": "inherited PR4014, not inferred from finite ranks" + }, + "exhaustive": [ + { + "d": 4, + "modulus": 3, + "all_middle_factors": 729, + "width_pairs": 1, + "outer_zero_candidates": { + "1+1": 3 + }, + "target_rank_table_matches": 0, + "scope": "finite field control" + }, + { + "d": 6, + "modulus": 2, + "all_middle_factors": 32768, + "width_pairs": 4, + "outer_zero_candidates": { + "1+1": 64, + "1+2": 0, + "2+1": 0, + "2+2": 8 + }, + "target_rank_table_matches": 0, + "scope": "q=2 is algebra control outside odd-prime supplier admission" + } + ], + "local_rings": { + "word_cases": 9120, + "unit_minors": 6720, + "equal_width_restoration_cases": 2400, + "moduli": [ + 9, + 25, + 27 + ] + }, + "target_rank_cuts": [ + { + "n": 4, + "r": 2, + "modulus": 3, + "outer_cut_minimum": 5, + "quotient_minimum": 6, + "necessary_pairs": 1, + "realizability": false + }, + { + "n": 8, + "r": 3, + "modulus": 5, + "outer_cut_minimum": 11, + "quotient_minimum": 13, + "necessary_pairs": 3, + "realizability": false + }, + { + "n": 64, + "r": 7, + "modulus": 3, + "outer_cut_minimum": 115, + "quotient_minimum": 121, + "necessary_pairs": 21, + "realizability": false + }, + { + "n": 128, + "r": 14, + "modulus": 3, + "outer_cut_minimum": 229, + "quotient_minimum": 242, + "necessary_pairs": 91, + "realizability": false + } + ], + "translation_escape": [ + { + "modulus": 3, + "addresses": 81, + "branches": 3, + "mask_source_positions": 243, + "temporary_erases": 243, + "payload_inventory_cells": 243, + "head_and_metadata_cost": "additional unresolved", + "every_delta_source_checked": true + }, + { + "modulus": 9, + "addresses": 6561, + "branches": 9, + "mask_source_positions": 59049, + "temporary_erases": 59049, + "payload_inventory_cells": 19683, + "head_and_metadata_cost": "additional unresolved", + "every_delta_source_checked": true + } + ], + "budget": { + "pooled_profile": { + "1": 380160, + "2": 400877, + "3": 22176, + "4": 26592, + "5": 29376, + "6": 17375, + "7": 26496, + "14": 1, + "42": 403 + }, + "W": 28416, + "COPY_calls": 2592, + "old_mass": 1808352, + "minimum_integer_rank_pair": [ + 58, + 63 + ], + "minimum_replacement_mass": 2103840, + "extra_mass": 295488, + "deficit": 10272, + "excess": 285216, + "moment_zero": "21915/18944", + "adaptive_fraction_zero_necessary": "107/3078", + "realizability": false, + "physical_costs": "additional nonnegative and unresolved" + }, + "new_kappa": false +} diff --git a/research/r437-affine-two-child-bound/SOURCES.json b/research/r437-affine-two-child-bound/SOURCES.json new file mode 100644 index 0000000000..dd00007c7e --- /dev/null +++ b/research/r437-affine-two-child-bound/SOURCES.json @@ -0,0 +1,69 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "67f085acd86acd7d4e03922d9cf4b26bca66fed5", + "sha256": "47b42433f5a85809a3aadd29c2c339da2c6ed728e4f7762df6b88bccb7874cf0" + } + ], + "retained": [ + { + "path": "inputs/r437-word.json.gz", + "sha256": "e432182d5b62c8bbefeb871fce30317234d707e5e18d4295e65ac21f7fd8365e", + "git_blob": "c558a221dd44cbdaa732a401f9876de4c096d4a7", + "origin_commit": "364701494bc3d726806a15d4d1d4b547c1e0f9d5", + "origin_path": "research/r437-uniform-copy-reduction/inputs/r437-word.json.gz" + }, + { + "path": "inputs/R437-LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "origin_commit": "364701494bc3d726806a15d4d1d4b547c1e0f9d5", + "origin_path": "research/r437-uniform-copy-reduction/R437-LICENSE" + }, + { + "path": "inputs/R437-UPSTREAM-NOTICE.md", + "sha256": "8ed83f2f0bde43a41e44279f44d29efaeae3df44850b86f0e3578edf3ee104e4", + "git_blob": "9b519b904d456b0b5861f7469a66c365e77799a6", + "origin_commit": "364701494bc3d726806a15d4d1d4b547c1e0f9d5", + "origin_path": "research/r437-uniform-copy-reduction/R437-UPSTREAM-NOTICE.md" + }, + { + "path": "inputs/r437-EXPECTED.json", + "sha256": "67d06bcb90d2307a11975d6b25107a695be477f168f2dc289b8484ba0b7e2de0", + "git_blob": "bc2585e1404402395a7c59ba6f6dde58b04e65a2", + "origin_commit": "a24f9ff95c12fd0b6792e3f710569237efd72db2", + "origin_path": "research/bit-p111-r437-gl464-470-20261018/EXPECTED.json" + }, + { + "path": "inputs/pr3967-CATALOGUE.json", + "sha256": "fbd6b56ea4c488ea606668de84f45541ff941c44b5bfcd7314ba7b89cc845207", + "git_blob": "ec1daa219342c157deb61fdc6cf18e0faa1cc84a", + "origin_commit": "32af060614fefa9729c86370524c2e72265acd76", + "origin_path": "research/r437-oq4-caller-binding/CATALOGUE.json" + }, + { + "path": "inputs/pr4014-PROOF.md", + "sha256": "31b54cb4ea6b43670d97ab36e378c22a7a6e767692dceb92b4febdeda9929302", + "git_blob": "e58dc87be2e83301911a4a378e8f1d58cb8bc46b", + "origin_commit": "99a6320aa2299433f2fa3731de624ecbe1debe46", + "origin_path": "research/r437-copy-echo-budget/PROOF.md" + }, + { + "path": "inputs/pr4010-RESULT.json", + "sha256": "27a20d575cb90c16a186a621d553e167f2bb6fd4e19541fe8d8dfc0208451658", + "git_blob": "4a03e803bfb3fe7af6808f655b9b6e828574d212", + "origin_commit": "92daee4bf12255efe4ae0102eeb5f72794bf9c57", + "origin_path": "research/r437-pooled-native-interface/RESULT.json" + } + ] +} diff --git a/research/r437-affine-two-child-bound/TASK.json b/research/r437-affine-two-child-bound/TASK.json new file mode 100644 index 0000000000..8de2cbca17 --- /dev/null +++ b/research/r437-affine-two-child-bound/TASK.json @@ -0,0 +1,75 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 6, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "original_card": { + "id": "independent-moment", + "question": "Does one changed supplier or assembly claim lack a source-bound independent check of a specific new implication?", + "starting_points": [ + "certificates/selected-result.json", + "research/rank7-joint-endframes/README.md", + "docs/research/research-family-status.md" + ], + "methods": [ + "Independently reconstruct a coordinated frame/circuit change and its single-change control, then derive the complete rank and physical ledger.", + "Implement certified moment inequalities through a different exact enclosure method." + ], + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2979 joint rank-7 end-frame proposal and the revision-6 evidence status. Its claimed kappa is not selected. Compare coordinated changes with the losing single-change controls and locate the complete physical ledger; an aggregate moment alone does not validate the mechanism.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Prioritize a bounded independent audit of #2979: reconstruct one joint group and its single-lowering control, check the declared frames/chronology, then trace changed children, idle widths and cleanup buffers into the complete invoice and both supplier caps. Choose one still-missing implication after checking existing audits. Stop with exact unresolved dependencies if full admission exceeds the session; do not launch a new lowering census on an unvalidated premise or substitute extra root digits for mechanism checking.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification.", + "Promoting #2979 from merged source archive to validated supplier solely from author PASS receipts or aggregate pricing." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure", + "2979", + "rank7 joint endframes", + "paired extraction", + "joint lowering" + ] + }, + "scope_status": "changed", + "actual_scope": "Two-child serial affine COPY obstruction by preserved coordinate flags, translation-only masked escape and source-bound optimistic rank invoice.", + "scope_change_reason": "Explicit next-round assignment investigates affine translations and unequal child widths deliberately excluded by PR4014.", + "bottleneck_link": "Decide whether the196 ordinary upper-tariff term can disappear without repaying the saving through extra recursive children.", + "budget_minutes": 60, + "stop_rule": "Stop serial affine two-child replacement if a forced large child fails the favorable profile. Preserve masked multi-role and adaptive escapes.", + "outcome": "negative-result", + "evidence": "PROOF.md, verify.py, RESULT.json", + "author": "Chris R / Clear1nsight with OpenAI Codex assistance", + "ai_assistance": "OpenAI Codex authored proof and replay; separate same-session Codex adversary independently derived stronger flag/quotient bounds and exhaustive F2 controls.", + "open_questions": [ + { + "question": "Can a multi-role masked circuit use two narrow children below the full profile budget?", + "why_it_matters": "Serial affine composition is a strict subclass and the translation construction shows why masks matter.", + "first_step": "Specify complete source-to-output dependencies, masks and restoration, then price all full scans and child widths.", + "blocked_by": "No polynomial-scan full-cube construction or adaptive frequency bound." + } + ], + "claim_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/3967", + "checkpoints": [ + { + "utc": "2026-10-19T10:46:00Z", + "canonical_main": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "priority_revision": 6, + "status": "parent GitHub API checkpoint; CLI DNS fetch failed; canonical unchanged" + } + ] +} diff --git a/research/r437-affine-two-child-bound/VALIDATION.md b/research/r437-affine-two-child-bound/VALIDATION.md new file mode 100644 index 0000000000..f22126a715 --- /dev/null +++ b/research/r437-affine-two-child-bound/VALIDATION.md @@ -0,0 +1,36 @@ +# Validation and exact scope + +2026-10-19, canonical base20ecf2891d80b5acf18d980b2164fb44ea7faa90. + +The owner ran the normal replay, package metadata/pin check, the independent +optimized F2 control and the Git-free failure controls successfully. A separate +same-session Codex adversary challenged the algebra before replaying all four +registered commands against frozen scientific files: + +| Command | Result | Elapsed | +|---|---|---:| +| verify.py normal isolated | PASS, digest a65726b130461a663ff79772c4d4b35837aa7adb07676ca58daeda3d2632c16a |1.802s| +| verify.py optimized isolated | Same PASS/digest |1.676s| +| test_package.py | Read-only Git-free export and four rejection controls PASS |6.788s| +| independent_f2.py optimized isolated |16960 products; exclusion, full-width escape and quotient equality toy PASS |1.313s| + +The reviewer compared before/after SHA256 of PROOF.md, verify.py, RESULT.json, +independent_f2.py and test_package.py: all unchanged. +Reviewed PROOF.md SHA256: +`11efd1acd5c0d0638f26ab8922cf8a7d6eecf5585d87e68b6b9566ecf5e2110d`. +RESULT.json SHA256: +`22a53a2ef7f77500b7fbd7d68643c268899735a530f27964f57f064f21cc5a5d`. + +The reviewer found no remaining substantive issue in the serial affine domain. +During development the review corrected an overstrong exact-rank phrase to an +invertible-minor lower bound, made diagonal ancestor weights explicit, and +strengthened the necessary total width from59 to115 and finally121. The package +contains only the final proof and final121-rank receipt. The independent checker +uses explicit exceptions so optimized Python cannot disable the checks. + +This is independent same-session AI review, not human or formal-kernel approval. +The all-GL64/split-projector production premise and compiler census are inherited +at pinned heads. No full physical source/producer/CALL/RETURN/stock/precision +replay, selected cold replay or improved kappa is asserted. Parent publication +will separately authenticate exact Git objects, export and hosted CI; those +results are not retrospectively claimed in this local receipt. diff --git a/research/r437-affine-two-child-bound/VERIFY.json b/research/r437-affine-two-child-bound/VERIFY.json new file mode 100644 index 0000000000..c527632d25 --- /dev/null +++ b/research/r437-affine-two-child-bound/VERIFY.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "Source-bound flags, exhaustive finite rings, exact masked translation escape and whole-profile budget." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "All checks remain active with assertions disabled." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/test_package.py" + ], + "timeout_seconds": 180, + "checks": "Git-free read-only replay and source, receipt and theorem-premise controls." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/independent_f2.py" + ], + "timeout_seconds": 60, + "checks": "Independent bit-packed 64^3 F2 word enumeration, full-width escape and proper-child quotient equality toy; all checks active under -O." + } + ] +} diff --git a/research/r437-affine-two-child-bound/independent_f2.py b/research/r437-affine-two-child-bound/independent_f2.py new file mode 100644 index 0000000000..7594c49bb2 --- /dev/null +++ b/research/r437-affine-two-child-bound/independent_f2.py @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: Apache-2.0 +# Independent same-session OpenAI Codex adversarial agent, Chris R / Clear1nsight. +"""Independent finite adversarial check; not a proof of the general lemma.""" +from functools import reduce + +def need(ok): + if not ok: raise ValueError("independent F2 product control failed") + +def mm(A, B): + return tuple(reduce(int.__xor__, (B[k] for k in range(len(A)) if (row >> k) & 1), 0) for row in A) + +def lower(d): + for bits in range(1 << (d * (d - 1) // 2)): + rows, pos = [], 0 + for i in range(d): + rows.append((1 << i) | ((bits >> pos) & ((1 << i) - 1))) + pos += i + yield tuple(rows) + +def w(d, t): + p = list(range(d)) + for i in range(t): + p[i], p[d - 1 - i] = p[d - 1 - i], p[i] + return tuple(1 << x for x in p) + +G = list(lower(4)) +W = w(4, 1) +target = (1, 4, 2, 8) +products = {mm(mm(L, W), M) for L in G for M in G} +full = {mm(mm(A, W), R) for A in products for R in G} +need(len(G) == 64 and len(full) == 16960 and target not in full) +W2 = w(4, 2) +lo = (1, 2, 6, 8) +need(mm(mm(lo, mm(mm(W2, lo), W2)), lo) == target) +M = (1, 2, 4, 10) +need(mm(mm(W, M), W)[0] & 14) +print({'field': 2, 'dimension': 4, 'lower_group_size': len(G), 'two_width1_product_count': len(full), 'middle_swap_present': target in full, 'two_width2_escape': True, 'equal_width_NE_can_be_nonzero': True}) + +# Independently found quotient bound equality, then embed it between fixed ends. +L=(1,3,7,13); M=(1,3,4,13); R=(1,3,6,15) +need(mm(mm(mm(mm(L,W),M),W),R)==W2) +def embed(A):return (1,)+tuple(row<<1 for row in A)+(32,) +large=mm(mm(mm(mm(embed(L),w(6,2)),embed(M)),w(6,2)),embed(R)) +need(large==(1,16,8,4,2,32)) +print({'quotient_tightness_control':True,'n':3,'r':2,'N':1,'widths':[2,2],'sum':4,'R437_attainment_claim':False}) diff --git a/research/r437-affine-two-child-bound/inputs/R437-LICENSE b/research/r437-affine-two-child-bound/inputs/R437-LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/R437-LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/r437-affine-two-child-bound/inputs/R437-UPSTREAM-NOTICE.md b/research/r437-affine-two-child-bound/inputs/R437-UPSTREAM-NOTICE.md new file mode 100644 index 0000000000..9b519b904d --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/R437-UPSTREAM-NOTICE.md @@ -0,0 +1,71 @@ +# Notice + +Apache-2.0 (`LICENSE`, copied from #493's package). Prepared by eumemic with substantial Anthropic Claude +assistance. + +## New in this package + +- `code/gen_p3.py` (the generator of the punctured word: the L3 skeleton of #543 restricted to the live lines, the + pseudo-target totals, the phase-A mini-nodes and extra carriers), `code/pwordl.py` (word builder for a live subset + of the 120 lines; output in the bitE8/1 layout with the `ports_geom` and `punctured` fields introduced by #545), + `data/bitE8mut-p111.json.gz` (the word), `data/punct.json` (its frozen parameters), `discovery/choose.py` and + `discovery/search.py` (the nomination of P and of the parameters; not run by `verify.sh`). +- `code/gen_p3.py` carries `derive`, `ex_part` and `plan_thirds` from #543's `code/gen_l3.py` (eumemic), and + `data/plan-l3.json` is #543's CP-SAT plan, unchanged. `code/nodeopt.py`, `code/planio.py`, `code/mutants.py`, + `code/mutrec_b.py` and `code/provenance.py` are #543's files, unchanged. +- `code/xcheck_p.py`: #543's independent checker `code/xcheck.py` with nine listed edits for v <= 120 live labels + (root-line enumeration of the lattice, frame closure and target frames over the live labels) and a new part T (the + frame and COPY rank of every retained total at the scatter, and whether it is the hyperplane of a punctured line). +- `code/mutants_p.py` (punctured-design controls), `code/adapt9p.py` (#510's nine-stage files parameterised for + v <= 120 and any copy ranks, the way #545's `adapt.py` parameterises #493's eleven-stage files), `code/cited.py`, + `code/receipt_kappa.py`, `code/summary.py`, `verify.sh`, `EXPECTED.json`, `DEPENDS.json`, `requirements.txt`, + `data/complex-b.json`, `data/selection9-p111.json` and `data/hosting11-p111.json` (frozen nominations of #442's + hosting programme, rediscovered by `verify.sh`), `.github/workflows/e8-bit-p111.yml`. + +## Vendored, byte-identical (git blob ids in `SOURCE-pr*.json`, checked by `code/provenance.py`) + +- **PR #510 (DreamingOfClouds, with Claude Opus 5.5 via Claude Code), commit 64edee1** (`vendor/pr510/`): the same 19 + files as #543's package (#510's nine-stage chain with the files it vendors from #463, #443, #442 and #315, and #503's + R480 word). Their notices are listed in #543's NOTICE and in the files. +- **PR #545 (DreamingOfClouds, with Claude Opus 5.5 via Claude Code; draft), commit 376426f** (`vendor/pr545/`): + `code/adapt.py` and `code/punct_cfg.py`, run unchanged on this package's word; `data/bitE8mut-v111-r489.json.gz`, + `data/hosting-v111-r489.json` and `EXPECTED.json` (a control). +- **PR #548 (Dugongue), commit 66dbc2b** (`data/complex/pr548/`): `EXPECTED.json` and `evidence/EXACT-ASSEMBLY.json`. +- **PR #544 (chafreaky, with OpenAI Codex assistance), commit 4858bb3** (`data/complex/pr544/`): `EXPECTED.json` and + the Linux exact-assembly receipt. +- **PR #535 (icekylinx, with GPT-6 Astra assistance), commit 8b758a1** (`data/complex/pr535/`): `EXPECTED.json` and + `evidence/audit/EXACT-ASSEMBLY-PR493.json`. + +## Used from main, unchanged (pinned in `DEPENDS.json`) + +- `research/e8-bit-carrier-skeleton` (PR #493, eumemic): the skeleton modules and D4 partition the generator imports, + #370's checker (run here in #545's v <= 120 form), the official cohort checkers, `gram_frames.py`, the record + exporter, the geometries and the eleven-stage chain that #545's `adapt.py` parameterises, #442's hosting programme, + the R489 word, the control receipts and #315's engines. +- `research/direct-delivery504-global/EXPECTED.json` (PR #531, icekylinx): its complex b and kappa. + +## Cited, not rebuilt + +Complex coarse savings in `data/complex-b.json`, each bound to its PR's receipt by `code/cited.py`: PR #548 (primary; +open), PR #544 and PR #535 (open), PR #531 (merged), and PR #484, #471 and #458 (controls). + +## Ideas used + +- PR #545 (DreamingOfClouds): the punctured-star unit. Nine lines are neither sources nor targets; each retained total + is a pseudo-target that reads what the removed target would read, at frame rank 7, so the decoder constant is 63; + the rank-mass identity with v and the decoder constant as parameters; the parameterisation of the hub chain. +- PR #543 (eumemic): the R420 L3 skeleton with keepers read by targets and rewritten in phase B. +- PR #493 (eumemic), PR #503 and #510 (DreamingOfClouds), PR #425 (Zhihao Chen / jacklightChen), PR #370 (Dylan Crow), + PR #472, #445, #443 (chafreaky), PR #442 (DaysSky), PR #463 and #315 (DreamingOfClouds), PR #386 (Zhihao Chen): the + skeleton, the scalar-interface lemma, the format, and the pricing pipelines. +- PR #523 (icekylinx): the puncture pattern on the complex side, cited by #545. +- Jacob Sussman introduced the E8 unit. + +R437 composition: Ali Romman (@aliromman), with substantial OpenAI Codex assistance, authored the public1043 helper470 source-boundary deletion. Its exact canonical-main package and NOTICE are retained in public1043/. The new contribution here composes that credited deletion with the independently validated helper464 GL, then reconstructs actual owners, full invoice, independent checks and portable replay. + +Sagar Thakrar (thakrarsagar), PR3700 Open question4, proposed the exact +window6 two-leftover coalescing used by this follow-up. No code from that +PR is imported by the author pipeline; root independently replayed its +hosting and price engines. Full owner/template/invoice regeneration and +packaging used substantial OpenAI Codex assistance. All prior credits and +Apache-2.0 notices remain in place. diff --git a/research/r437-affine-two-child-bound/inputs/pr3967-CATALOGUE.json b/research/r437-affine-two-child-bound/inputs/pr3967-CATALOGUE.json new file mode 100644 index 0000000000..ec1daa2193 --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/pr3967-CATALOGUE.json @@ -0,0 +1,447 @@ +{ + "changed_request_count": 7, + "changed_requests": [ + { + "current": [ + "MOVE", + 6, + 19241, + 644, + 209, + 0, + 251, + "5f584c3ca2a31e3c54aac81967f19d8b36d3b8074c262261e71fc98c23bb0908", + 2, + [ + "host", + -1, + -1, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "owner", + null + ], + "identifier": 18189, + "old": [ + "MOVE", + 6, + 19241, + 644, + 210, + 0, + 251, + "5f584c3ca2a31e3c54aac81967f19d8b36d3b8074c262261e71fc98c23bb0908", + 2, + [ + "host", + -1, + -1, + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "owner", + null + ] + }, + { + "current": [ + "MOVE", + 6, + 20333, + 644, + 209, + 251, + 304, + "827bb4af0023fba3ab910662485f10f4ce7f03766cf098c605fe5a6ca2a88767", + 2, + [ + "host", + -1, + -1, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "owner", + null + ], + "identifier": 18464, + "old": [ + "MOVE", + 6, + 20333, + 644, + 210, + 251, + 304, + "827bb4af0023fba3ab910662485f10f4ce7f03766cf098c605fe5a6ca2a88767", + 2, + [ + "host", + -1, + -1, + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "owner", + null + ] + }, + { + "current": [ + "MOVE", + 6, + 21380, + 644, + 209, + 304, + 490, + "66c3f20f6dd032fea48d25c9e14cb6f514d33720772ff3738910ce4978bf4e69", + 2, + [ + "host", + -1, + -1, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "owner", + null + ], + "identifier": 18920, + "old": [ + "MOVE", + 6, + 21380, + 644, + 210, + 304, + 490, + "66c3f20f6dd032fea48d25c9e14cb6f514d33720772ff3738910ce4978bf4e69", + 2, + [ + "host", + -1, + -1, + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "owner", + null + ] + }, + { + "current": [ + "MOVE", + 6, + 23946, + 644, + 209, + 490, + 635, + "5a04a4c748ea57056e0f1b2130215e03dd892ced3ea2ce33891996d4b0f33435", + 1, + [ + "host", + -1, + -1, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "owner", + null + ], + "identifier": 19854, + "old": [ + "MOVE", + 6, + 23946, + 644, + 210, + 490, + 635, + "5a04a4c748ea57056e0f1b2130215e03dd892ced3ea2ce33891996d4b0f33435", + 1, + [ + "host", + -1, + -1, + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "owner", + null + ] + }, + { + "current": [ + "MOVE", + 6, + 24888, + 644, + 209, + 635, + 1, + "13c3d4f57cea761c1d7b88abb26da0ca4001059c0f047f09bf2c16e60ecef521", + 1, + [ + "host", + -1, + -1, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "owner", + null + ], + "identifier": 20212, + "old": [ + "MOVE", + 6, + 24888, + 644, + 210, + 635, + 1, + "13c3d4f57cea761c1d7b88abb26da0ca4001059c0f047f09bf2c16e60ecef521", + 1, + [ + "host", + -1, + -1, + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "owner", + null + ] + }, + { + "current": [ + "IDLE", + 6, + 6, + 209, + 209, + 2, + 8, + "6c38408d019ad769697cc6a8a70093cc45251d8fc1244e8c303ef4e0becdbab2", + 26, + [ + "family", + 98, + -1, + [] + ], + "owner", + null + ], + "identifier": 27776, + "old": [ + "IDLE", + 6, + 6, + 209, + 209, + 2, + 8, + "9710b96b4d5c382dbdb44bda4ccdb9e2f33217f4065ae9056958de95a9953db5", + 34, + [ + "family", + 98, + -1, + [] + ], + "owner", + null + ] + }, + { + "current": [ + "IDLE", + 6, + 6, + 210, + 210, + 2, + 8, + "3aeb89340b4aabdf7cdcbee3271e2bc7650188d764ee08ebbcef3be8bc3b6661", + 42, + [ + "family", + 99, + -1, + [] + ], + "owner", + null + ], + "identifier": 27777, + "old": [ + "IDLE", + 6, + 6, + 210, + 210, + 2, + 8, + "9710b96b4d5c382dbdb44bda4ccdb9e2f33217f4065ae9056958de95a9953db5", + 34, + [ + "family", + 99, + -1, + [] + ], + "owner", + null + ] + } + ], + "current": { + "base_labels": 540, + "binding_sha256": "cbfea55f5cd0b74a2a0d4292ad0139d2b5bb73127951127698030bc90c73c532", + "canonical_ERASE_guards": 81, + "canonical_requests": 28233, + "chart_labels": 1235, + "full_paid_requests": 903456, + "rank_histogram": { + "1": 380160, + "2": 400864, + "26": 32, + "3": 22176, + "4": 26592, + "42": 384, + "5": 29376, + "6": 17376, + "7": 26496 + }, + "replicas": 32, + "request_kinds": { + "COPY": 81, + "IDLE": 1998, + "MOVE": 26154 + } + }, + "full_GL64_low_classes_executed": false, + "literal_opcode_counts": { + "0": 836928, + "1": 6971904, + "2": 2592, + "3": 2592 + }, + "old": { + "base_labels": 540, + "binding_sha256": "0fb70d6838583f2f439a8704eb5dba84ce9dbd231d91f140da13440b680d73aa", + "canonical_ERASE_guards": 81, + "canonical_requests": 28233, + "chart_labels": 1235, + "full_paid_requests": 903456, + "rank_histogram": { + "1": 380160, + "2": 400864, + "3": 22176, + "34": 64, + "4": 26592, + "42": 352, + "5": 29376, + "6": 17376, + "7": 26496 + }, + "replicas": 32, + "request_kinds": { + "COPY": 81, + "IDLE": 1998, + "MOVE": 26154 + } + }, + "rank_profile_delta": { + "26": 32, + "34": -64, + "42": 32 + }, + "scope": "Every literal source/controller site; all-low numerical emitter remains a quantified dependency", + "stale_digest_control": "REJECTED", + "status": "PASS_FULL_OQ4_SOURCE_TOPOLOGY_AND_CHRONOLOGY" +} diff --git a/research/r437-affine-two-child-bound/inputs/pr4010-RESULT.json b/research/r437-affine-two-child-bound/inputs/pr4010-RESULT.json new file mode 100644 index 0000000000..4a03e803bf --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/pr4010-RESULT.json @@ -0,0 +1,101 @@ +{ + "ERASE_guards": 2592, + "chart_count": 1235, + "chart_sha256": "8d8d44ca739b1c87902a19af89c961c76c9081c2a821cee8dcc64cae68153426", + "code_bits_delta": 5, + "compiled_actual_sources": [ + { + "common": true, + "good": true, + "kind": "MOVE", + "rank": 2, + "replica": 1, + "request": 563291 + }, + { + "common": false, + "good": false, + "kind": "MOVE", + "rank": 2, + "replica": 1, + "request": 563291 + }, + { + "common": false, + "good": false, + "kind": "IDLE", + "rank": 14, + "replica": 0, + "request": 896352 + }, + { + "common": true, + "good": false, + "kind": "COPY", + "rank": 7, + "replica": 0, + "request": 1598 + } + ], + "controls": [ + "replica omitted", + "wrong idle replica", + "legacy idle consumer", + "replica factorized profile", + "same-family duplicate chart", + "stale source codebook", + "different prime source codebook", + "mismatched Specifications context", + "untagged integer source", + "native COPY request" + ], + "determinants": { + "-1": 999, + "1": 236 + }, + "family_scans_per_low": 507456, + "first_moved_request": 563291, + "full_physical_caller_executed": false, + "idle_owner_gathers_per_low": 63936, + "local_owner_gathers_per_low": 189792, + "new_q3_code_bits": 6512, + "old_q3_code_bits": 6507, + "per_stage_pairs": { + "0": 6848, + "1": 13920, + "2": 27392, + "3": 27872, + "4": 27872, + "5": 27808, + "6": 27322, + "7": 13920, + "8": 6848 + }, + "profile": { + "1": 380160, + "2": 400877, + "3": 22176, + "4": 26592, + "5": 29376, + "6": 17375, + "7": 26496, + "14": 1, + "42": 403 + }, + "rank_mass": 1808352, + "replica_zero_request": 560376, + "request_count": 903456, + "request_kinds": { + "COPY": 2592, + "IDLE": 63936, + "MOVE": 836928 + }, + "request_sha256": "29ad864c2a6a31ad15162b0165b4f047cf580d9f2c147aebcfccfd564ccbbc60", + "routes_per_low": 379584, + "same_family_pairs": 179802, + "source_identity": "84cc5d15252e334b9bed24c50d6826fd3d765710857e5db04889fc76d62aed1e", + "status": "PASS_POOLED_REPLICA_NATIVE_REQUEST_INTERFACE", + "supplier_admitted": false, + "unique_chart_pair_witnesses": 463, + "witness_sha256": "1818977337134cdda43778d82d79ca4a061a4fc271ad5cb0ec2966659abf2185" +} diff --git a/research/r437-affine-two-child-bound/inputs/pr4014-PROOF.md b/research/r437-affine-two-child-bound/inputs/pr4014-PROOF.md new file mode 100644 index 0000000000..e58dc87be2 --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/pr4014-PROOF.md @@ -0,0 +1,222 @@ +# One-child dirty echo boundary and the fixed two-child budget + +Chris R / Clear1nsight, with substantial OpenAI Codex assistance. Apache-2.0. +This is a scoped obstruction and cost decision, not a new multiplication bound. + +## 1. Changed proposal and optimistic gate + +PR3982 supplies an all-class rank-seven COPY conjugator with 8036 ordered ADD +slots per column, 196 ordinary interchanges and one reversed 7f child. Its +ordinary tariff remains a positive exponent-gap term under the available B1/B2 +upper bounds. The new proposal tested here removes ordinary interchanges by +using coupled dirty payload roles, coordinatewise reversible/Boolean echo, +and the existing reversed child as the only backward address primitive. +This is a changed consumer/operation contract, not a smaller permutation route. + +The completed old bill is + + T_R(v,7f,w) + 196 b(v,f) + C_q v(8036f+196+3) + Gamma + +plus 63 actual dirty XOR readers and outer owner/producer/return costs when +not already included. All of these are charges; none is a negative credit. +For a candidate with child widths k_1 f,...,k_t f and no ordinary calls, use + + sum_i T_R(v,k_i f,w) + C_scan(v; clone, coordinatewise gates, ordered ADDs, + readers, transfers, releases, disposal, head return) + Gamma_echo. (1) + +Its reserve must sum the whole-run visited maxima on fixed reusable source, +owned-output, helper, child, coefficient and parking inventories. Erasure does +not refund previously visited cells, and disjoint occurrence inventories cannot +be replaced by a maximum. These implementation-dependent scan and reserve terms +are unknown here. Setting all of them to zero is the optimistic gate below, +not a physical upper bound. + +The source profile has m=64, W=28416, paid rank mass1808352, hence deficit +64W-1808352=10272. It has2592 COPY executions (nine captures in each of nine +stages and32 replicas), already using one private transformed stream through +63 readers. A fixed schedule replacing every one with two rank-seven children +adds2592*7=18144 mass, giving1826496 and excess7872. Its optimistic moment is + + M_two(c)= (1/W) sum_r n_r(r/64)^(1-c) + + (2592/W)(7/64)^(1-c). + +For every c>=0, each term (r/64)^(1-c)>=r/64, so + + M_two(c) >= M_two(0)=1826496/1818624=1+41/9472>1. (2) + +Thus this particular fixed two-rank-seven replacement fails even before the +remaining positive costs in(1). This does NOT follow for an adaptive schedule +or for two children of different widths. If only a fraction theta pays one +extra rank-seven child, the zero-exponent necessary condition is + theta<10272/(2592*7)=107/189. At positive c the necessary bound is + theta < (1-M_old(c))/((2592/W)(7/64)^(1-c)), when the numerator is positive. +The obstruction below supplies a worst-case class, not its density. It does +not license inserting theta=1 into an adaptive original good/fallback scheme. + +## 2. Actual address convention and the relaxed operation class + +Fix an odd prime q, w>=1, R=Z/q^w and A=q^w. Take the allowed subsequence +n=64f with any f>=1 (delta=0); a uniform all-size claim must cover it. In one +fixed physical prefix/fresh-row/spectator fiber, order the two banks as + + head atoms 0,...,n-1; reflected tail atoms n,...,2n-1. + +Atom a=if+j in the head is paired with physical tail atom 2n-1-a. The standard +reversed child W_l swaps a with2n-1-a for0<=a z+(y-x) reaches the separating y from x, so admitting arbitrary address +translations destroys this particular orbit obstruction even with no child. +An addition from a fixed nonzero header/address digit into a body digit may +also act affinely on the fiber and is outside U here. No claim excludes every +legal physical scan or proves that such an enlarged alphabet is expensive; +a complete translated/affine mechanism would need its own full cost gate. + +## 3. The dependency-orbit theorem + +Define lead(z) as the first nonzero coordinate of z. If L is lower +unitriangular, lead(Lz)=lead(z), with the leading value unchanged. This holds +over R including nonunits and high carries: before the leading coordinate all +summands are zero, and at it the diagonal entry is1. + +Let x=e_n, the first physical tail coordinate. For every V in U, Vx has zeros +before n and value1 at n. If l0 for both +pinned B1/B2 rates. This is a conditional target-scaling calculation; it does +not establish a retuned R437 selector or its admission. The retained ordinary +selector pattern is n=floor((e-k)/w), with k=o(e), as in PR3562 head +abb93be8b9ceca07a2b17f3a97db7bb6b074271d, PROOF lines110–165 (there c=1/577). This explicitly distinguishes original ordinary width e +from reduced width n. A fixed K +(including63) cannot remove this upper-tariff gap. To infer absorption from +that tariff would require growing K at least on the e^delta scale, while +also paying readers, storage, source compatibility and preparation. This is +not a lower bound on actual adapter runtime. + +For different independent source payloads, packing K fibers enlarges volume +from v to Kv; the same volume-linear tariff gives196 C Kv(fw)^p, so dividing +by K gives no reduction at all. Identical field labels are not identical +physical sources. Different Q maps likewise need not yield the same private +stream: delta sources separate distinct address permutations. No new equality +of the actual R437 captures is asserted. PR3995's pooled owner IR still needs +its replica-indexed physical contract; its finite profile does not establish +source equality or free transport. PR3989 similarly demonstrates why a finite +coupled identity's lifted transfer cannot be priced without its full consumer. + +## 6. Decision, evidence, and limits + +Stop this fixed one-child dirty-echo route: it fails the full-cube dependency +contract even after relaxing pointwise operations. Stop the fixed two-rank- +seven-per-COPY repair: its optimistic moment already exceeds1. These are two +separate conclusions, not a universal lower bound of fourteen recursive ranks. +A 7f+1f or other mixed-width construction, an adaptive schedule with an actual +class-frequency proof, a legal backward address operation with a cheaper full +tariff, or a changed producer/consumer can reopen the question. Each needs an +exact complete bill and the appropriate whole-profile moment before expansion. + +Finite checks authenticate source bytes, all nine capture classes and high-lift +conjugacies, reachable address orbits in small cubes, a separating arbitrary +payload bit and arbitrary fixed dirty helpers, and exact profile/tariff +arithmetic. Controls break the premise deliberately (a full-width child or +an extra child permits the formerly absent dependency), detect wrong target +orientation/weight, and reject invalid source/invoice inputs. The mathematical +proof, finite checks and same-session AI cross-review are distinct evidence. +No encoded supplier, formal-kernel proof, full native execution, selected cold +replay, improved kappa or frontier change is claimed. diff --git a/research/r437-affine-two-child-bound/inputs/r437-EXPECTED.json b/research/r437-affine-two-child-bound/inputs/r437-EXPECTED.json new file mode 100644 index 0000000000..bc2585e140 --- /dev/null +++ b/research/r437-affine-two-child-bound/inputs/r437-EXPECTED.json @@ -0,0 +1,34 @@ +{ + "word_gzip_sha256": "e432182d5b62c8bbefeb871fce30317234d707e5e18d4295e65ac21f7fd8365e", + "word_content_sha256": "da77deaf11368d016622348227657b98404b6afbc7e4f3d6fe9a246baae0dcce", + "records_sha256": "caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb", + "template_content_sha256": "c425a64739981b3ae3ed6b36d1a2f42c2d35e93f007649e89d4c677d8e158fe5", + "program_sha256": "a777373994bd84681d6c2be75251ba6a04a1521580910f23afe09bb50db632b2", + "profile": { + "1": 380160, + "2": 400864, + "3": 22176, + "4": 26592, + "5": 29376, + "6": 17376, + "7": 26496, + "26": 32, + "42": 384 + }, + "live": 28416, + "physical": 28425, + "rank_mass": 1808352, + "deficit": 10272, + "emitted_events": 7814016, + "hosted_residuals": 125856, + "BIT_c": "1736646042038446578551/1000000000000000000000000", + "BIT_c_decimal": "0.001736646042038446578551", + "next_grid": "217080755254805822319/125000000000000000000000", + "invoice": { + "prefix_bits": 177, + "charged_prefix": 192, + "two_level_bits": 393, + "charged_two_level": 512, + "ROW": 18355 + } +} diff --git a/research/r437-affine-two-child-bound/inputs/r437-word.json.gz b/research/r437-affine-two-child-bound/inputs/r437-word.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c558a221dd44cbdaa732a401f9876de4c096d4a7 GIT binary patch literal 42280 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 Jb else list(range(a,b)) + pa,pb=permutation(d,a),permutation(d,b) + rr=[pa.index(i) for i in indices];cc=[pb.index(i) for i in indices] + need(all(i

=p for j in cc),'unit minor lies in NE') + minor=[[x[i][j] for j in cc] for i in rr] + need(all(minor[i][j]==0 for i in range(len(minor)) for j in range(i+1,len(minor))),'identified original-order triangular minor') + need(all(math.gcd(minor[i][i],mod)==1 for i in range(len(minor))),'minor determinant unit');minor_count+=1 + else: + # Force admissible endpoint zeros to exercise non-vacuous equal-width branch. + t=a + for i in range(t,d-t): + for j in range(t):m[i][j]=0 + for i in range(d-t,d): + for j in range(d-t):m[i][j]=0 + z=double(m,t,t) + need(zero_ne(z,t) and zero_ne(z,d-t),'forced endpoint zeros') + mid=[r[t:d-t] for r in z[t:d-t]] + need(all(mid[i][j]==0 for i in range(len(mid)) for j in range(i+1,len(mid))),'local ring central lower');zero_count+=1 + # Premise control: ordinary middle exchange realizes the target immediately. + t=target(3,weight=2,mod=9) + need(not all(t[i][j]==0 for i in range(6) for j in range(i+1,6)),'target violates forward alphabet') + return dict(word_cases=count,unit_minors=minor_count,equal_width_restoration_cases=zero_count,moduli=[9,25,27]) + +def target_rank_cuts(): + rows=[] + for n,r,mod,h in [(4,2,3,2),(8,3,5,2),(64,7,3,2),(128,14,3,2)]: + t=target(n,r,h,mod);N=n-r + measured=[] + for p in range(1,n): + got=rank([row[p:] for row in t[:p]],mod) + need(got==max(0,p-N),'actual weighted target NE rank profile') + measured.append(got) + survivors=[] + for a in range(1,n): + for b in range(1,n): + p=max(a,b) + if p>N and abs(a-b)<=measured[p-1]: + need(min(a,b)>=N and a+b>=2*N+1,'strengthened mixed-width sum bound') + survivors.append((a,b)) + need(min(sum(x) for x in survivors)==2*N+1,'necessary width boundary arithmetic') + quotient=[(a,b) for a,b in survivors if (a-N)+(b-N)>=r] + need(min(a+b for a,b in quotient)==2*N+r,'quotient rank lower bound arithmetic') + rows.append(dict(n=n,r=r,modulus=mod,outer_cut_minimum=2*N+1,quotient_minimum=2*N+r,necessary_pairs=len(quotient),realizability=False)) + return rows + +def matvec(a,x,mod):return tuple(sum(u*v for u,v in zip(row,x))%mod for row in a) +def translation_escape(): + out=[] + for n,mod,h in [(2,3,2),(2,9,2)]: + d=2*n;xs=list(product(range(mod),repeat=d));index={x:i for i,x in enumerate(xs)};t=target(n,weight=h,mod=mod) + displacement={x:tuple((y-z)%mod for y,z in zip(matvec(t,x,mod),x)) for x in xs} + ds=sorted(set(displacement.values()));need(len(ds)==mod,'rank-one displacement cardinality') + source=[int((i*37+19)%101<47) for i in range(len(xs))];saved=source[:] + dirty=[int((i*13+7)%23<11) for i in range(len(xs))];before=dirty[:];dest=[0]*len(xs) + for delta in ds: + tmp=[source[index[tuple((v+w)%mod for v,w in zip(x,delta))]] for x in xs] + for i,x in enumerate(xs):dest[i]^=int(displacement[x]==delta)&tmp[i] + tmp=[0]*len(xs);need(not any(tmp),'temporary erased') + expected=[source[index[matvec(t,x,mod)]] for x in xs] + need(dest==expected and source==saved and dirty==before,'masked translation exact arbitrary-source semantics and restoration') + # Every source basis is covered by a combinatorial incidence check, not just this sample payload. + need(all(tuple((a+b)%mod for a,b in zip(x,displacement[x]))==matvec(t,x,mod) for x in xs),'all source delta functions') + missing=ds[-1];witness=next(x for x in xs if displacement[x]==missing) + need(matvec(t,witness,mod)!=witness or missing==tuple([0]*d),'missing mask witness exists') + need(sum(displacement[x]==missing for x in xs)>0,'each translation necessary') + y=matvec(t,witness,mod) + wrong=sum(int(displacement[witness]==delta) * int(tuple((a+b)%mod for a,b in zip(witness,delta))==y) for delta in ds if delta!=missing)%2 + need(wrong==0 and int(y==matvec(t,witness,mod))==1,'deleted mask fails source delta witness') + unweighted=target(n,weight=1,mod=mod) + need(any(matvec(t,x,mod)!=matvec(unweighted,x,mod) for x in xs),'ancestor weight mutation detected') + out.append(dict(modulus=mod,addresses=len(xs),branches=len(ds),mask_source_positions=len(ds)*len(xs),temporary_erases=len(ds)*len(xs),payload_inventory_cells=3*len(xs),head_and_metadata_cost='additional unresolved',every_delta_source_checked=True)) + return out + +def budget(): + old=json.loads((HERE/'inputs/r437-EXPECTED.json').read_text());new=json.loads((HERE/'inputs/pr4010-RESULT.json').read_text());cat=json.loads((HERE/'inputs/pr3967-CATALOGUE.json').read_text()) + profile={int(k):v for k,v in new['profile'].items()};W=old['live'];copies=new['request_kinds']['COPY'] + need(copies==cat['literal_opcode_counts']['2']==2592,'COPY census agreement') + mass=sum(k*v for k,v in profile.items());need(mass==new['rank_mass']==old['rank_mass']==1808352,'pooled rank mass') + need(profile.get(26,0)==0 and profile[14]==1,'pooled profile not relabelled unpooled') + replacement=dict(profile);replacement[7]-=copies;replacement[58]=copies;replacement[63]=copies + need(all(x>=0 for x in replacement.values()),'valid replacement profile') + newmass=sum(k*v for k,v in replacement.items());need(newmass-mass==114*copies,'minimum integer-rank increment') + moment=Fraction(newmass,64*W);need(moment>1,'optimistic fixed schedule fails') + theta=Fraction(64*W-mass,copies*114);need(theta==Fraction(107,3078),'adaptive zero-exponent necessary condition') + return dict(pooled_profile={str(k):v for k,v in sorted(profile.items())},W=W,COPY_calls=copies,old_mass=mass,minimum_integer_rank_pair=[58,63],minimum_replacement_mass=newmass,extra_mass=newmass-mass,deficit=64*W-mass,excess=newmass-64*W,moment_zero=str(moment),adaptive_fraction_zero_necessary=str(theta),realizability=False,physical_costs='additional nonnegative and unresolved') + +def evaluate():return dict(source=auth(),exhaustive=exhaustive(),local_rings=local_ring_controls(),target_rank_cuts=target_rank_cuts(),translation_escape=translation_escape(),budget=budget(),new_kappa=False) +if __name__=='__main__': + result=evaluate() + if '--write' in sys.argv:(HERE/'RESULT.json').write_text(json.dumps(result,indent=2)+'\n') + else:need(result==json.loads((HERE/'RESULT.json').read_text()),'committed receipt equality') + print('PASS_AFFINE_TWO_CHILD_SCOPED_BOUND '+hashlib.sha256(canon(result)).hexdigest())