From 225b334a2449189de6f9d1e2f69a236d43cbbb9b Mon Sep 17 00:00:00 2001 From: Hanson Sun <182361798+bbMisk@users.noreply.github.com> Date: Wed, 14 Oct 2026 00:26:10 -0400 Subject: [PATCH] Independently audit the nine frozen packing ceilings --- research/independent-queue-ceilings/README.md | 194 ++++ .../independent-queue-ceilings/RESULT.json | 834 ++++++++++++++++++ .../independent-queue-ceilings/SOURCES.json | 42 + research/independent-queue-ceilings/TASK.json | 244 +++++ .../independent-queue-ceilings/UPSTREAM.json | 173 ++++ .../independent-queue-ceilings/VERIFY.json | 35 + research/independent-queue-ceilings/bounds.py | 115 +++ ...cf2381bb161a580bb85e5f43f20d9e21eb.json.gz | Bin 0 -> 597 bytes ...df23bd847ec4437decb4796486d231f33a.json.gz | Bin 0 -> 1635 bytes ...96ee15219b1b9008c9162649ccf906a3d9.json.gz | Bin 0 -> 16995 bytes ...2aa90d618dc41801e6fb4b58bab31d41c0.json.gz | Bin 0 -> 4263 bytes ...918bd9ed4a01543e2de65343fe53cbcea3.json.gz | Bin 0 -> 17764 bytes ...54d625c0d7aefe5ec2cd4845d7a03e957f.json.gz | Bin 0 -> 4265 bytes ...450ef4a8b918aab3a369b2a1f9bc2a8bb2.json.gz | Bin 0 -> 4264 bytes ...2785bec7aad0fe91d704c76db8bab0ce6a.json.gz | Bin 0 -> 17547 bytes ...8baaa9a2eefc151e065256f58fcfac9711.json.gz | Bin 0 -> 17558 bytes ...450ac18d3752080e72a00a13dc36005561.json.gz | Bin 0 -> 709 bytes ...04e19b1a6bc4d277f0ae06e1c8acac10d4.json.gz | Bin 0 -> 961 bytes ...03e62ef7873fca425a765ec338862f6e0d.json.gz | Bin 0 -> 613 bytes ...2ff045a3e88ec7a585664bf6d2ed5545dc.json.gz | Bin 0 -> 712 bytes ...c043aafa9ce0cd5f05fe6b404de5d5454f.json.gz | Bin 0 -> 3172 bytes ...02f700b5b91eef5e8b13829b05897051c0.json.gz | Bin 0 -> 1624 bytes ...4e8faba09df248f3e7be0843862aa1e2b7.json.gz | Bin 0 -> 907 bytes ...4c1b337e0979a435703c3ce7a721957cd6.json.gz | Bin 0 -> 643 bytes ...ac7f77ed5a0b2eab886ef5c4c83022b7ff.json.gz | Bin 0 -> 17684 bytes ...2b51efa9bc8538dd65dd6abc867dd587cc.json.gz | Bin 0 -> 736 bytes ...84d6b05cae0879c09741ea5aa799297751.json.gz | Bin 0 -> 18023 bytes ...2c7fc41eadbf41a0369db0f66789a99419.json.gz | Bin 0 -> 18104 bytes .../independent-queue-ceilings/test_verify.py | 192 ++++ research/independent-queue-ceilings/verify.py | 348 ++++++++ 30 files changed, 2177 insertions(+) create mode 100644 research/independent-queue-ceilings/README.md create mode 100644 research/independent-queue-ceilings/RESULT.json create mode 100644 research/independent-queue-ceilings/SOURCES.json create mode 100644 research/independent-queue-ceilings/TASK.json create mode 100644 research/independent-queue-ceilings/UPSTREAM.json create mode 100644 research/independent-queue-ceilings/VERIFY.json create mode 100644 research/independent-queue-ceilings/bounds.py create mode 100644 research/independent-queue-ceilings/inputs/084f76cf2381bb161a580bb85e5f43f20d9e21eb.json.gz create mode 100644 research/independent-queue-ceilings/inputs/087f35df23bd847ec4437decb4796486d231f33a.json.gz create mode 100644 research/independent-queue-ceilings/inputs/0e696d96ee15219b1b9008c9162649ccf906a3d9.json.gz create mode 100644 research/independent-queue-ceilings/inputs/15c3572aa90d618dc41801e6fb4b58bab31d41c0.json.gz create mode 100644 research/independent-queue-ceilings/inputs/2a7f39918bd9ed4a01543e2de65343fe53cbcea3.json.gz create mode 100644 research/independent-queue-ceilings/inputs/449d9554d625c0d7aefe5ec2cd4845d7a03e957f.json.gz create mode 100644 research/independent-queue-ceilings/inputs/579a28450ef4a8b918aab3a369b2a1f9bc2a8bb2.json.gz create mode 100644 research/independent-queue-ceilings/inputs/5b3cdd2785bec7aad0fe91d704c76db8bab0ce6a.json.gz create mode 100644 research/independent-queue-ceilings/inputs/5ed2f48baaa9a2eefc151e065256f58fcfac9711.json.gz create mode 100644 research/independent-queue-ceilings/inputs/6c8a74450ac18d3752080e72a00a13dc36005561.json.gz create mode 100644 research/independent-queue-ceilings/inputs/79190f04e19b1a6bc4d277f0ae06e1c8acac10d4.json.gz create mode 100644 research/independent-queue-ceilings/inputs/86721e03e62ef7873fca425a765ec338862f6e0d.json.gz create mode 100644 research/independent-queue-ceilings/inputs/9696f82ff045a3e88ec7a585664bf6d2ed5545dc.json.gz create mode 100644 research/independent-queue-ceilings/inputs/9aeea5c043aafa9ce0cd5f05fe6b404de5d5454f.json.gz create mode 100644 research/independent-queue-ceilings/inputs/b59a7802f700b5b91eef5e8b13829b05897051c0.json.gz create mode 100644 research/independent-queue-ceilings/inputs/b7853d4e8faba09df248f3e7be0843862aa1e2b7.json.gz create mode 100644 research/independent-queue-ceilings/inputs/bf5cc64c1b337e0979a435703c3ce7a721957cd6.json.gz create mode 100644 research/independent-queue-ceilings/inputs/da4786ac7f77ed5a0b2eab886ef5c4c83022b7ff.json.gz create mode 100644 research/independent-queue-ceilings/inputs/db33352b51efa9bc8538dd65dd6abc867dd587cc.json.gz create mode 100644 research/independent-queue-ceilings/inputs/e7e2fa84d6b05cae0879c09741ea5aa799297751.json.gz create mode 100644 research/independent-queue-ceilings/inputs/f126fc2c7fc41eadbf41a0369db0f66789a99419.json.gz create mode 100644 research/independent-queue-ceilings/test_verify.py create mode 100644 research/independent-queue-ceilings/verify.py diff --git a/research/independent-queue-ceilings/README.md b/research/independent-queue-ceilings/README.md new file mode 100644 index 0000000000..5ca9ca3c41 --- /dev/null +++ b/research/independent-queue-ceilings/README.md @@ -0,0 +1,194 @@ +# Independent integer-root check of the nine frozen packing ceilings + +All nine packing-relaxation brackets in Douglas Colkitt's +[PR1264 census](../complex-queue-ceiling-census/README.md) pass a separately +written integer-root calculation. The fourteen source profiles and idle +histograms reproduce the census exactly. No numerical discrepancy was found. +**Independent finite verification; no new construction or kappa.** + +Revision 3 uses this census to assess the remaining benefit of packing. Both +the census and its [PR1240 predecessor](../complex-local-word-ceiling/README.md) +use the same atanh/Taylor engine. This package adds a different numerical +method and an offline check of the original source extraction, including the +mixed-provider rational counts. It imports no predecessor executable. + +## Result and exact scope + +The table gives each certified upper endpoint `a_hi`; its lower endpoint is +exactly `a_hi - 10^-15`. At both 96/192 and 128/256 exponent/fractional bits, +the outward rational intervals prove + +`relax(a_hi - 10^-15) < 1 < relax(a_hi)`. + +| Profile | Exact `a_hi` | Frozen claims | +|---|---:|---| +| W1 | 0.001690166683079 | #1124, #1130 | +| W4 | 0.001690126076663 | #1152 | +| W5 | 0.001690094712065 | #1157 | +| W2, selected at the base | 0.001690054109089 | #1129, #1131 | +| W8 | 0.001687160482514 | #1195 | +| W9 | 0.001687102547672 | #1196, #1204, #1225 | +| W3 | 0.001687062088401 | #1148 | +| W6 | 0.001686657172581 | #1178 | +| W7, mixed providers | 0.001686519526354 | #1193, #1239 | + +Thus the original common strict planning cap is corroborated: + +`kappa < 1690166683079 / 1001690166683079 < 0.001687314840`. + +This is the frozen fourteen-claim domain of PR1264, **not the current open PR +queue**. Profile labels identify aggregate paid profiles, not circuit +identities. The cap applies only under the fixed coverage law, width 73, +896/9 live families per call, centre charge 64, and rank-51 idle relaxation. +The conversion to kappa retains the predecessor's balanced-transfer premise. +A relaxation root is not an attainable supplier optimum. + +The selected PR1094 assembly and independent receipt separately reproduce W2 +with 144 calls, 14,336 live families, and 1,646 idle-rank units per call. Their +reported endpoint is below the W2 bracket. This does not re-execute that +assembly or re-certify its endpoint moment. + +The committed [RESULT.json](RESULT.json) contains every exact rational moment +interval at both precisions, all profile memberships, per-claim count evidence, +14 semantic controls, 2,640 exact algebraic power comparisons, and 72 exact +zero-saving child costs. [test_verify.py](test_verify.py) adds 13 test groups +covering arithmetic corruption, source drift, missing inputs, omitted cases, +wrong brackets, mixed-count rounding, and optimized read-only relocation. + +## Source extraction and its boundary + +[SOURCES.json](SOURCES.json) pins the four immutable main-branch inputs and the +historical task/selection provenance at +`ee055dc44815497927ef618fc985b93c2dcbda2a`. [UPSTREAM.json](UPSTREAM.json) binds +21 original JSON blobs to each frozen head/path pair in the census. They were +retrieved through GitHub's Contents API at those exact heads; each response's +Git blob ID and raw bytes were checked. The compressed copies in `inputs/` +retain the exact original JSON bytes. Offline replay checks both SHA256 and +Git blob hashes of the **decompressed payload**, not the gzip container. + +The new extractor uses explicit fields and JSON paths, not the predecessor's +recursive matching routine. Every call count is independently read from +`calls`, `complete_invocations`, or the sum of `provider_counts`. Ten claims +also provide an explicit `live` field. The cited receipts for **#1124, #1130, +#1178 and #1195 omit it**; for those four, `W = 896 N / 9` remains an explicit +template premise, now distinguished in the receipt. This audit does not claim +to have recovered their physical live stock from operations. + +For each claim the checker requires nonnegative integer histograms, an idle +subprofile with ranks at most 51, `9 W = 896 N`, and +`sum_r r H_r = 72 W + 64 N`. It then computes each local count as +`L_r = (H_r - I_r) / N` using exact fractions and compares the complete census +grouping. Titles and recorded endpoints are checked against the original +source fields, not used as numerical evidence of admission. + +W7's exact counts are +`{1:783550/333, 2:169496/333, 3:137362/333, 4:42458/333, 5:82, 8:8}`. +The predecessor's README displays rounded values, while its actual calculation +correctly retains these fractions. Substituting the display values changes +the lower-endpoint sign; this is a useful corruption control, **not a defect +in the predecessor's certificate**. + +## Enclosure and ceiling arguments + +Let `S = 2^P` and `x = m/r >= 1`. The initial integer bounds are +`floor(S x) <= S x <= ceil(S x)`. If `l/S <= y <= u/S`, then + +`isqrt(l S)/S <= sqrt(y) <= ceil_sqrt(u S)/S`. + +Squaring both nonnegative sides proves each inequality. Repeating this gives +outward bounds for `x^(1/2^j)`. For a binary exponent `k/2^B`, multiply the +root factors selected by the bits of `k`, rounding every scaled product down +for the lower bound and up for the upper bound. Positivity preserves the +enclosure at every multiplication. For rational `a`, set +`k_lo = floor(2^B a)` and `k_hi = ceil(2^B a)`. Since `x >= 1`, exponent +monotonicity sandwiches `x^a` between those two dyadic powers. Multiplication +by the exact positive rational `r/m` encloses `(r/m)^(1-a)`. + +The arithmetic oracle in the controls is different: for rational `a = p/q`, +it checks `lo^q <= x^p <= hi^q` by direct exact integer powers. This catches +root rounding, bit-order and exponent-bracketing errors without using another +root or transcendental implementation. Equality and intervals crossing one +produce an explicit unresolved error, never a successful endpoint decision. + +For the inherited ceiling theorem, write `w = 896/9`. The coverage law gives +total rank mass `72 w + 64 = 7232` per call. Subtract the local mass to obtain +idle mass `M`. At `a >= 0`, a rank-r child's cost per rank unit is +`m^(a-1) r^(-a)`, nonincreasing in `r`. Therefore every idle histogram with +ranks at most 51 costs at least `(M/51) (51/73)^(1-a)`. The guard admits 51 +and excludes 52 because `2*51^2 < 73^2 < 2*52^2`. The resulting lower bound is + +`relax(a) = [sum_r L_r (r/73)^(1-a) + (M/51)(51/73)^(1-a)] / w`. + +All terms have positive bases below one and nonnegative counts, so the +relaxation is strictly increasing for these profiles. Its two certified signs +bracket its unique root. At or above the upper endpoint, even this favorable +relaxation exceeds one; adding nonnegative implementation charges cannot +repair that inequality. The theorem and model are credited to PR1240/PR1012; +the new result is their independent numerical and extraction corroboration. + +## Reproduce + +Python 3.12, standard library only, from the repository root: + +```sh +python3.12 -I -B scripts/research_package.py --package research/independent-queue-ceilings +``` + +This validates provenance, runs the complete receipt check and the corruption +tests. The generic hook uses the four explicitly declared external inputs. +The direct check also works without Git or network when those four files and +this package are copied with their repository-relative paths: + +```sh +python3.12 -I -O -B research/independent-queue-ceilings/verify.py +``` + +Expected output begins `PASS_INDEPENDENT_QUEUE_CEILINGS` and reports 14 claims, +9 profiles, 18 endpoint signs, 18 refined signs, 14 semantic controls and 21 +source blobs. `verify.py --write` explicitly regenerates only this package's +receipt. Ordinary replay is read-only. Full Git history is needed by the +registered wrapper's provenance checks. + +Unrun obligations: operation/frame or owner reconstruction, native supplier +admission, chronological hosting, physical live-stock derivation, exceptional +charges for actual suppliers, bootstrap/outer feasibility, precision/tape, +all-size and analytic interfaces, and a full Lean multiplication theorem. + +## Open next questions + +Can the four template-derived live counts be bound to explicit physical +inventories in their original packages? This would remove a source-extraction +premise, not improve kappa. A first step is to locate each pinned template or +owner inventory and recount active data families while retaining its role +distinction. Those additional inputs and the physical reconstruction are +outside this package. The structured question is in [TASK.json](TASK.json). + +## Credit and overlap + +Douglas Colkitt's PR1240 supplies the ceiling theorem and original numerical +engine; PR1264 supplies the frozen census and all nine reported brackets. +PR1012 supplies the coverage identity. The fourteen frozen constructions are +credited to jeremykothe2 (#1124/#1130), aliromman (#1129), chafreaky +(#1131/#1152/#1196), tomdif (#1148), rohanarun (#1157/#1178/#1225), +jeremydiviney (#1193), mdumitrean (#1195), and GamingPuzzled (#1204/#1239). +This package asserts no construction or discovery credit. +The selected lineage includes Rohan Arun, Jeremy Kothe and Hao Yan, with full +attribution in the selected review. + +Integer-root endpoint verification already appears in arkfx's PR706 and +Arham-Tahir64's PR1577; this implementation was written separately. +Arham-Tahir64's PR1605 independently checks the +selected baseline bracket as part of its rank-one block-budget study. This +package's additional domain is the complete nine-profile census and its +twenty-one original source blobs. Discussion #1606 changes port count and +Discussion #1328 changes the coverage law; neither is attempted here. + +Started from current main at the exact base above, using task `independent-moment` +and nonce `488b8bb97d866ded02e80a47a4e9d7e1`. Coordination: +[Discussion #1620](https://github.com/CrocSwap/integer-mult-bounds/discussions/1620). +Search coverage and limits are recorded in TASK.json; a clear search result is +not a novelty certificate. + +Prepared by Hanson Sun (bbMisk) with substantial OpenAI Codex assistance in +scope selection, implementation, mathematical explanation, testing and writing. +New material and copied repository inputs retain Apache-2.0. diff --git a/research/independent-queue-ceilings/RESULT.json b/research/independent-queue-ceilings/RESULT.json new file mode 100644 index 0000000000..f19fa5472c --- /dev/null +++ b/research/independent-queue-ceilings/RESULT.json @@ -0,0 +1,834 @@ +{ + "arithmetic": { + "exponent_bits": 96, + "fractional_bits": 192, + "refined_exponent_bits": 128, + "refined_fractional_bits": 256 + }, + "claims": [ + { + "count_evidence": { + "calls": [ + [ + "profile/complete_invocations", + 144 + ], + [ + "idle/complete_invocations", + 144 + ] + ], + "live": [], + "live_mode": "inferred from source N under the 896/9 template premise" + }, + "head": "7c0e3ee0e2d4f6c00d033a4f1dfe4e793e7ecae4", + "idle_mass_per_call": "1648", + "local": { + "1": "2406", + "2": "432", + "3": "426", + "4": "138", + "5": "84", + "8": "8" + }, + "pr": 1124 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 333 + ] + ], + "live": [ + [ + "idle/expected/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "a007dc2e1cc7ae7e8f7ec1343e8883fe43259f21", + "idle_mass_per_call": "1646", + "local": { + "1": "2412", + "2": "418", + "3": "432", + "4": "142", + "5": "82", + "8": "8" + }, + "pr": 1129 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/complete_invocations", + 144 + ], + [ + "idle/complete_invocations", + 144 + ] + ], + "live": [], + "live_mode": "inferred from source N under the 896/9 template premise" + }, + "head": "1558508e5cbff0b7c534d1c4cc7a0fb1b7145c1c", + "idle_mass_per_call": "1648", + "local": { + "1": "2406", + "2": "432", + "3": "426", + "4": "138", + "5": "84", + "8": "8" + }, + "pr": 1130 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/calls", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "profile/live", + 33152 + ], + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "fcdc42737b703323d8ed550a528141a482e68e96", + "idle_mass_per_call": "1646", + "local": { + "1": "2412", + "2": "418", + "3": "432", + "4": "142", + "5": "82", + "8": "8" + }, + "pr": 1131 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 144 + ] + ], + "live": [ + [ + "idle/expected/live", + 14336 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "506ea08dd77388105682044ebb0848ce9b274964", + "idle_mass_per_call": "1642", + "local": { + "1": "2364", + "2": "498", + "3": "412", + "4": "130", + "5": "82", + "8": "8" + }, + "pr": 1148 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/calls", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "profile/live", + 33152 + ], + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "d376209304f05551f975b0ddf6eaa84edc4ae31a", + "idle_mass_per_call": "1648", + "local": { + "1": "2406", + "2": "432", + "3": "424", + "4": "142", + "5": "82", + "8": "8" + }, + "pr": 1152 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 333 + ] + ], + "live": [ + [ + "idle/expected/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "c5647aecc8ff44e49776860bb75520bfe3e88f1e", + "idle_mass_per_call": "1646", + "local": { + "1": "2412", + "2": "418", + "3": "434", + "4": "138", + "5": "84", + "8": "8" + }, + "pr": 1157 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 144 + ] + ], + "live": [], + "live_mode": "inferred from source N under the 896/9 template premise" + }, + "head": "6d4d0dd1c2df531a3350495dd15e00105793c52d", + "idle_mass_per_call": "1642", + "local": { + "1": "2372", + "2": "494", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "pr": 1178 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/calls", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "profile/live", + 33152 + ], + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "4e392e90e3fca8f395e35d6a23644920160a9f0f", + "idle_mass_per_call": "545954/333", + "local": { + "1": "783550/333", + "2": "169496/333", + "3": "137362/333", + "4": "42458/333", + "5": "82", + "8": "8" + }, + "pr": 1193 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 144 + ] + ], + "live": [], + "live_mode": "inferred from source N under the 896/9 template premise" + }, + "head": "cc1b023b123622abba467c7933f3759f8034c753", + "idle_mass_per_call": "1642", + "local": { + "1": "2358", + "2": "504", + "3": "408", + "4": "134", + "5": "80", + "8": "8" + }, + "pr": 1195 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/calls", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "profile/live", + 33152 + ], + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "7015903d1d01a2b50ff16f85184edc2686f69e37", + "idle_mass_per_call": "1642", + "local": { + "1": "2364", + "2": "498", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "pr": 1196 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 333 + ] + ], + "live": [ + [ + "idle/expected/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "d49f96b75257c8a5eb4862eb99fbaffc738dcc1b", + "idle_mass_per_call": "1642", + "local": { + "1": "2364", + "2": "498", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "pr": 1204 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/provider_counts:sum", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "aac9ce7d83e02989eed76e08815cfd2399214e90", + "idle_mass_per_call": "1642", + "local": { + "1": "2364", + "2": "498", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "pr": 1225 + }, + { + "count_evidence": { + "calls": [ + [ + "profile/calls", + 333 + ], + [ + "idle/calls", + 333 + ] + ], + "live": [ + [ + "profile/live", + 33152 + ], + [ + "idle/live", + 33152 + ] + ], + "live_mode": "direct source field and template agreement" + }, + "head": "12e04a30d7381a2a60bf2d7260febcb37f14e454", + "idle_mass_per_call": "545954/333", + "local": { + "1": "783550/333", + "2": "169496/333", + "3": "137362/333", + "4": "42458/333", + "5": "82", + "8": "8" + }, + "pr": 1239 + } + ], + "endpoint_decisions": 18, + "exact_power_controls": { + "algebraic_comparisons": 2640, + "exact_zero_saving_ranks": 72 + }, + "max_kappa_cap_exact": "1690166683079/1001690166683079", + "profiles": [ + { + "claims": [ + 1124, + 1130 + ], + "id": "W1", + "idle_mass_per_call": "1648", + "kappa_cap_exact": "1690166683079/1001690166683079", + "local": { + "1": "2406", + "2": "432", + "3": "426", + "4": "138", + "5": "84", + "8": "8" + }, + "lower": { + "a": "845083341539/500000000000000", + "moment_minus_one": [ + "-59926194137337547181746169047907483134185668503/51321583788521501925121414324145880618052858113937946177437696", + "-239704776549342665369170212692880953468021832919/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-631681809464512272188494680369791726577390389108375320543932784825/540980640916741265018923641960589905490477368357872715192345832484970141677780992", + "-4421772666251585905319430450012772859278820121745100008725477209083/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "below" + }, + "upper": { + "a": "1690166683079/1000000000000000", + "moment_minus_one": [ + "178178519513961503258332759126123892060907934597/102643167577043003850242828648291761236105716227875892354875392", + "89089259756982632468619995444629165341323925731/51321583788521501925121414324145880618052858113937946177437696" + ], + "refined_moment_minus_one": [ + "3286813548906540479372733815753853203211555144575341771928224778497/1893432243208594427566232746862064669216670789252554503173210413697395495872233472", + "6573627097813080958745499944083475633304219953814050824622617103639/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "above" + } + }, + { + "claims": [ + 1152 + ], + "id": "W4", + "idle_mass_per_call": "1648", + "kappa_cap_exact": "1690126076663/1001690126076663", + "local": { + "1": "2406", + "2": "432", + "3": "424", + "4": "142", + "5": "82", + "8": "8" + }, + "lower": { + "a": "845063038331/500000000000000", + "moment_minus_one": [ + "-12020597287487486608116630087069239500115412641/14663309653863286264320404092613108748015102318267984622125056", + "-168288362024817288975596024272803971025543964339/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-55435220443851725978684914385255338220533723952141496990016831013/67622580114592658127365455245073738186309671044734089399043229060621267709722624", + "-3104372344855696654806322892224480685421515553125365096253270198887/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "below" + }, + "upper": { + "a": "1690126076663/1000000000000000", + "moment_minus_one": [ + "427787732236771454540693625024291100887154612067/205286335154086007700485657296583522472211432455751784709750784", + "106946933059194744519682605499494267781790969129/51321583788521501925121414324145880618052858113937946177437696" + ], + "refined_moment_minus_one": [ + "3945645407222193602392595696309448867469979660128987888339024974655/1893432243208594427566232746862064669216670789252554503173210413697395495872233472", + "3945645407222193602392611852984357994993266167506413359659263042337/1893432243208594427566232746862064669216670789252554503173210413697395495872233472" + ], + "sign": "above" + } + }, + { + "claims": [ + 1157 + ], + "id": "W5", + "idle_mass_per_call": "1646", + "kappa_cap_exact": "338018942413/200338018942413", + "local": { + "1": "2412", + "2": "418", + "3": "434", + "4": "138", + "5": "84", + "8": "8" + }, + "lower": { + "a": "6601932469/3906250000000", + "moment_minus_one": [ + "-44865640494921664352195281160758111475947326889/51321583788521501925121414324145880618052858113937946177437696", + "-89731280989839566867445259697218644767589779357/102643167577043003850242828648291761236105716227875892354875392" + ], + "refined_moment_minus_one": [ + "-827624987912865314251440962837198142295843903382366230038287055493/946716121604297213783116373431032334608335394626277251586605206848697747936116736", + "-827624987912865314251432884353871662639753366745574279505367010291/946716121604297213783116373431032334608335394626277251586605206848697747936116736" + ], + "sign": "below" + }, + "upper": { + "a": "338018942413/200000000000000", + "moment_minus_one": [ + "416624295729511976082885321934591671457419444377/205286335154086007700485657296583522472211432455751784709750784", + "416624295729519499756775927210703965497866277349/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "7685361758211894239792260651008480291218639797853499442076376160973/3786864486417188855132465493724129338433341578505109006346420827394790991744466944", + "1921340439552973559948073241235446552490296787695183857863221889831/946716121604297213783116373431032334608335394626277251586605206848697747936116736" + ], + "sign": "above" + } + }, + { + "claims": [ + 1129, + 1131 + ], + "id": "W2", + "idle_mass_per_call": "1646", + "kappa_cap_exact": "1690054109089/1001690054109089", + "local": { + "1": "2412", + "2": "418", + "3": "432", + "4": "142", + "5": "82", + "8": "8" + }, + "lower": { + "a": "52814190909/31250000000000", + "moment_minus_one": [ + "-414832914115274191461908544658861579508128631197/205286335154086007700485657296583522472211432455751784709750784", + "-414832914115266667607795449182386147252505274051/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-956539575004435027771643708907230602035106441933680177030137209787/473358060802148606891558186715516167304167697313138625793302603424348873968058368", + "-1093188085719354317453302479507212742303437716654870218764759892283/540980640916741265018923641960589905490477368357872715192345832484970141677780992" + ], + "sign": "below" + }, + "upper": { + "a": "1690054109089/1000000000000000", + "moment_minus_one": [ + "181268222290676465765337416517801096626081759063/205286335154086007700485657296583522472211432455751784709750784", + "25895460327240569945635787431684908091956632819/29326619307726572528640808185226217496030204636535969244250112" + ], + "refined_moment_minus_one": [ + "208988031580776698425207355320351182817934835480227486112590997977/236679030401074303445779093357758083652083848656569312896651301712174436984029184", + "3343808505292427174803349999832974545361933056863702606960402282827/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "above" + } + }, + { + "claims": [ + 1195 + ], + "id": "W8", + "idle_mass_per_call": "1642", + "kappa_cap_exact": "843580241257/500843580241257", + "local": { + "1": "2358", + "2": "504", + "3": "408", + "4": "134", + "5": "80", + "8": "8" + }, + "lower": { + "a": "1687160482513/1000000000000000", + "moment_minus_one": [ + "-519759547104292938693187469409186932507784136879/205286335154086007700485657296583522472211432455751784709750784", + "-32484971694017837622978822789177131594402677495/12830395947130375481280353581036470154513214528484486544359424" + ], + "refined_moment_minus_one": [ + "-4793935672650001828036866734389375979139999774234902622223461854609/1893432243208594427566232746862064669216670789252554503173210413697395495872233472", + "-4793935672650001828036850549394548775426032879291549123551977698303/1893432243208594427566232746862064669216670789252554503173210413697395495872233472" + ], + "sign": "below" + }, + "upper": { + "a": "843580241257/500000000000000", + "moment_minus_one": [ + "19340341929796331821218206081147621726943725123/51321583788521501925121414324145880618052858113937946177437696", + "77361367719192864010399129134516689445719162375/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "1427065351508066933132819636128431341798609366641503451291771980053/3786864486417188855132465493724129338433341578505109006346420827394790991744466944", + "1427065351508066933132852006118085749344969902715429971548755428361/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "above" + } + }, + { + "claims": [ + 1196, + 1204, + 1225 + ], + "id": "W9", + "idle_mass_per_call": "1642", + "kappa_cap_exact": "210887818459/125210887818459", + "local": { + "1": "2364", + "2": "498", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "lower": { + "a": "1687102547671/1000000000000000", + "moment_minus_one": [ + "-132878722014152101651940242208388855198628322389/205286335154086007700485657296583522472211432455751784709750784", + "-132878722014144564665435541252021175527311253277/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-2451179777836534978903301387688255067439984046640809056103024460831/3786864486417188855132465493724129338433341578505109006346420827394790991744466944", + "-2451179777836534978903269016577706983482124939501114109708751220077/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "below" + }, + "upper": { + "a": "210887818459/125000000000000", + "moment_minus_one": [ + "464262869648118488312918374293016418746516428845/205286335154086007700485657296583522472211432455751784709750784", + "464262869648126025299423075276961952808447825381/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "4282069169662425964666567414639775969496698082738408732595515798301/1893432243208594427566232746862064669216670789252554503173210413697395495872233472", + "8564138339324851929333167200390100023069701255318051637685684153267/3786864486417188855132465493724129338433341578505109006346420827394790991744466944" + ], + "sign": "above" + } + }, + { + "claims": [ + 1148 + ], + "id": "W3", + "idle_mass_per_call": "1642", + "kappa_cap_exact": "1687062088401/1001687062088401", + "local": { + "1": "2364", + "2": "498", + "3": "412", + "4": "130", + "5": "82", + "8": "8" + }, + "lower": { + "a": "4217655221/2500000000000", + "moment_minus_one": [ + "-122498388001115797663164837169473877208123182493/102643167577043003850242828648291761236105716227875892354875392", + "-244996776002224058159603062941171800022364838641/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-4519392825797082832262145700949053454342894561706712460867718161755/3786864486417188855132465493724129338433341578505109006346420827394790991744466944", + "-564924103224635354032764166133057269877068248806228143312327629593/473358060802148606891558186715516167304167697313138625793302603424348873968058368" + ], + "sign": "below" + }, + "upper": { + "a": "1687062088401/1000000000000000", + "moment_minus_one": [ + "176079547155420270353105377558004595418744532239/102643167577043003850242828648291761236105716227875892354875392", + "176079547155424038936468683270681844857664208387/102643167577043003850242828648291761236105716227875892354875392" + ], + "refined_moment_minus_one": [ + "3248094342990748549010363048629429917703272721201273549386180333505/1893432243208594427566232746862064669216670789252554503173210413697395495872233472", + "203005896436921784313148702160732972839104467509041125529022225525/118339515200537151722889546678879041826041924328284656448325650856087218492014592" + ], + "sign": "above" + } + }, + { + "claims": [ + 1178 + ], + "id": "W6", + "idle_mass_per_call": "1642", + "kappa_cap_exact": "1686657172581/1001686657172581", + "local": { + "1": "2372", + "2": "494", + "3": "414", + "4": "126", + "5": "84", + "8": "8" + }, + "lower": { + "a": "84332858629/50000000000000", + "moment_minus_one": [ + "-54902427349483654231786357258341044809069710871/29326619307726572528640808185226217496030204636535969244250112", + "-384316991446378040644844344811500123291324958677/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "-7089397184389423133475855076460636624221755031055684904237380156077/3786864486417188855132465493724129338433341578505109006346420827394790991744466944", + "-1772349296097355783368955674199535244903216567651484076475154772821/946716121604297213783116373431032334608335394626277251586605206848697747936116736" + ], + "sign": "below" + }, + "upper": { + "a": "1686657172581/1000000000000000", + "moment_minus_one": [ + "212982355803860587543228047275289685114360900439/205286335154086007700485657296583522472211432455751784709750784", + "212982355803868126520888203299770433629131635365/205286335154086007700485657296583522472211432455751784709750784" + ], + "refined_moment_minus_one": [ + "561261572818526552079000083969137741714731811586890266720816342005/540980640916741265018923641960589905490477368357872715192345832484970141677780992", + "982207752432421466138258241861614959182631217840188905553759045571/946716121604297213783116373431032334608335394626277251586605206848697747936116736" + ], + "sign": "above" + } + }, + { + "claims": [ + 1193, + 1239 + ], + "id": "W7", + "idle_mass_per_call": "545954/333", + "kappa_cap_exact": "843259763177/500843259763177", + "local": { + "1": "783550/333", + "2": "169496/333", + "3": "137362/333", + "4": "42458/333", + "5": "82", + "8": "8" + }, + "lower": { + "a": "1686519526353/1000000000000000", + "moment_minus_one": [ + "-8549806939633903484057850805712327950422587617623/7595594400701182284917969319973590331471823000862816034260779008", + "-8549806939633624519585159043404262372161541039091/7595594400701182284917969319973590331471823000862816034260779008" + ], + "refined_moment_minus_one": [ + "-39429025123761902883292784049480924814186935709424290192112649147535/35028496499358996909975305816948196380508409601172258308704392653401816673636319232", + "-78858050247523805766584969027318371126272997851021663950011201922863/70056992998717993819950611633896392761016819202344516617408785306803633347272638464" + ], + "sign": "below" + }, + "upper": { + "a": "843259763177/500000000000000", + "moment_minus_one": [ + "242000636401702173262655579128541698826207014045/135635614298235397944963737856671255919139696443978857754656768", + "6776017819247800333590702097263486378252066857701/3797797200350591142458984659986795165735911500431408017130389504" + ], + "refined_moment_minus_one": [ + "249990933101115701992283202212671544500054784895740628979495722345415/140113985997435987639901223267792785522033638404689033234817570613607266694545276928", + "249990933101115701992284400355958501508639855583481089733871520969833/140113985997435987639901223267792785522033638404689033234817570613607266694545276928" + ], + "sign": "above" + } + } + ], + "published_strict_cap": "0.001687314840", + "refinement_endpoint_decisions": 18, + "scope": "Frozen PR1264 extraction and coverage-law relaxation arithmetic only. No realized circuit, owner, physical cost, supplier or full multiplication theorem check.", + "selected": { + "calls": 144, + "idle_mass_per_call": "1646", + "live": 14336, + "word": "W2" + }, + "semantic_controls": [ + "idle_rank_52", + "negative_local_count", + "local_mass_over_budget", + "inconclusive_is_not_rejection", + "wrong_live_normalization", + "idle_not_subprofile", + "same_ratio_wrong_absolute_call_count", + "boolean_in_aggregate", + "count_and_mass_preserving_profile_changes_sign", + "missing_centre_changes_sign", + "rank_48_instead_of_51_changes_lower_sign", + "upper_endpoint_used_as_lower", + "lower_endpoint_used_as_upper", + "W7_display_rounding_changes_lower_sign" + ], + "status": "PASS_INDEPENDENT_QUEUE_CEILINGS", + "upstream_blob_count": 21 +} diff --git a/research/independent-queue-ceilings/SOURCES.json b/research/independent-queue-ceilings/SOURCES.json new file mode 100644 index 0000000000..f1f2055ace --- /dev/null +++ b/research/independent-queue-ceilings/SOURCES.json @@ -0,0 +1,42 @@ +{ + "schema_version": 1, + "base_commit": "ee055dc44815497927ef618fc985b93c2dcbda2a", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1", + "sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075" + }, + { + "path": "research/community-frontier1094-audit/ASSEMBLY.json", + "usage": "input", + "git_blob": "5fd676df060f3b450782fdf5ff5f6beb63a5eeb0", + "sha256": "1122cb3a575f8c788345fc1bf4c108ac7c3250fb81a5988671f5eb04b3ab3045" + }, + { + "path": "research/community-frontier1094-audit/INDEPENDENT1094.json", + "usage": "input", + "git_blob": "009a385e26858058a18188364078d162aa6f9519", + "sha256": "301fb8a0e4ab7e3c383ff974c54c08178283b2a3453c5282757f692a3c7a4bfd" + }, + { + "path": "research/complex-queue-ceiling-census/RESULT.json", + "usage": "input", + "git_blob": "756f36f8503eb472a64f39ff132a2c4210238f8a", + "sha256": "c4654c57268ab81e92b8c8d0e00f3f8c8a29a201eafd3e76eea9db78ca8a1135" + }, + { + "path": "research/complex-queue-ceiling-census/SNAPSHOT.json", + "usage": "input", + "git_blob": "fe91d71c2a1140b236d440956c3626a36e7e1160", + "sha256": "b56518da8b94554560c9643a7bca97075622dd8beb0996e75e7b8036cc0b4875" + } + ] +} diff --git a/research/independent-queue-ceilings/TASK.json b/research/independent-queue-ceilings/TASK.json new file mode 100644 index 0000000000..2184c73b56 --- /dev/null +++ b/research/independent-queue-ceilings/TASK.json @@ -0,0 +1,244 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 3, + "base_commit": "ee055dc44815497927ef618fc985b93c2dcbda2a", + "original_card": { + "id": "independent-moment", + "question": "Can one selected pricing or assembly claim be checked by a genuinely independent exact implementation?", + "starting_points": [ + "certificates/selected-result.json" + ], + "methods": [ + "Reconstruct the rank ledger from original operations rather than trusting its aggregate.", + "Implement certified moment inequalities through a different exact enclosure method." + ], + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Record the selected certificate and complex_profile rather than taking a PR headline as input.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Recompute one small part of the ledger or one certified enclosure using an independent implementation.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure" + ] + }, + "scope_status": "changed", + "actual_scope": "Independently reconstruct the frozen PR1264 fourteen-claim ledger split from its pinned JSON source blobs and certify all nine packing-relaxation brackets with a separately written integer-square-root power enclosure. Include the selected PR1094 split and mixed-provider rational counts; do not re-audit physical realizability or claim novelty for the ceiling theorem.", + "scope_change_reason": "The suggested selected-supplier ledger and endpoint audits are already covered by PR1051/1052/1069/1091/1262/1293/1421. This contribution changes the audited object to the frozen PR1264 nine-profile planning census, preserving the card's independent exact-enclosure and source-ledger method. No supplier or architecture is changed.", + "bottleneck_link": "Revision 3 uses the PR1240/1264 ceilings to direct research away from packing. A separately implemented all-profile arithmetic audit makes that planning evidence independently checkable.", + "budget_minutes": 60, + "stop_rule": "One sixty-minute session: stop after the frozen fourteen claims, nine brackets, selected split, exact controls and source binding. Do not extend to the moving PR queue or perform physical supplier replay.", + "outcome": "completed", + "evidence": "RESULT.json: all 14 original aggregate/idle pairs reconstruct nine exact local profiles; all 18 bracket signs pass at 96/192 bits and again at 128/256 bits; selected PR1094 split matches W2. 21 immutable source blobs, 14 semantic controls, 2640 exact power comparisons, 72 zero-saving costs, and 13 corruption/relocation test groups. Four live counts remain template-derived and are explicitly identified.", + "author": "Hanson Sun (bbMisk)", + "ai_assistance": "Substantial OpenAI Codex assistance with scope selection, source inspection, implementation, proof explanation, testing and packaging.", + "open_questions": [ + { + "question": "Can the four template-derived live counts (#1124, #1130, #1178, #1195) be tied to explicit physical inventories at their pinned heads?", + "why_it_matters": "This would replace an inherited source-extraction premise with a direct inventory binding, without changing any certified arithmetic or kappa.", + "first_step": "Locate each frozen template/owner inventory and recount live data families separately from physical roles.", + "blocked_by": "Those additional original inventories and physical reconstruction are outside the twenty-one receipt blobs audited here." + } + ], + "selection": { + "seed": "488b8bb97d866ded02e80a47a4e9d7e1", + "track": "independent-verification", + "scope_key": "c6f2494b197df3bc3591", + "method": "Independent enclosure allowed by the card; rebuild local and idle aggregate split from original pinned JSON receipts." + }, + "entry_overlap": { + "searched_at": "2026-10-14T04:09:02.834266+00:00", + "open_prs": 732, + "discussions": 253, + "complete_pagination": true, + "nearby": [ + "PR1240: predecessor ceiling and atanh/Taylor engine", + "PR1264: predecessor fourteen-claim extraction and nine ceilings", + "PR1605: rank-one block budgets, independently checks baseline only", + "PR1577 and PR706: prior integer-root endpoint method on other profiles", + "Discussion1606: changed port-count lever", + "Discussion1328: changed coverage-law lever" + ], + "limits": "Title/body/comments and top-level package search; no code-diff-wide novelty claim." + }, + "coordination": { + "discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1620", + "claim_expiry_utc": "2026-10-14T06:12:00Z" + }, + "predecessor_credit": [ + { + "pr": 1124, + "author": "jeremykothe2", + "frozen_head": "7c0e3ee0e2d4f6c00d033a4f1dfe4e793e7ecae4" + }, + { + "pr": 1129, + "author": "aliromman", + "frozen_head": "a007dc2e1cc7ae7e8f7ec1343e8883fe43259f21" + }, + { + "pr": 1130, + "author": "jeremykothe2", + "frozen_head": "1558508e5cbff0b7c534d1c4cc7a0fb1b7145c1c" + }, + { + "pr": 1131, + "author": "chafreaky", + "frozen_head": "fcdc42737b703323d8ed550a528141a482e68e96" + }, + { + "pr": 1148, + "author": "tomdif", + "frozen_head": "506ea08dd77388105682044ebb0848ce9b274964" + }, + { + "pr": 1152, + "author": "chafreaky", + "frozen_head": "d376209304f05551f975b0ddf6eaa84edc4ae31a" + }, + { + "pr": 1157, + "author": "rohanarun", + "frozen_head": "c5647aecc8ff44e49776860bb75520bfe3e88f1e" + }, + { + "pr": 1178, + "author": "rohanarun", + "frozen_head": "6d4d0dd1c2df531a3350495dd15e00105793c52d" + }, + { + "pr": 1193, + "author": "jeremydiviney", + "frozen_head": "4e392e90e3fca8f395e35d6a23644920160a9f0f" + }, + { + "pr": 1195, + "author": "mdumitrean", + "frozen_head": "cc1b023b123622abba467c7933f3759f8034c753" + }, + { + "pr": 1196, + "author": "chafreaky", + "frozen_head": "7015903d1d01a2b50ff16f85184edc2686f69e37" + }, + { + "pr": 1204, + "author": "GamingPuzzled", + "frozen_head": "d49f96b75257c8a5eb4862eb99fbaffc738dcc1b" + }, + { + "pr": 1225, + "author": "rohanarun", + "frozen_head": "aac9ce7d83e02989eed76e08815cfd2399214e90" + }, + { + "pr": 1239, + "author": "GamingPuzzled", + "frozen_head": "12e04a30d7381a2a60bf2d7260febcb37f14e454" + } + ], + "nearby_verification_heads": [ + { + "number": 1605, + "author": { + "login": "Arham-Tahir64" + }, + "headRefOid": "488f2ecf1835c6d813e96543656dddf0062fdc9a", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1605" + }, + { + "number": 1577, + "author": { + "login": "Arham-Tahir64" + }, + "headRefOid": "b024b3e12c8911312e1fcf07417e076168602a01", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1577" + }, + { + "number": 706, + "author": { + "login": "arkfx" + }, + "headRefOid": "0f7dbb54948775c010b5e5bc8ab3cf92a52a9b25", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/706" + } + ], + "final_overlap": { + "searched_at": "2026-10-14T04:24:11.975086+00:00", + "coverage": { + "open_prs": { + "fetched_at": "2026-10-14T04:23:32.662797+00:00", + "complete_pagination": true, + "records": 740 + }, + "discussions": { + "fetched_at": "2026-10-14T04:24:11.929868+00:00", + "complete_pagination": true, + "records": 267 + } + }, + "warnings": [], + "matches_total": 8, + "related_matches": [ + { + "kind": "discussion", + "number": 1620, + "head": null, + "url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1620", + "title": "CLAIM: independent integer-root audit of the frozen nine packing ceilings" + }, + { + "kind": "discussion", + "number": 1561, + "head": null, + "url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1561", + "title": "Independent integer-root audit of PR1536 200-digit complex endpoints" + }, + { + "kind": "pr", + "number": 1577, + "head": "b024b3e12c8911312e1fcf07417e076168602a01", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1577", + "title": "Independent integer-root audit of PR1536's 200-digit complex endpoints" + }, + { + "kind": "discussion-comment", + "number": 1166, + "head": null, + "url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1166#discussioncomment-18909652", + "title": "Handoffs and requests for independent checks" + } + ], + "assessment": "No new same-domain audit found in covered titles/bodies/comments. PR1577 and Discussion1561 remain a different endpoint domain; PR1264 is the credited predecessor. This is independent corroboration, not a novelty claim.", + "limits": "Remote PR scope is open PRs including drafts. Closed work is searched through local READMEs, TASK metadata and ledger only. No code diffs or arbitrary package files are searched. Recheck relevant heads before submission." + }, + "publication_base_check": { + "origin_main": "0a201997097b8a89b638f3a2afcb35db4184c8b2", + "required_inputs_unchanged_from_task_base": true + }, + "validation": { + "python": "3.12.13", + "platform": "macOS arm64", + "registered_replay": "passed", + "test_groups": 13, + "primary_census_replay": "passed unchanged", + "selected_record_check": "passed unchanged", + "hosted_ci": "not run locally" + } +} diff --git a/research/independent-queue-ceilings/UPSTREAM.json b/research/independent-queue-ceilings/UPSTREAM.json new file mode 100644 index 0000000000..d42aa5ce54 --- /dev/null +++ b/research/independent-queue-ceilings/UPSTREAM.json @@ -0,0 +1,173 @@ +{ + "repository": "CrocSwap/integer-mult-bounds", + "records": [ + { + "head": "12e04a30d7381a2a60bf2d7260febcb37f14e454", + "path": "research/mixed-fusions-x54-t37/CLAIM.json", + "git_blob": "6c8a74450ac18d3752080e72a00a13dc36005561", + "sha256": "b78546b8b23e36c0ba87e3f16c58a530f5efec4f65e250e95b717cd1dc5dc739", + "local": "inputs/6c8a74450ac18d3752080e72a00a13dc36005561.json.gz", + "size": 1241 + }, + { + "head": "1558508e5cbff0b7c534d1c4cc7a0fb1b7145c1c", + "path": "research/gauge44-ends7-x54-t16/RESULT.json", + "git_blob": "b59a7802f700b5b91eef5e8b13829b05897051c0", + "sha256": "e84145a136dce8483034ed536795568dfc15ede3e44f5e07ff86620eec4dbd98", + "local": "inputs/b59a7802f700b5b91eef5e8b13829b05897051c0.json.gz", + "size": 3827 + }, + { + "head": "4e392e90e3fca8f395e35d6a23644920160a9f0f", + "path": "research/mixed-x54-t37/CLAIM.json", + "git_blob": "db33352b51efa9bc8538dd65dd6abc867dd587cc", + "sha256": "3f3f69063862ccc9c6f2a4d0deb57c2b17e687313380a16f3213ba02eb0b36de", + "local": "inputs/db33352b51efa9bc8538dd65dd6abc867dd587cc.json.gz", + "size": 1318 + }, + { + "head": "506ea08dd77388105682044ebb0848ce9b274964", + "path": "research/k8-joint-entrances/SPEC.json", + "git_blob": "9aeea5c043aafa9ce0cd5f05fe6b404de5d5454f", + "sha256": "55bdb68d5d126c6be0e0acc419bd62301a978afd514f9834ed1e08b1aa4f563e", + "local": "inputs/9aeea5c043aafa9ce0cd5f05fe6b404de5d5454f.json.gz", + "size": 24422 + }, + { + "head": "506ea08dd77388105682044ebb0848ce9b274964", + "path": "research/k8-joint-entrances/evidence/ASSEMBLY.json", + "git_blob": "2a7f39918bd9ed4a01543e2de65343fe53cbcea3", + "sha256": "ebac2870cf0f52d6ac0e8213bb766f4b980a253d6d9d207a0e29bafca8121b4b", + "local": "inputs/2a7f39918bd9ed4a01543e2de65343fe53cbcea3.json.gz", + "size": 85004 + }, + { + "head": "6d4d0dd1c2df531a3350495dd15e00105793c52d", + "path": "research/k8-dem-x54/CLAIM.json", + "git_blob": "bf5cc64c1b337e0979a435703c3ce7a721957cd6", + "sha256": "4d64a5b1ff04dfd0a25d7ca0ea551a5c314c4dc9fdd6a3bc99f93989e682f8c4", + "local": "inputs/bf5cc64c1b337e0979a435703c3ce7a721957cd6.json.gz", + "size": 1173 + }, + { + "head": "6d4d0dd1c2df531a3350495dd15e00105793c52d", + "path": "research/k8-dem-x54/evidence/ASSEMBLY.json", + "git_blob": "e7e2fa84d6b05cae0879c09741ea5aa799297751", + "sha256": "8763074bfa264d09fb0b9689a046c71e5d95befab294a1016dc0a328686fe4ee", + "local": "inputs/e7e2fa84d6b05cae0879c09741ea5aa799297751.json.gz", + "size": 85674 + }, + { + "head": "7015903d1d01a2b50ff16f85184edc2686f69e37", + "path": "research/complex-t37-joint-x54-owners/CLAIM.json", + "git_blob": "9696f82ff045a3e88ec7a585664bf6d2ed5545dc", + "sha256": "2e26c180b3d7027740f4e0b484c1332ead0ed16605a175b992dbc0f5a6be0b5c", + "local": "inputs/9696f82ff045a3e88ec7a585664bf6d2ed5545dc.json.gz", + "size": 1319 + }, + { + "head": "7c0e3ee0e2d4f6c00d033a4f1dfe4e793e7ecae4", + "path": "research/gauge44-ends7-x54-t16/RESULT.json", + "git_blob": "087f35df23bd847ec4437decb4796486d231f33a", + "sha256": "0cabd7661da0d91e9141f6d4bfe8530e4c29cb30add3c67aecb71e2b5ffb9120", + "local": "inputs/087f35df23bd847ec4437decb4796486d231f33a.json.gz", + "size": 3915 + }, + { + "head": "a007dc2e1cc7ae7e8f7ec1343e8883fe43259f21", + "path": "research/r480-owner-optimum/data/SPEC.json", + "git_blob": "579a28450ef4a8b918aab3a369b2a1f9bc2a8bb2", + "sha256": "7dabffb3f25e95233025e55235b76db51d96fa070d6f5bfd0a28005f5efa2642", + "local": "inputs/579a28450ef4a8b918aab3a369b2a1f9bc2a8bb2.json.gz", + "size": 39346 + }, + { + "head": "a007dc2e1cc7ae7e8f7ec1343e8883fe43259f21", + "path": "research/r480-owner-optimum/evidence/ASSEMBLY.json", + "git_blob": "0e696d96ee15219b1b9008c9162649ccf906a3d9", + "sha256": "d2ef417968ea68bd5abc0ad8d2d27ba99bfcede6cff8743a25ec34358a54cb9b", + "local": "inputs/0e696d96ee15219b1b9008c9162649ccf906a3d9.json.gz", + "size": 84283 + }, + { + "head": "aac9ce7d83e02989eed76e08815cfd2399214e90", + "path": "research/joint-x54-t37/CANDIDATE.json", + "git_blob": "79190f04e19b1a6bc4d277f0ae06e1c8acac10d4", + "sha256": "5f28fa2a491d100f266f1ab15e7acc7186a1a671afe4e631dca589f739da4ff3", + "local": "inputs/79190f04e19b1a6bc4d277f0ae06e1c8acac10d4.json.gz", + "size": 1822 + }, + { + "head": "aac9ce7d83e02989eed76e08815cfd2399214e90", + "path": "research/joint-x54-t37/evidence/strict/ASSEMBLY.json", + "git_blob": "5b3cdd2785bec7aad0fe91d704c76db8bab0ce6a", + "sha256": "5cb1346fe9c50314c6340f2ce7963a7fd3dbc73e3a4698e85c6c4f634c8c89ad", + "local": "inputs/5b3cdd2785bec7aad0fe91d704c76db8bab0ce6a.json.gz", + "size": 85542 + }, + { + "head": "c5647aecc8ff44e49776860bb75520bfe3e88f1e", + "path": "research/k8-x54-t37/data/SPEC.json", + "git_blob": "15c3572aa90d618dc41801e6fb4b58bab31d41c0", + "sha256": "2ada5abf34eee9a5d273fb07b11e4b6ddd55e64cb3a9e5e54bcf0b51f274488f", + "local": "inputs/15c3572aa90d618dc41801e6fb4b58bab31d41c0.json.gz", + "size": 39338 + }, + { + "head": "c5647aecc8ff44e49776860bb75520bfe3e88f1e", + "path": "research/k8-x54-t37/evidence/k8-x54/ASSEMBLY.json", + "git_blob": "da4786ac7f77ed5a0b2eab886ef5c4c83022b7ff", + "sha256": "66e18095164c9036ad0b698b3778e9d5d46ad88b5dd6f6ee1a3b6f91c51ecde1", + "local": "inputs/da4786ac7f77ed5a0b2eab886ef5c4c83022b7ff.json.gz", + "size": 84206 + }, + { + "head": "cc1b023b123622abba467c7933f3759f8034c753", + "path": "research/k8-source-holder-fusions/CLAIM.json", + "git_blob": "b7853d4e8faba09df248f3e7be0843862aa1e2b7", + "sha256": "f9729f9a42b9f3f1e438028f0e2338ebb14a19933faa8230cd8c3f530c95751f", + "local": "inputs/b7853d4e8faba09df248f3e7be0843862aa1e2b7.json.gz", + "size": 1632 + }, + { + "head": "cc1b023b123622abba467c7933f3759f8034c753", + "path": "research/k8-source-holder-fusions/evidence/ASSEMBLY.json", + "git_blob": "f126fc2c7fc41eadbf41a0369db0f66789a99419", + "sha256": "14bca9de8823ef199134906755bba79c1cfda044296634263097e283d3a8bc49", + "local": "inputs/f126fc2c7fc41eadbf41a0369db0f66789a99419.json.gz", + "size": 85743 + }, + { + "head": "d376209304f05551f975b0ddf6eaa84edc4ae31a", + "path": "research/complex-t37-ends7-owners/CLAIM.json", + "git_blob": "86721e03e62ef7873fca425a765ec338862f6e0d", + "sha256": "82923581c50be03d09282ec43a6035167a802473f96d28c6d65cc4cce2ef83d0", + "local": "inputs/86721e03e62ef7873fca425a765ec338862f6e0d.json.gz", + "size": 1073 + }, + { + "head": "d49f96b75257c8a5eb4862eb99fbaffc738dcc1b", + "path": "research/k8-joint-x54-t37/data/SPEC.json", + "git_blob": "449d9554d625c0d7aefe5ec2cd4845d7a03e957f", + "sha256": "e0e563af9789d76dd641bfe38eddc785774c55aaf5d9c3908518e288e6a1c5e8", + "local": "inputs/449d9554d625c0d7aefe5ec2cd4845d7a03e957f.json.gz", + "size": 39347 + }, + { + "head": "d49f96b75257c8a5eb4862eb99fbaffc738dcc1b", + "path": "research/k8-joint-x54-t37/evidence/ASSEMBLY.json", + "git_blob": "5ed2f48baaa9a2eefc151e065256f58fcfac9711", + "sha256": "71a9e13b96772c0d6338f109d1210e2ca17e8cfeab87004e3c67fca24dbc2fe2", + "local": "inputs/5ed2f48baaa9a2eefc151e065256f58fcfac9711.json.gz", + "size": 85539 + }, + { + "head": "fcdc42737b703323d8ed550a528141a482e68e96", + "path": "research/complex-t37-seven-slot-owners/CLAIM.json", + "git_blob": "084f76cf2381bb161a580bb85e5f43f20d9e21eb", + "sha256": "e02bfcebc992818318575c331309eaf96456786a3d93567853b4ec83aa194eaf", + "local": "inputs/084f76cf2381bb161a580bb85e5f43f20d9e21eb.json.gz", + "size": 1204 + } + ] +} diff --git a/research/independent-queue-ceilings/VERIFY.json b/research/independent-queue-ceilings/VERIFY.json new file mode 100644 index 0000000000..f9e4f5ff96 --- /dev/null +++ b/research/independent-queue-ceilings/VERIFY.json @@ -0,0 +1,35 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/community-frontier1094-audit/ASSEMBLY.json", + "research/community-frontier1094-audit/INDEPENDENT1094.json", + "research/complex-queue-ceiling-census/RESULT.json", + "research/complex-queue-ceiling-census/SNAPSHOT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "All frozen source extractions, nine exact brackets at two precisions, selected split, semantic controls, direct algebraic oracle and complete receipt." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/test_verify.py", + "-v" + ], + "timeout_seconds": 120, + "checks": "13 arithmetic, schema, source-inventory, corruption and optimized read-only relocation tests." + } + ] +} diff --git a/research/independent-queue-ceilings/bounds.py b/research/independent-queue-ceilings/bounds.py new file mode 100644 index 0000000000..a1cdb12528 --- /dev/null +++ b/research/independent-queue-ceilings/bounds.py @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: Apache-2.0 +"""Directed integer-root enclosures; no logarithms, exponentials or floats. + +Written for this audit by Hanson Sun with OpenAI Codex assistance. The method +has precedents in PR706/PR1577; no code from either implementation is imported. +""" +from fractions import Fraction as Q +from functools import lru_cache +from math import isqrt + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def ceil_div(n, d): + return -(-n // d) + + +def sqrt_up(n): + r = isqrt(n) + return r + (r * r != n) + + +@lru_cache(maxsize=None) +def root_ladder(n, d, exponent_bits, precision): + """Enclose (n/d)^(1/2^j), j=1..exponent_bits, scaled by 2^precision.""" + require(type(n) is int and type(d) is int and n >= d > 0, + 'root base must be a rational >= 1') + require(type(exponent_bits) is int and type(precision) is int + and 1 <= exponent_bits <= 1024 and 1 <= precision <= 2048, + 'unsupported root precision') + scale = 1 << precision + lo, hi = n * scale // d, ceil_div(n * scale, d) + ladder = [] + for _ in range(exponent_bits): + lo, hi = isqrt(lo * scale), sqrt_up(hi * scale) + ladder.append((lo, hi)) + return tuple(ladder) + + +def rational_power(n, d, a, exponent_bits=96, precision=192): + """Return rational lo <= (n/d)^a <= hi for n/d >= 1 and 0 <= a <= 1. + + The exponent is bracketed by adjacent dyadics. Each selected binary digit + multiplies an independently outward-rounded member of the root ladder. + All intermediate products are rounded outwards before the next product. + """ + require(type(a) in (int, Q) and Q(0) <= a <= Q(1), 'exponent outside [0,1]') + a = Q(a) + roots = root_ladder(n, d, exponent_bits, precision) + scale, denominator = 1 << precision, 1 << exponent_bits + low_k = a.numerator * denominator // a.denominator + high_k = ceil_div(a.numerator * denominator, a.denominator) + + def dyadic(k, upper): + if k == denominator: + return ceil_div(n * scale, d) if upper else n * scale // d + value = scale + for j, pair in enumerate(roots, 1): + if k & (1 << (exponent_bits - j)): + product = value * pair[upper] + value = ceil_div(product, scale) if upper else product // scale + return value + + return Q(dyadic(low_k, False), scale), Q(dyadic(high_k, True), scale) + + +def child_cost(rank, width, a, exponent_bits=96, precision=192): + require(type(rank) is int and type(width) is int and 0 < rank < width, + 'child rank must lie strictly between zero and width') + lo, hi = rational_power(width, rank, a, exponent_bits, precision) + return Q(rank, width) * lo, Q(rank, width) * hi + + +def relaxation(local, a, *, width=73, families=896, stages=9, centre=64, + cap=51, exponent_bits=96, precision=192): + """Fully charged local profile plus optimistically concentrated idle mass. + + This is only the PR1240 coverage-law relaxation. Physical supplier costs + and other interfaces are not inferred from this numerical calculation. + """ + require(type(width) is int and type(cap) is int and 0 < cap < width + and 2 * cap * cap < width * width, 'invalid halving-guard cap') + require(type(families) is int and families > 0 + and type(stages) is int and stages > 0, 'invalid family normalization') + require(type(centre) in (int, Q) and centre >= 0, 'invalid centre charge') + require(type(local) is dict and bool(local), 'empty local profile') + for rank, count in local.items(): + require(type(rank) is int and 0 < rank < width + and type(count) in (int, Q) and count >= 0, 'invalid local child') + w = Q(families, stages) + local_mass = sum(rank * count for rank, count in local.items()) + idle_mass = (width - 1) * w + centre - local_mass + require(idle_mass >= 0, 'local mass exceeds coverage budget') + lo = hi = Q(0) + for rank, count in sorted(local.items()): + lower, upper = child_cost(rank, width, a, exponent_bits, precision) + lo += count * lower + hi += count * upper + lower, upper = child_cost(cap, width, a, exponent_bits, precision) + lo += idle_mass / cap * lower + hi += idle_mass / cap * upper + return lo / w, hi / w + + +def side(interval): + lo, hi = interval + require(lo <= hi, 'reversed interval') + if hi < 1: + return 'below' + if lo > 1: + return 'above' + raise ValueError('interval does not separate one') diff --git a/research/independent-queue-ceilings/inputs/084f76cf2381bb161a580bb85e5f43f20d9e21eb.json.gz b/research/independent-queue-ceilings/inputs/084f76cf2381bb161a580bb85e5f43f20d9e21eb.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b29985881db09fddb408495609ae58a56e99c785 GIT binary patch literal 597 zcmV-b0;>HViwFP!00002|8-PNZ{r{kz4uojpOcm^8>qC`RZn}`yG1dnQ88GUG|g81 z?>pFu>sGA~7Vp8ldCZLcc7ss$tjAGT_oyO`;8+ROD1~dL?g;++RJ%2x?W}Qw_9YPC zV*Dj|IcefBdi&b?c(Un|qJe!XSVL4Jv1|zYCeJ3>qsyCc!5F6kGgV6^Ij4*Zu6`1@ zN?cuxDIT1+AoK<_Y!Fz22T9~^At(@pDWdp=V1?jJ*3E_BKyX3j71w~_Hu#EV!A*0G z=LHkOFa`WRyZH+Y6Z0}fZ>MsghRfi^tM&{ri7c%Ma z+zxswk(6Ue7r#|!56-wed$?wB-PaP-4W&Q(9TSMWw$O*7E=0Zf>~(swUHf^LV9Gza zY*Re7CfY;sVZ-bMI<{!|SWbM~70Lam|H*IpdvL5XYX~=!f&g?S`=X8LqI&=u;{2sS1=-J(Ac jd~GemMoe}@Z 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 GNdW-E2WV6P literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/15c3572aa90d618dc41801e6fb4b58bab31d41c0.json.gz b/research/independent-queue-ceilings/inputs/15c3572aa90d618dc41801e6fb4b58bab31d41c0.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..caff0817bec751d11ec0d2db2f8fd6e668c67696 GIT binary patch literal 4263 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

u#wbykVZK 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 BQ~Uq` literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/5b3cdd2785bec7aad0fe91d704c76db8bab0ce6a.json.gz b/research/independent-queue-ceilings/inputs/5b3cdd2785bec7aad0fe91d704c76db8bab0ce6a.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..049db8e95d62639460ce433f5460d09acb7f76cc GIT binary patch literal 17547 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 m_s{=6Uks4|;*>{oyJ)&B=wdgW{;P5}VPaiA^$ literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/5ed2f48baaa9a2eefc151e065256f58fcfac9711.json.gz b/research/independent-queue-ceilings/inputs/5ed2f48baaa9a2eefc151e065256f58fcfac9711.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9ebd49302cfae742de7bd949867a894f1a413eac GIT binary patch literal 17558 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 literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/6c8a74450ac18d3752080e72a00a13dc36005561.json.gz b/research/independent-queue-ceilings/inputs/6c8a74450ac18d3752080e72a00a13dc36005561.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6b10a88e234d39f2175a3364dc6efe6e5a806f93 GIT binary patch literal 709 zcmV;$0y_O4iwFP!00002|9w+UPa821{VOYB@( zOcE4>aH*a>A&ME2-4wIgWgn+}jPuq{Nu?z1gwzt;vJ0*+M;V-+$RHg^&=dhnYa7w`wC}F@)Lte z@xk=bZ7NxqG++h0BkDMvY=cqRZ3ZOe zxT6B9lVWgnxr9EHB=>O!j_9MGd~r=5r@`08+fdKBq+MUH%?@@hHD&9Xze7pYg6aD!Mo5Nzj*#rOp8ZcdZ literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/79190f04e19b1a6bc4d277f0ae06e1c8acac10d4.json.gz b/research/independent-queue-ceilings/inputs/79190f04e19b1a6bc4d277f0ae06e1c8acac10d4.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..24bf57189175a869ce7402dad40cdb41f24e07ff GIT binary patch literal 961 zcmV;y13vs8iwFP!00002|D9A#Z`(K!z2{dDKHCnzN$sADG>dw%>jts0*qcC;qnNEM z3X&XeTJ*nnD94Ubv^}g2Hiw+|X6A7?Uv3DQ^n)7?{p2??d04F1<-bane|}i5Hs$?l z^SD^u-LK1yFy(5oS^jfhE>`c#_2zMTw<#Cz{$8%v%MYu`H1m9NZR;|P5Q=eTn4yId z#@urH{dWZ@1NgXibq3NorA!;8sZ~}_I)1@T+-A7sLd)sNymzFHz%?0hD3VqCvk3N3p+vf04p*D=)A z^-%u*c>Fq^px5#E591wU779-y}Sj>3{qYZTnvMTuvcvCQf84el=Q+LLk&N! z!-|VECkkQY1%}nvxvzx~C;hQ`Mw6+rib;Sf`Z$b0E9vPn>$LruYQ|bB^_6Z+tG5iq zD3-DMT0O}MWv|NTrZCqMa;<++!7+8A#NHoJ*0SF@u5@lN=L=O;g$ioRgr-0x1w|`q zX$S^_x3ogjXr`$b6pRSEqFXAt(ar;ZeSTw){3HUaG$uxQA+`auH^4&0g9O0-m!1dU zf}JLRVa)K+A-FX@4ztOrJ{jJstYgx zo~k#nE-qju0_B*GGp^DG%f!q$$Y3hwI6gGzImKxMZ(u>o4rfH0FLCmCf46+NpW$$u zK@)m2|JbMI2nX zAV^F;rq~QfKXk6~K(e&NHGv>Q^aH^mN?h2-zDF|By1s|-J9&7_Ws-Dkpd)+Nj)>NE zNJE|=?P2I%FxCN`$uSN)(#EF2HT>t0({)3vaM6#j*aT>?JjB)+bjcq5`*gqoHG}*@ zk*Epj*w4wLu4jGxoD1Ez*zesmulA{#)ou&*?fx*hZ4I*%8Yx{JKfA2PlpJ>nPx2!p zyVMV{d76?oE1v7S9b603*DP};&(OV0F-up!4AGOUQD5bF506R}+2zn-(LSewi&62h zC_J|X*~WpqXS4T;pl*kKn~!@$?Q!y?=Nr-@sPEO{x$p5 jk<(KreY=AWX07v|um<957x(kY&DWc6%xjf}9tQvbT%+k0 literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/86721e03e62ef7873fca425a765ec338862f6e0d.json.gz b/research/independent-queue-ceilings/inputs/86721e03e62ef7873fca425a765ec338862f6e0d.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..36a475235f32aa340e76c6fa2cdcdc4708ef53e2 GIT binary patch literal 613 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 WEfF^(SY5pP^6uYJB>?2}4gdgc04yi~ literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/b7853d4e8faba09df248f3e7be0843862aa1e2b7.json.gz b/research/independent-queue-ceilings/inputs/b7853d4e8faba09df248f3e7be0843862aa1e2b7.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..2af499d8806e5b511d65623d5be594f84f2efd9b GIT binary patch literal 907 zcmV;619bc!iwFP!00002|AkcBZreBzefL)o-dD>OB~q6z_8~}Jq}a3x;s)rOK$Dck z4J`^J6~`_5?>nSoJKZgI4cOq2b2)S7jK9y&+LxxXwxR9ISj+W^~QD#L1NwX-!I+5kl&pU7Z;%m$8`# zj7fz$$pmV#s062VR&j}}bdp)#t)8mnFQa;&$lhDlbLnEP9aDWXNJ!KBQ&C#hSzhLZ z;v5s2R?(50{h;Mbqs>9u;7M>@;Ihbz3_~kLQD9t^tL)!IT-ewue~HIso|CLh^O{z5 zMM##DlGH1lrvH&)r_Gk>X0WDJI&}Vhh9DIj^1QBbwg_ehW|`5lh*l03t$@F15wLKb z)zcdd7N%Jmt?Jd9l0?rbCOnWDS2Oe@fY65j8bg-T>WqM<R6xQ>#HW{ro8FE4fC0L2jS`?P6-Z-IWN#HZe+BQj8KRW0 zO)r#Jre_-U%&TXKC09{S=PK$QWP@(uw7M>H^He@6`b zTFdqTn%S_%t@0jFL@M-giPo=c98*j9PTmXn5701cz#@DH=5O(j;pf#yUvPoUp_kU3 zk&XR?MWFi!SV#oBiX6yBD@Zm$@E`~&mcfD6=b=2qyOn&jR)*Bvz<~!k7BR;bdIc7g z7=bomtz&jKfxf}X4SkdLO6$a_Zz08g0NvO{IPFcJXttGlwI4m(!dNHr1B+UHV^gIA zj6x%f(R=apx}RFZ+Hj-W&ocyMh*9%PP~1HBF*7wGD<32eNPA@Bo3 h+#_SB0p7xJ5tr7h7E~Ramh;(<+26Vw3dCRr003gI#OMG3 literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/bf5cc64c1b337e0979a435703c3ce7a721957cd6.json.gz b/research/independent-queue-ceilings/inputs/bf5cc64c1b337e0979a435703c3ce7a721957cd6.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..993994b05b38f9bc1f4252b5fc2a8285efa10b99 GIT binary patch literal 643 zcmV-}0(|`+iwFP!00002|BX{kZ`&{oz4uoT*~ zX1=_h-!6)a`OV$;*>YB#U*23V7PL3gH%YVFSJS9jKVNVLvIg5 zf;{I36!nO`Ax?;e$pOWLvbUqG2Nb>zR%@kKfAfks%foEsmNFJ4BfmILSTc6Z80RBT z76y4TvSlnj7C+>_akJqn?7b{meJCag{*P))-S*tcg>EY8q;7z)RW8EmzwpjBOehCm+*oROkgEA%(Jm5~)#r5$`B zg(v_+AE8ALWQC2B^oD>`fd$c2@L)uZ_NxaQZ5>vy+8u4XrreMwZ7x{?dfT9ZTC`JG zkc2Qm_c5Zc$O0;h+YK5r*~-dotOsOeL{lP#19fk=MqQ&bI}irn4W@8+AIJHz4^QMo zMR&#^DL|3^!^EBl20n;Q6f{63{&vQMVZfe0uf`*xg dX%OXcmS>!Y5l?yk4~di4lV7LY1c{Xd008OJF~a}= literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/da4786ac7f77ed5a0b2eab886ef5c4c83022b7ff.json.gz b/research/independent-queue-ceilings/inputs/da4786ac7f77ed5a0b2eab886ef5c4c83022b7ff.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8405975d4238c6e7630f86e2482a64313af29b11 GIT binary patch literal 17684 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

dKz#uO{dlQwR=3Yf-45e& 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 literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/inputs/f126fc2c7fc41eadbf41a0369db0f66789a99419.json.gz b/research/independent-queue-ceilings/inputs/f126fc2c7fc41eadbf41a0369db0f66789a99419.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f432e26a34d6c40222dcf364b6fcfd9ed2920ef GIT binary patch literal 18104 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 Xe6+3L(#p9)?_ literal 0 HcmV?d00001 diff --git a/research/independent-queue-ceilings/test_verify.py b/research/independent-queue-ceilings/test_verify.py new file mode 100644 index 0000000000..d556ad9c94 --- /dev/null +++ b/research/independent-queue-ceilings/test_verify.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Failure controls for arithmetic, extracted data, source pins and replay.""" +from copy import deepcopy +from fractions import Fraction as Q +import gzip +import hashlib +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import unittest +from unittest.mock import patch + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import bounds as B +import verify as V + + +class AuditTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.external = V.load_external() + cls.snapshot = cls.external[V.SNAPSHOT] + cls.census = cls.external[V.CENSUS] + cls.upstream = V.load_upstream(cls.snapshot) + + def run_audit(self, snapshot=None, census=None, upstream=None): + return V.audit(self.snapshot if snapshot is None else snapshot, + self.census if census is None else census, + self.upstream if upstream is None else upstream, + self.external[V.ASSEMBLY], self.external[V.SELECTED_AUDIT]) + + def test_floor_square_root_is_not_an_upper_bound(self): + # Integer-power comparison, independent of the root recurrence, must + # detect an upper rounding replaced by floor at deliberately low precision. + B.root_ladder.cache_clear() + with patch.object(B, 'sqrt_up', B.isqrt): + _, hi = B.rational_power(2, 1, Q(1, 2), 1, 8) + self.assertLess(hi * hi, 2) + B.root_ladder.cache_clear() + lo, hi = B.rational_power(2, 1, Q(1, 2), 1, 8) + self.assertLessEqual(lo * lo, 2) + self.assertGreaterEqual(hi * hi, 2) + + def test_wrong_exponent_bit_order_breaks_exact_power(self): + B.root_ladder.cache_clear() + original = B.root_ladder + with patch.object(B, 'root_ladder', lambda *a: tuple(reversed(original(*a)))): + lo, hi = B.rational_power(3, 1, Q(1, 4), 2, 64) + self.assertFalse(lo**4 <= 3 <= hi**4) + + def test_lost_exponent_ceiling_breaks_non_dyadic_power(self): + # A floor dyadic exponent alone is insufficient for an upper bound. + _, hi = B.rational_power(2, 1, Q(1, 4), 2, 64) + self.assertLess(hi**3, 2) # cannot enclose 2^(1/3) + lo, hi = B.rational_power(2, 1, Q(1, 3), 2, 64) + self.assertLessEqual(lo**3, 2) + self.assertGreaterEqual(hi**3, 2) + + def test_unresolved_and_exact_equality_do_not_decide(self): + for interval in ((Q(9, 10), Q(11, 10)), (Q(1), Q(1)), (Q(2), Q(1))): + with self.assertRaises(ValueError): + B.side(interval) + + def test_fractional_mixed_profile_is_not_rounded(self): + census = deepcopy(self.census) + row = next(w for w in census['words'] if w['id'] == 'W7') + self.assertEqual(Q(row['local_profile_per_call']['3']), Q(137362, 333)) + self.assertEqual(Q(row['local_profile_per_call']['4']), Q(42458, 333)) + # Even the README's close display rounding, not just flooring to an + # integer, is not the exact mixed-provider profile. + row['local_profile_per_call']['3'] = '825/2' + with self.assertRaisesRegex(ValueError, 'unknown or repeated'): + self.run_audit(census=census) + + def test_omitted_profile_or_claim_fails(self): + census = deepcopy(self.census); census['words'].pop() + with self.assertRaisesRegex(ValueError, 'profile domain'): + self.run_audit(census=census) + snap = deepcopy(self.snapshot); snap['claims'].pop() + with self.assertRaisesRegex(ValueError, 'claim domain'): + self.run_audit(snapshot=snap) + + def test_wrong_membership_and_ceiling_fail(self): + census = deepcopy(self.census) + census['words'][0]['claims'][0] = 9999 + with self.assertRaisesRegex(ValueError, 'membership'): + self.run_audit(census=census) + census = deepcopy(self.census) + census['words'][0]['a_ceiling'] = str(Q(census['words'][0]['a_ceiling']) - V.GRID) + with self.assertRaisesRegex(ValueError, 'endpoint sign'): + self.run_audit(census=census) + + def test_wrong_source_provider_count_fails(self): + upstream = deepcopy(self.upstream) + claim = next(c for c in self.snapshot['claims'] if c['pr'] == 1195) + upstream[claim['head'], claim['profile_file']]['provider_counts']['gauge44'] += 9 + with self.assertRaisesRegex(ValueError, 'call count'): + V.reconstruct(claim, upstream) + + def test_missing_absolute_count_is_not_inferred_from_ratio(self): + # This is stronger than accepting W/N=896/9 without an original N. + claim = next(c for c in self.snapshot['claims'] if c['pr'] == 1124) + upstream = deepcopy(self.upstream) + del upstream[claim['head'], claim['profile_file']]['complete_invocations'] + with self.assertRaisesRegex(ValueError, 'source call counts'): + V.reconstruct(claim, upstream) + + def test_schema_rejects_boolean_negative_and_float(self): + for value in (True, -1, 1.0): + with self.assertRaises(ValueError): + V.histogram({'1': value}) + for a in (-Q(1, 10), Q(11, 10), True, 0.01): + with self.assertRaises(ValueError): + B.rational_power(73, 1, a) + + def test_source_corruption_and_inventory_omission(self): + with tempfile.TemporaryDirectory() as name: + temp = Path(name) + shutil.copytree(HERE, temp / 'package') + package = temp / 'package' + manifest = json.loads((package / 'UPSTREAM.json').read_text()) + row = manifest['records'][0] + target = package / row['local'] + raw = gzip.decompress(target.read_bytes()) + # Same-length content corruption; recompression headers are irrelevant. + raw = raw.replace(b'"kappa"', b'"KAPPA"', 1) + target.write_bytes(gzip.compress(raw, mtime=0)) + with self.assertRaisesRegex(ValueError, 'SHA256'): + V.load_upstream(self.snapshot, package) + # Even changing the secondary SHA256 cannot defeat the original Git blob. + row['sha256'] = hashlib.sha256(raw).hexdigest() + (package / 'UPSTREAM.json').write_text(V.canonical(manifest)) + with self.assertRaisesRegex(ValueError, 'Git blob'): + V.load_upstream(self.snapshot, package) + manifest['records'].pop() + (package / 'UPSTREAM.json').write_text(V.canonical(manifest)) + with self.assertRaisesRegex(ValueError, 'inventory'): + V.load_upstream(self.snapshot, package) + + def test_external_source_drift_and_inventory_omission(self): + with tempfile.TemporaryDirectory() as name: + temp = Path(name) + for relative in V.REQUIRED: + target = temp / relative + target.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(V.ROOT / relative, target) + package = temp / 'package'; package.mkdir() + shutil.copyfile(HERE / 'SOURCES.json', package / 'SOURCES.json') + target = temp / V.SNAPSHOT + target.write_bytes(target.read_bytes() + b' ') + with self.assertRaisesRegex(ValueError, 'source drift'): + V.load_external(temp, package) + sources = json.loads((package / 'SOURCES.json').read_text()) + sources['files'] = [r for r in sources['files'] if r['path'] != V.SNAPSHOT] + (package / 'SOURCES.json').write_text(V.canonical(sources)) + with self.assertRaisesRegex(ValueError, 'inventory'): + V.load_external(temp, package) + + def test_optimized_read_only_relocation_and_receipt_corruption(self): + with tempfile.TemporaryDirectory() as name: + root = Path(name) + package = root / 'research' / HERE.name + shutil.copytree(HERE, package) + for relative in V.REQUIRED: + target = root / relative + target.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(V.ROOT / relative, target) + files = sorted(p for p in root.rglob('*') if p.is_file()) + before = {p: p.read_bytes() for p in files} + for p in files: + p.chmod(0o444) + cmd = [sys.executable, '-I', '-O', '-B', str(package / 'verify.py')] + passed = subprocess.run(cmd, cwd=root, capture_output=True, text=True, timeout=30) + self.assertEqual(passed.returncode, 0, passed.stderr) + self.assertIn('PASS_INDEPENDENT_QUEUE_CEILINGS', passed.stdout) + self.assertEqual(before, {p: p.read_bytes() for p in files}) + receipt = package / 'RESULT.json'; receipt.chmod(0o644) + data = json.loads(receipt.read_text()) + data['endpoint_decisions'] = True + receipt.write_text(V.canonical(data)) + failed = subprocess.run(cmd, cwd=root, capture_output=True, text=True, timeout=30) + self.assertNotEqual(failed.returncode, 0) + self.assertIn('receipt differs', failed.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/research/independent-queue-ceilings/verify.py b/research/independent-queue-ceilings/verify.py new file mode 100644 index 0000000000..5c1744434a --- /dev/null +++ b/research/independent-queue-ceilings/verify.py @@ -0,0 +1,348 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Independent offline audit of the frozen PR1264 census; see README.md. + +Hanson Sun with substantial OpenAI Codex assistance. No predecessor executable +is imported. Default operation checks the complete deterministic receipt; +--write explicitly regenerates only this package's RESULT.json. +""" +import argparse +from copy import deepcopy +from fractions import Fraction as Q +import gzip +import hashlib +import json +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from bounds import child_cost, rational_power, relaxation, require, side + +ROOT = HERE.parents[1] +SNAPSHOT = 'research/complex-queue-ceiling-census/SNAPSHOT.json' +CENSUS = 'research/complex-queue-ceiling-census/RESULT.json' +ASSEMBLY = 'research/community-frontier1094-audit/ASSEMBLY.json' +SELECTED_AUDIT = 'research/community-frontier1094-audit/INDEPENDENT1094.json' +REQUIRED = {SNAPSHOT, CENSUS, ASSEMBLY, SELECTED_AUDIT} +GRID = Q(1, 10**15) + + +def canonical(value): + return json.dumps(value, indent=2, sort_keys=True) + '\n' + + +def same(a, b, message): + # JSON comparison must distinguish bool/int and float/int, unlike ==. + require(canonical(a) == canonical(b), message) + + +def load_external(root=ROOT, package=HERE): + sources = json.loads((package / 'SOURCES.json').read_text()) + inputs = [r for r in sources['files'] if r['usage'] == 'input'] + require(len(inputs) == len(REQUIRED) and {r['path'] for r in inputs} == REQUIRED, + 'external source inventory differs') + out = {} + for row in inputs: + raw = (root / row['path']).read_bytes() + require(hashlib.sha256(raw).hexdigest() == row['sha256'], + 'external source drift: ' + row['path']) + blob = hashlib.sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() + require(blob == row['git_blob'], 'external Git blob differs') + out[row['path']] = json.loads(raw) + return out + + +def load_upstream(snapshot, package=HERE): + manifest = json.loads((package / 'UPSTREAM.json').read_text()) + require(manifest['repository'] == 'CrocSwap/integer-mult-bounds', 'wrong upstream repository') + expected = {(c['head'], c[k+'_file'], c[k+'_blob']) + for c in snapshot['claims'] for k in ('profile', 'idle')} + rows = manifest['records'] + keys = [(r['head'], r['path'], r['git_blob']) for r in rows] + require(len(keys) == len(set(keys)) and set(keys) == expected, + 'upstream input inventory differs') + out = {} + for row in rows: + blob = row['git_blob'] + require(row['local'] == 'inputs/' + blob + '.json.gz', 'noncanonical input path') + raw = gzip.decompress((package / row['local']).read_bytes()) + require(type(row['size']) is int and len(raw) == row['size'], 'upstream input size differs') + require(hashlib.sha256(raw).hexdigest() == row['sha256'], 'upstream SHA256 differs') + require(hashlib.sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == blob, + 'upstream Git blob differs') + out[row['head'], row['path']] = json.loads(raw) + return out + + +def histogram(raw): + require(type(raw) is dict and bool(raw), 'empty histogram') + out = {} + for key, value in raw.items(): + require(type(key) is str and key.isdigit() and str(int(key)) == key, + 'noncanonical rank') + rank = int(key) + require(0 < rank < 73 and type(value) is int and value >= 0, + 'invalid histogram entry') + if value: + out[rank] = value + return out + + +def split(profile, idle, calls, live): + require(type(calls) is int and calls > 0 and calls % 9 == 0, + 'invalid complete call count') + require(type(live) is int and live > 0 and 9 * live == 896 * calls, + 'wrong live-family normalization') + p, i = histogram(profile), histogram(idle) + require(all(rank <= 51 and count <= p.get(rank, 0) for rank, count in i.items()), + 'idle profile is not a guard-admissible subprofile') + mass = sum(rank * count for rank, count in p.items()) + require(mass == 72 * live + 64 * calls, 'coverage mass differs') + local = {rank: Q(count - i.get(rank, 0), calls) + for rank, count in p.items() if count != i.get(rank, 0)} + idle_mass = Q(sum(rank * count for rank, count in i.items()), calls) + require(sum(rank * count for rank, count in local.items()) + idle_mass == 7232, + 'per-call mass does not reconcile') + return local, idle_mass + + +def at(obj, pointer): + require(type(pointer) is str and pointer.startswith('/'), 'invalid source JSON pointer') + for key in pointer[1:].split('/'): + obj = obj[key] + return obj + + +def source_counts(profile, idle): + """Bind N to original fields; explicitly distinguish four inferred W values.""" + call_evidence = [] + live_evidence = [] + for label, obj in (('profile', profile), ('idle', idle)): + for key in ('calls', 'complete_invocations'): + if key in obj: + n = obj[key] + require(type(n) is int and n > 0, 'invalid source calls') + call_evidence.append((label + '/' + key, n)) + if 'provider_counts' in obj: + counts = obj['provider_counts'] + require(type(counts) is dict and bool(counts) + and all(type(n) is int and n > 0 for n in counts.values()), + 'invalid provider counts') + call_evidence.append((label + '/provider_counts:sum', sum(counts.values()))) + for prefix, block in (('', obj), ('/expected', obj.get('expected', {}))): + if 'live' in block: + w = block['live'] + require(type(w) is int and w > 0, 'invalid source live stock') + live_evidence.append((label + prefix + '/live', w)) + require(call_evidence and len({v for _, v in call_evidence}) == 1, + 'missing or inconsistent source call counts') + n = call_evidence[0][1] + w = Q(896 * n, 9) + require(w.denominator == 1, 'source count is not complete replicas') + if live_evidence: + require(all(v == w for _, v in live_evidence), 'source live stock differs from template') + mode = 'direct source field and template agreement' + else: + mode = 'inferred from source N under the 896/9 template premise' + return n, int(w), dict(calls=call_evidence, live=live_evidence, live_mode=mode) + + +def reconstruct(claim, upstream): + p = upstream[claim['head'], claim['profile_file']] + i = upstream[claim['head'], claim['idle_file']] + profile = p['complex_profile'] + idle = {r: n for r, n in at(i, claim['idle_json_path']).items() if n} + same(profile, claim['profile'], 'source aggregate differs') + same(idle, claim['idle'], 'source idle histogram differs') + same(p['complex_lower'], claim['complex_lower'], 'source complex endpoint differs') + same(p['kappa'], claim['kappa'], 'source kappa differs') + require(Q(claim['title_kappa']) == Q(p['kappa']), 'title kappa differs') + calls, live, count_evidence = source_counts(p, i) + same(calls, claim['calls'], 'source call count differs') + same(live, claim['live'], 'source live count differs') + local, idle_mass = split(profile, idle, calls, live) + return local, idle_mass, count_evidence + + +def profile_json(local): + return {str(rank): str(count) for rank, count in sorted(local.items())} + + +def sign_record(local, a, expected): + interval = relaxation(local, a) + require(side(interval) == expected, 'claimed endpoint sign differs') + fine = relaxation(local, a, exponent_bits=128, precision=256) + require(side(fine) == expected, 'refined endpoint sign differs') + require(max(interval[0], fine[0]) <= min(interval[1], fine[1]), + 'enclosures are disjoint') + return {'a': str(a), 'moment_minus_one': [str(x - 1) for x in interval], + 'refined_moment_minus_one': [str(x - 1) for x in fine], 'sign': expected} + + +def audit(snapshot, census, upstream, assembly, selected): + claims = snapshot['claims'] + require(len(claims) == 14 and len({c['pr'] for c in claims}) == 14, 'wrong frozen claim domain') + require(len(census['words']) == 9 and len({w['id'] for w in census['words']}) == 9, + 'wrong frozen profile domain') + groups, claim_rows = {}, [] + for claim in claims: + local, idle_mass, evidence = reconstruct(claim, upstream) + key = canonical(profile_json(local)) + groups.setdefault(key, []).append(claim['pr']) + claim_rows.append({'pr': claim['pr'], 'head': claim['head'], + 'local': profile_json(local), 'idle_mass_per_call': str(idle_mass), + 'count_evidence': evidence}) + require(len(groups) == 9, 'reconstructed profile count differs') + observed = set() + records = [] + for word in census['words']: + key = canonical(word['local_profile_per_call']) + require(key in groups and key not in observed, 'unknown or repeated census profile') + observed.add(key) + same(sorted(groups[key]), word['claims'], 'profile membership differs') + local = {int(r): Q(n) for r, n in word['local_profile_per_call'].items()} + require(str(sum(r * n for r, n in local.items())) == word['local_mass_per_call'], + 'reported local mass differs') + hi = Q(word['a_ceiling']) + require((hi / GRID).denominator == 1 and GRID < hi < 1, 'off-grid ceiling') + lo = hi - GRID + cap = hi / (1 + hi) + for claim in claims: + if claim['pr'] in groups[key]: + require(Q(claim['complex_lower']) < lo and Q(claim['kappa']) < cap, + 'claim exceeds its relaxation bracket') + records.append({'id': word['id'], 'claims': word['claims'], + 'local': profile_json(local), + 'idle_mass_per_call': str(7232 - sum(r * n for r, n in local.items())), + 'lower': sign_record(local, lo, 'below'), + 'upper': sign_record(local, hi, 'above'), + 'kappa_cap_exact': str(cap)}) + same(assembly['complex_profile'], selected['owner']['profile'], 'selected profile differs') + n, w = selected['price']['calls'], selected['price']['live'] + local, idle_mass = split(assembly['complex_profile'], selected['owner']['idle'], n, w) + w2 = next(row for row in records if row['id'] == 'W2') + same(profile_json(local), w2['local'], 'selected profile is not W2') + require(idle_mass == 1646, 'selected idle mass differs') + same(assembly['complex_lower'], selected['price']['complex_lower'], 'selected endpoint differs') + require(Q(assembly['complex_lower']) < Q(w2['lower']['a']), 'selected endpoint above W2 bracket') + maximum = max(Q(r['kappa_cap_exact']) for r in records) + require(maximum < Q('0.001687314840'), 'published rounded global cap is too small') + return dict(status='PASS_INDEPENDENT_QUEUE_CEILINGS', claims=claim_rows, + profiles=records, endpoint_decisions=18, refinement_endpoint_decisions=18, + arithmetic={'exponent_bits': 96, 'fractional_bits': 192, + 'refined_exponent_bits': 128, 'refined_fractional_bits': 256}, + max_kappa_cap_exact=str(maximum), published_strict_cap='0.001687314840', + selected={'word': 'W2', 'calls': n, 'live': w, 'idle_mass_per_call': str(idle_mass)}, + scope='Frozen PR1264 extraction and coverage-law relaxation arithmetic only. ' + 'No realized circuit, owner, physical cost, supplier or full multiplication theorem check.') + + +def controls(snapshot, census, upstream): + out = [] + def rejects(name, action): + try: + action() + except ValueError: + out.append(name) + else: + raise ValueError('negative control accepted: ' + name) + + claim = snapshot['claims'][0] + local, _, _ = reconstruct(claim, upstream) + rejects('idle_rank_52', lambda: relaxation(local, Q(1, 1000), cap=52)) + rejects('negative_local_count', lambda: relaxation({1: -1}, Q(1, 1000))) + rejects('local_mass_over_budget', lambda: relaxation({1: 7233}, Q(1, 1000))) + rejects('inconclusive_is_not_rejection', lambda: side((Q(999, 1000), Q(1001, 1000)))) + rejects('wrong_live_normalization', lambda: split(claim['profile'], claim['idle'], + claim['calls'], 69120)) + bad_idle = deepcopy(claim['idle']); bad_idle['2'] = claim['profile']['2'] + 1 + rejects('idle_not_subprofile', lambda: split(claim['profile'], bad_idle, + claim['calls'], claim['live'])) + changed = deepcopy(claim); changed['calls'] *= 2; changed['live'] *= 2 + rejects('same_ratio_wrong_absolute_call_count', lambda: reconstruct(changed, upstream)) + changed2 = deepcopy(claim); changed2['profile']['1'] = True + rejects('boolean_in_aggregate', lambda: reconstruct(changed2, upstream)) + # Spread two rank-2 children into rank 1 and rank 3, preserving both child + # count and rank mass. Strict concavity lowers the moment for 0