From f714f27d69e0e357ebea9cc2d29bca5b168b4c68 Mon Sep 17 00:00:00 2001 From: CubeJerry <80299683+CubeJerry@users.noreply.github.com> Date: Wed, 28 Oct 2026 22:55:06 +0800 Subject: [PATCH] Conditional kappa .003127804: remove owned772 public731 relay Prepared for @CubeJerry with substantial OpenAI Codex assistance. Retains DreamingOfClouds, Ali Romman and the complete predecessor lineage. --- .../p104-owned772-relay-descent/EDIT.json.gz | Bin 0 -> 650 bytes .../p104-owned772-relay-descent/EXPECT.json | 36 ++ .../INDEPENDENT.json | 231 +++++++++++ .../NATIVE-AUDIT.json | 53 +++ .../NATIVE-SOURCES.json | 26 ++ .../PRICING-EDITS.json | 18 + research/p104-owned772-relay-descent/PROOF.md | 140 +++++++ .../p104-owned772-relay-descent/README.md | 188 +++++++++ .../p104-owned772-relay-descent/RESULT.json | 388 ++++++++++++++++++ .../p104-owned772-relay-descent/SOURCES.json | 233 +++++++++++ .../p104-owned772-relay-descent/TASK.json | 142 +++++++ .../p104-owned772-relay-descent/VERIFY.json | 78 ++++ .../p104-owned772-relay-descent/WORD.json.gz | Bin 0 -> 120021 bytes .../p104-owned772-relay-descent/construct.py | 91 ++++ .../independent.py | 272 ++++++++++++ .../inputs/pr6143-WORD.json.gz | Bin 0 -> 119977 bytes .../native_audit.py | 124 ++++++ .../p104-owned772-relay-descent/pricing.py | 184 +++++++++ .../p104-owned772-relay-descent/sources.py | 81 ++++ .../test_portability.py | 87 ++++ .../p104-owned772-relay-descent/verify.py | 149 +++++++ 21 files changed, 2521 insertions(+) create mode 100644 research/p104-owned772-relay-descent/EDIT.json.gz create mode 100644 research/p104-owned772-relay-descent/EXPECT.json create mode 100644 research/p104-owned772-relay-descent/INDEPENDENT.json create mode 100644 research/p104-owned772-relay-descent/NATIVE-AUDIT.json create mode 100644 research/p104-owned772-relay-descent/NATIVE-SOURCES.json create mode 100644 research/p104-owned772-relay-descent/PRICING-EDITS.json create mode 100644 research/p104-owned772-relay-descent/PROOF.md create mode 100644 research/p104-owned772-relay-descent/README.md create mode 100644 research/p104-owned772-relay-descent/RESULT.json create mode 100644 research/p104-owned772-relay-descent/SOURCES.json create mode 100644 research/p104-owned772-relay-descent/TASK.json create mode 100644 research/p104-owned772-relay-descent/VERIFY.json create mode 100644 research/p104-owned772-relay-descent/WORD.json.gz create mode 100644 research/p104-owned772-relay-descent/construct.py create mode 100644 research/p104-owned772-relay-descent/independent.py create mode 100644 research/p104-owned772-relay-descent/inputs/pr6143-WORD.json.gz create mode 100644 research/p104-owned772-relay-descent/native_audit.py create mode 100644 research/p104-owned772-relay-descent/pricing.py create mode 100644 research/p104-owned772-relay-descent/sources.py create mode 100644 research/p104-owned772-relay-descent/test_portability.py create mode 100644 research/p104-owned772-relay-descent/verify.py diff --git a/research/p104-owned772-relay-descent/EDIT.json.gz b/research/p104-owned772-relay-descent/EDIT.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..13d635abaa16b7404a7a0574a42c01791f7a3e78 GIT binary patch literal 650 zcmV;50(Jc#iwFP!000021D#e)Ya1~Tz57>$J=;_tGy3SwI6ef@rnIF{LNRi7ofsTD ztljny^4}|O?A5qP$ns%9A5ZVilU6f&9b8>ibGL0~e>ZJC+desgs`}{1lmey}jx(X> zjv4nLoI#E-cUlT#7Xr<~vRYd}aNNp985Dxg9~1}4>T0-WUM$yc<>_AEy6$ql+%4(A z=A~)fZn;^{>Sncb`w2hnCtO`Ob>H;^&M#WdGqHK_UZ1&)c5&2Zg9X> zFYV^Bb=T;kK8egW?YV=H;^zp7 zi-bHk70RDH>Pv;l!7C6^p~>xZ{IzG&;p7mae@b=p`R04ThtN>O@sqnRKVx_feRLJC zaxC8_vqF_h_Xt5|5%}nN$Eas0|=m;OVIVqA;Lt!a#p;#Z)!mYMV;tql!cMxsSWhcI~ zA$xYkh?FWzV5L$(q>L&`%7s#fR0(7Au6+54*2!$T^yGoVN>-#q@5>pkY>3RijX0ih zH(AV8uK4e{i4fQ#Az})$o)x0i~ooBR7VFlaYFu&WxU(xbwNIq;Au< k!zf$0JNm$467Ky(?_LNa4*%6)|Gf?V0m`r|G8YX107T+OtN;K2 literal 0 HcmV?d00001 diff --git a/research/p104-owned772-relay-descent/EXPECT.json b/research/p104-owned772-relay-descent/EXPECT.json new file mode 100644 index 0000000000..c968786929 --- /dev/null +++ b/research/p104-owned772-relay-descent/EXPECT.json @@ -0,0 +1,36 @@ +{ + "base_commit": "721c03822c421b7f7fcbb2598993b947c4d88419", + "chain_commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "control_sites": { + "arbitrary_input_compensation": 13609, + "late_correction": 15666, + "owned_clear": 14479, + "owned_descent": 13641 + }, + "events": 22834, + "helper_delta": {}, + "interval": [ + "312781137239/100000000000000", + "7819528431/2500000000000" + ], + "inventory": [ + 770, + 29, + 31, + 13 + ], + "paid_calls": 66780, + "paid_delta": { + "1": -1, + "6": -1, + "7": 1 + }, + "predecessor_head": "4cef86d87e47dfcc5a511c99c9f0067c861271b0", + "productive_fields": 13444, + "rank_mass_surplus": 760, + "sign_sites": { + "arbitrary_input_compensation": 13609, + "rerouted_read": 13642 + }, + "status": "PASS_P104_OWNED772_KAPPA_312780400" +} diff --git a/research/p104-owned772-relay-descent/INDEPENDENT.json b/research/p104-owned772-relay-descent/INDEPENDENT.json new file mode 100644 index 0000000000..6e4a8dc7a8 --- /dev/null +++ b/research/p104-owned772-relay-descent/INDEPENDENT.json @@ -0,0 +1,231 @@ +{ + "base": { + "endpoint_coefficients": 638401, + "events": 22828, + "local_helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 107, + "5": 14, + "6": 2, + "7": 9, + "8": 19, + "9": 385 + }, + "local_paid": { + "1": 2217, + "2": 457, + "3": 496, + "4": 100, + "5": 163, + "6": 9, + "7": 8, + "8": 1 + }, + "operations": { + "ADD": 18431, + "CLEAR": 31, + "COPY": 23, + "INIT": 31, + "MOVE": 3451, + "SCALE": 861 + }, + "owned_fields": 29, + "owned_lifetimes": 31, + "paid_calls": 66798, + "paid_rank_mass": 240152, + "peak_owned": 13, + "productive_fields": 13444, + "public": 770, + "real_scalar_allowance": 189730, + "rows_checked": 799, + "target_rank_mass": 240912, + "whole_paid": { + "1": 41466, + "16": 416, + "2": 8226, + "24": 416, + "3": 8928, + "32": 416, + "4": 1800, + "40": 416, + "48": 416, + "5": 2934, + "56": 416, + "6": 162, + "64": 416, + "7": 144, + "72": 208, + "8": 18 + }, + "whole_targets": { + "1": 252, + "145": 208, + "17": 416, + "2": 144, + "25": 416, + "3": 72, + "33": 416, + "4": 1926, + "41": 416, + "49": 416, + "5": 252, + "57": 416, + "6": 36, + "65": 416, + "7": 162, + "73": 208, + "8": 342, + "9": 6930 + } + }, + "candidate": { + "endpoint_coefficients": 638401, + "events": 22834, + "local_helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 107, + "5": 14, + "6": 2, + "7": 9, + "8": 19, + "9": 385 + }, + "local_paid": { + "1": 2216, + "2": 457, + "3": 496, + "4": 100, + "5": 163, + "6": 8, + "7": 9, + "8": 1 + }, + "operations": { + "ADD": 18438, + "CLEAR": 31, + "COPY": 23, + "INIT": 31, + "MOVE": 3450, + "SCALE": 861 + }, + "owned_fields": 29, + "owned_lifetimes": 31, + "paid_calls": 66780, + "paid_rank_mass": 240152, + "peak_owned": 13, + "productive_fields": 13444, + "public": 770, + "real_scalar_allowance": 189806, + "rows_checked": 799, + "target_rank_mass": 240912, + "whole_paid": { + "1": 41448, + "16": 416, + "2": 8226, + "24": 416, + "3": 8928, + "32": 416, + "4": 1800, + "40": 416, + "48": 416, + "5": 2934, + "56": 416, + "6": 144, + "64": 416, + "7": 162, + "72": 208, + "8": 18 + }, + "whole_targets": { + "1": 252, + "145": 208, + "17": 416, + "2": 144, + "25": 416, + "3": 72, + "33": 416, + "4": 1926, + "41": 416, + "49": 416, + "5": 252, + "57": 416, + "6": 36, + "65": 416, + "7": 162, + "73": 208, + "8": 342, + "9": 6930 + } + }, + "local_paid_delta": { + "1": -1, + "6": -1, + "7": 1 + }, + "negative_controls": { + "borrow_owned_move": "MOVE ownership at 13641", + "clear791_before_last_read": "common chart at 13636", + "copy_into_dirty_owned": "COPY cleared owned destination at 13639", + "dependent_frame_basis": "linearly independent frame basis", + "hold791_across772_lifetime": "complete return/storage contract", + "non_dyadic_scale": "dyadic bounded scalar at 13639", + "nonunit_scale": "dyadic unit SCALE at 13639", + "omit_arbitrary_input_compensation": "arbitrary-input endpoint row 145", + "omit_owned_return": "complete return/storage contract", + "omit_top162_compensation": "arbitrary-input endpoint row 162", + "reverse_compensation_sign": "arbitrary-input endpoint row 145", + "wrong_move_source_chart": "MOVE source chart at 13641" + }, + "owned791_references": [ + [ + 13478, + [ + "INIT", + 791, + 549 + ] + ], + [ + 13479, + [ + "COPY", + 791, + 173, + "1", + 549 + ] + ], + [ + 13480, + [ + "ADD", + 121, + 791, + "1/2", + 549 + ] + ], + [ + 13635, + [ + "COPY", + 770, + 791, + "1", + 549 + ] + ], + [ + 13636, + [ + "CLEAR", + 791, + 549 + ] + ] + ] +} diff --git a/research/p104-owned772-relay-descent/NATIVE-AUDIT.json b/research/p104-owned772-relay-descent/NATIVE-AUDIT.json new file mode 100644 index 0000000000..f794a7d0ac --- /dev/null +++ b/research/p104-owned772-relay-descent/NATIVE-AUDIT.json @@ -0,0 +1,53 @@ +{ + "columns_checked": 2048, + "complex_entries_compared": 1048576, + "controls": { + "absolute_phase_only": "rejected", + "child_sign": "rejected" + }, + "new_signed_map_count": 3, + "paid_move_delta_maps": [ + { + "columns": 512, + "frames": [ + 3, + 529 + ], + "matrix_sha256": "dcdb1a896ef8c98018be0111bec67cd30761a9d9190e1876841b7c6fae40d806", + "rank": 7, + "role": "existing_helper_map_positive_control" + }, + { + "columns": 512, + "frames": [ + 520, + 737 + ], + "matrix_sha256": "45b79c2b4d43bddc7a713ace98aafb18fd8f1f2803fe604e821c284d2c2094fb", + "rank": 2, + "role": "new_signed_map" + }, + { + "columns": 512, + "frames": [ + 529, + 520 + ], + "matrix_sha256": "6cb29fe68a85e01b13b937dcd8723b099673b015fc38fd2f1bdfbba8a9f70aa1", + "rank": 1, + "role": "new_signed_map" + }, + { + "columns": 512, + "frames": [ + 737, + 595 + ], + "matrix_sha256": "62180012f1f2ef1338b46a982bf1f058681af990ca0204ad1b6a611f6dc0198c", + "rank": 3, + "role": "new_signed_map" + } + ], + "scope": "Three new finite 9-qubit signed maps and one existing helper-map positive control; other unchanged maps reuse predecessor evidence; uniform native_all_columns remains assumed.", + "unchanged_helper_maps_and_main_adapters": true +} diff --git a/research/p104-owned772-relay-descent/NATIVE-SOURCES.json b/research/p104-owned772-relay-descent/NATIVE-SOURCES.json new file mode 100644 index 0000000000..ca14e01f2b --- /dev/null +++ b/research/p104-owned772-relay-descent/NATIVE-SOURCES.json @@ -0,0 +1,26 @@ +{ + "base": "721c03822c421b7f7fcbb2598993b947c4d88419", + "files": [ + { + "path": "research/p104-native-channel/vendor/clifford_exact.py", + "size": 6824, + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2", + "usage": "input" + }, + { + "path": "research/p104-native-channel/vendor/native_verify.py", + "size": 12323, + "sha256": "3049471905b47b385c88378a1a3be7a18b8858aadd035b8a6da2f4a03b470f38", + "git_blob": "2c209dfa9cfade3bc20ac5fc9d876b433a147f8c", + "usage": "input" + }, + { + "path": "research/p104-contact-independent-audit/capsule/outputs/p104-native-contact-audit-20261025/check.py", + "size": 11654, + "sha256": "43fd40847a0853c0ac511d58ce77ef822a5c6dd1b25f662f01cefaa3196a2f7d", + "git_blob": "e7e663bebaf13f44c95fb8eb118b472cf377e137", + "usage": "input" + } + ] +} diff --git a/research/p104-owned772-relay-descent/PRICING-EDITS.json b/research/p104-owned772-relay-descent/PRICING-EDITS.json new file mode 100644 index 0000000000..59b5d32223 --- /dev/null +++ b/research/p104-owned772-relay-descent/PRICING-EDITS.json @@ -0,0 +1,18 @@ +[ + [ + "KAPPA, TESTED = Q('0.00312476680'), Q('0.003124766805')", + "KAPPA, TESTED = Q('0.003127804'), Q('0.003127809')" + ], + [ + "PREVIOUS = Q('0.00312418633064')", + "PREVIOUS = Q('0.003127137')" + ], + [ + "sum(targets.values()) == 13444 and sum(paid.values()) == 66870", + "sum(targets.values()) == 13444 and sum(paid.values()) == 66780" + ], + [ + "'kappa_decimal':'0.00312476680','previous_pr5811':PREVIOUS", + "'kappa_decimal':'0.003127804','previous_pr6143':PREVIOUS" + ] +] diff --git a/research/p104-owned772-relay-descent/PROOF.md b/research/p104-owned772-relay-descent/PROOF.md new file mode 100644 index 0000000000..93ea9ae397 --- /dev/null +++ b/research/p104-owned772-relay-descent/PROOF.md @@ -0,0 +1,140 @@ +# Owned-772 descent and public-731 relay elimination + +Prepared for @CubeJerry with substantial OpenAI Codex assistance. Apache-2.0. +The predecessor construction and checker are credited to DreamingOfClouds +(PR6143, PR6030 and PR5907), Ali Romman (PR5827), and the cumulative P104 +lineage named in their retained notices. This note proves only the local edit; +the complete conditional claim also needs the inherited native/caller/pricing +checks and five framework assumptions. + +## Frozen objects + +Base: PR6143 at `4cef86d87e47dfcc5a511c99c9f0067c861271b0`, +`research/p104-root-relay-descent/WORD.json.gz`. The canonical JSON SHA256 is +`b66406fa1027ba08ac2a85154ba73289f258f90d79454a193e685221bc61430d`. +The new canonical JSON SHA256 is +`0572c956c77b0ee2ef47169c9df52269bc719e37c7003f3f0245179aea0aad71`. +`EDIT.json.gz` consists of literal new events and exact slices of the base +program. Regeneration requires no solver. No initial/final frame, frame basis, +public register, or productive helper target changes. + +Indices below are zero-based indices in the frozen PR6143 base. They are +explanatory; the executable certificate is the complete new word. + +## Exact scalar identity + +Let `u` denote the independent initial value in public helper 731. It is +unchanged throughout its frame-3 prefix: before the relay it is read at three +frame-3 ADDs but is never a scalar destination. Let `rho` be register 146's +value just after base event 13474 (`146 += 440` in frame 529), and let +`v = -rho/2`. Register 146 does not change again until event 16903, after all +uses discussed here. + +The original 772 lifetime copies `rho`, contributes `-rho/2` to register 162, +scales itself to `v`, descends from 529 to 595, and contributes `v` to 708 +and 731. Hence 731 holds `u+v` during its ascending relay. The edit leaves +731 at `u` and has 772 deliver `v` directly. + +For each of the eight relay readers, the old update `r += q*(u+v)` is +replaced by `r += q*u` in frame 3 and `r += q*v` in its old meeting frame: + +| Reader | q | Meeting frame | Frame dimension | +| --- | ---: | ---: | ---: | +| 572 | 2 | 595 | 1 | +| 582 | 2 | 595 | 1 | +| 581 | 2 | 595 | 1 | +| 134 | -2 | 595 | 1 | +| 450 | 4 | 595 | 1 | +| 496 | 4 | 595 | 1 | +| 451 | -4 | 737 | 4 | +| 497 | -4 | 520 | 6 | + +The frame-3 update is inserted immediately before the reader's first MOVE, +using 731 itself, which still holds `u` in frame 3. For each reader there is +no intervening source use or SCALE before its old relay read. Intervening +ADDs into that reader commute with adding `q*u`. For readers 451 and 497, +the `v` update moves earlier, to the corresponding point of 772's descent; +they are already at frames 737 and 520, and have no intervening source use +or SCALE before their old read. The remaining six `v` reads stay at their +original chronological locations. + +The top-frame read `162 += 2*731` formerly contributed `2*u+2*v`. It now +contributes `2*u` and an adjacent `162 += -146` in frame 529 supplies +`2*v = -rho`. This uses register 146 while it still contains `rho`. +The former cleanup `731 += rho/2` is deleted: the base cleanup sends +`u+v` to `u`; the new register already holds `u`. The subsequent read of +731 by 146 consequently sees the same value. + +The original 772 contribution `162 += -rho/2` is retimed without changing +its value: it becomes `162 += 772` just after 772 is scaled to `v`. +Register 162 has no intervening source use, SCALE or other event between +these two positions. The loading of 708 and the first read of 708 by 127 +are also retimed. Register 708's MOVE from 595 to 602 follows those reads, +and precedes every old read of 708 at 602. No public output or later value +changes. The complete rational replay checks the result on all 799 formal +input columns, including every arbitrary independent helper input. + +## Frames, lifetime and chronology + +The base paths are + +- owned 772: `529 -> 595` (dimensions `7 -> 1`); +- public 731: `3 -> 595 -> 737 -> 520 -> 529` + (dimensions `0 -> 1 -> 4 -> 6 -> 7`). + +The new paths are + +- owned 772: `529 -> 520 -> 737 -> 595` + (dimensions `7 -> 6 -> 4 -> 1`); +- public 731: `3 -> 529` (dimensions `0 -> 7`). + +All containments are the strict reverse of already used base containments. +Reader 497 is at 520 and reader 451 is at 737 before the new descent starts. +All other scalar gates retain common frames, including each compensation. + +The new 772 lifetime starts immediately after base event 13641, the last +read of owned register 791 (`COPY 770 <- 791`). The CLEAR of 791 is moved +from base event 15597 to that point, before the INIT of 772. There is no +later read, write, MOVE or COPY involving 791. The slot released by its +legal CLEAR covers the extended 772 lifetime. This is actual chronological +liveness, not an argument from matching INIT/CLEAR multisets. The new CLEAR +of 772 follows the last 595 read (reader 496, base event 14468). + +Public count 770, owned labels 29, owned lifetimes 31 and peak live owned +count 13 are all unchanged. Every owned register is cleared at return. +The complete new program has 22,834 events (six more than PR6143), safely +below the inherited 26,000-event bound. It adds seven ADDs net and removes +one MOVE net; INIT, CLEAR, COPY and SCALE multisets are unchanged. The exact +ordinary scalar allowance increases from 189,730 to 189,806, by 76. + +## Complete signed local budget + +Writing `H_r = r^t`, the old paths cost `H_6 + H_1 + H_3 + H_2 + H_1`; +the new paths cost `H_1 + H_2 + H_3 + H_7`. Thus the complete local paid +profile changes by `-H_1 - H_6 + H_7`. Productive targets, rank mass, +public endpoints, caller query/idles, and helper normalization obligations +are unchanged. No credit is assigned to owned scratch. + +For every `0 < t < 1`, strict subadditivity gives `1 + 6^t > 7^t`. +Thus the local complete signed gain is positive throughout that exponent +range. The caller invokes the local word 18 times, so the full paid profile +changes by `-18 H_1 -18 H_6 +18 H_7`, and its paid-call count drops from +66,798 to 66,780. Every newly used signed native map and its absolute phase +still needs the complete native replay; this algebra does not replace it. +The productive count 13,444 and rank-mass surplus 760 remain unchanged. + +## What is new and what is not + +PR6143 rerouted roots 770/771 through helpers 705/706. This edit uses the +separate root 772 and relay 731; its frame-3 compensation is particularly +simple because 731 has no preceding scalar writes. Retiming the now-dead +791 lifetime is needed to compose all three root changes without increasing +peak occupancy. PR6136's chart-only A-E searches keep the scalar program; +this edit changes the read sources and compensating ADDs, so it is outside +those reported finite domains. This does not show those domains or the +broader supplier globally optimal. + +The new word is a finite conditional construction. It does not discharge +native-all-column, owned-erasure, compiler, precision/tape or analytic +recovery assumptions, materialize the uniform word or rounded multiplier, +or authorize changing the selected frontier. diff --git a/research/p104-owned772-relay-descent/README.md b/research/p104-owned772-relay-descent/README.md new file mode 100644 index 0000000000..83c9219414 --- /dev/null +++ b/research/p104-owned772-relay-descent/README.md @@ -0,0 +1,188 @@ +# Conditional κ = 0.003127804: one more owned-root relay removal + +This package adds one finite construction to DreamingOfClouds' pending +[PR6143](https://github.com/CrocSwap/integer-mult-bounds/pull/6143): owned register +772 delivers its value directly while public helper 731 takes a single hop. +Eight compensating reads preserve 731's arbitrary independent input. Moving +791's CLEAR immediately after its last read makes the longer 772 lifetime fit +within the unchanged peak of 13 owned fields. + +The complete conditional claim is **κ = 781951/250000000 = 0.003127804**, an +increase of **0.000000667 over PR6143's 0.003127137** and **0.000002000 over the +selected PR6030 claim 0.003125804**. This changes the complete paid profile; +it is not additional digits of the predecessor's crossing. The selected record +is unchanged. The five framework assumptions remain. + +| Complete construction | PR6143 input | This word | +| --- | ---: | ---: | +| Paid recursive calls | 66,798 | 66,780 | +| Productive fields | 13,444 | 13,444 | +| Paid / target rank mass | 240,152 / 240,912 | 240,152 / 240,912 | +| Public / owned labels / lifetimes / peak | 770 / 29 / 31 / 13 | 770 / 29 / 31 / 13 | +| Local events | 22,828 | 22,834 | +| Local ordinary scalar allowance | 189,730 | 189,806 | + +The exact raw crossing lies in **(0.00312781137239, 0.00312781137240)**. +The compiler is tested at **0.003127809**, with exact gap +`d = (tested − κ)/7 = 1/1400000000`. The unchanged admitted BIT budget `.0034` +still exceeds this complex supplier's saving. This is a small improvement to +the complete conditional multiplication bound, subject to the same assumptions +and independent admission; it is not a measured runtime improvement. + +## Construction and complete cost + +[PROOF.md](PROOF.md) gives the scalar identity, eight reader coefficients, +chronology and budget. The old paths are + +- owned 772: `529 → 595`; +- public 731: `3 → 595 → 737 → 520 → 529`. + +The new paths are + +- owned 772: `529 → 520 → 737 → 595`; +- public 731: `3 → 529`. + +Let `u` be helper 731's arbitrary input and `v = −146/2` at the stated causal +cut. Each old reader receives `q(u+v)`. It now receives `qu` at frame 3 and +`qv` from 772 at its legal meeting frame. A final correction to 162 and the +removed cleanup of 731 preserve every endpoint. No owned register earns +productive credit, and no helper input is assumed zero. The INIT, CLEAR, COPY +and SCALE multisets stay unchanged; their actual chronological legality is +checked separately. + +Per local invocation, paid cost changes by `−H1−H6+H7`, where `Hr = r^t`; +productive targets do not change. Across all 18 invocations the signed saving +is `18(1+6^t−7^t)>0` for `0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "348599999253/350000000000", + "fixed_halo_explicit_metadata_branch": "26950000001/350000000", + "new_BIT_row_stock_sublinear_in_active_group": "1395799997009/1400000000000", + "new_semantic_group_guard": "3/1400000000" + }, + "margins": { + "boundary_algebraic_matrix": "30652507178105357/9800000000000000000", + "fused_gaussian": "30652507134316071/9800000000000000000", + "global_coordinate_router": "2736831/875000000", + "group_bit_router": "3831564266789507/1225000000000000000", + "group_scans": "699999999/700000000", + "main_transform": "30652500178105357/9800000000000000000", + "microbox_face_corrections": "26950000001/350000000", + "polynomial_products": "1399999999/1400000000", + "sparse_union_movement": "4011902507178105357/9800000000000000000" + }, + "parameters": { + "a": "2736831/875000000", + "b": "21894653/7000000000", + "beta": "1399999997/1400000000", + "bit_saving": "17/5000", + "cap_xi": "8911902500178105357/9800000000000000000", + "complex_uniform_saving": "10947329/3500000000", + "d": "1/1400000000", + "epsilon": "1399999999/1400000000", + "kappa": "781951/250000000", + "lambda_": "1993744387/2000000000", + "lambda_prime": "6978105357/7000000000", + "layout": "1/1400000000", + "q": "21894643/7000000000", + "r0": "1/14000000000", + "stop": "1/1400000000", + "tested_saving": "3127809/1000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "238169/875000000", + "actual_logarithmic_gamma_guard": "1/1400000000", + "actual_logarithmic_group_guard": "888097510321894643/4900000000000000000", + "alpha_logarithm_absorption": "1/14000000000", + "boundary_algebraic_matrix_above_kappa": "27978105357/9800000000000000000", + "cap_above_band": "4011902500178105357/9800000000000000000", + "cap_below_cell": "888097492821894643/9800000000000000000", + "cap_below_phase_cell_power": "10688097499821894643/9800000000000000000", + "complex_above_effective": "1/1400000000", + "complex_below_one_over_32": "196855347/7000000000", + "complex_endpoint": "1/700000000", + "epsilon_below_one": "1/1400000000", + "epsilon_positive": "1399999999/1400000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "27934316071/9800000000000000000", + "gaussian_above_main": "3478105357/4900000000000000000", + "global_coordinate_router_above_kappa": "1/350000000", + "global_gamma_power_slack": "9/14000000000", + "group_below_dimension": "1/700000000", + "group_bit_router_above_kappa": "4366789507/1225000000000000000", + "group_gauge_power_slack": "888097509971894643/4900000000000000000", + "group_key_fits_record": "1/700000000", + "group_positive": "1399999997/1400000000", + "group_scans_above_kappa": "3489052681/3500000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "698416790400418148631/500000000000000000000000", + "lambda_above_internal": "1/2800000000", + "lambda_above_sigma": "3/2800000000", + "lambda_above_tau": "1/2800000000", + "lambda_prime_above_lambda": "1/2800000000", + "lambda_prime_above_leaf": "13978105347/9800000000000000000", + "leaf_saving_above_effective": "6978105347/9800000000000000000", + "main_transform_above_kappa": "20978105357/9800000000000000000", + "membership_arithmetic_fits_record": "1/1400000000", + "microbox_face_corrections_above_kappa": "33686131587/437500000", + "microbox_halo_volume": "110600000003/1400000000", + "new_complex_uniform_saving_above_b": "1/1400000000", + "new_semantic_guard_with_C1_one": "1/1400000000", + "polynomial_products_above_kappa": "6978105367/7000000000", + "positive_layout_slack": "1/1400000000", + "q_below_effective": "1/1400000000", + "q_below_internal": "1/1400000000", + "q_below_leaf": "13978105347/9800000000000000000", + "q_positive": "21894643/7000000000", + "short_record_fallback": "6978105347/7000000000", + "source_axis_superpolynomial": "1/1400000000", + "sparse_union_movement_above_kappa": "3981250027978105357/9800000000000000000", + "stop_below_one": "1399999999/1400000000", + "stop_positive": "1/1400000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/1400000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/1400000000", + "union_tag_work_per_visit_fits_record": "3/1400000000" + } + }, + "paid": { + "1": 41448, + "16": 416, + "2": 8226, + "24": 416, + "3": 8928, + "32": 416, + "4": 1800, + "40": 416, + "48": 416, + "5": 2934, + "56": 416, + "6": 144, + "64": 416, + "7": 162, + "72": 208, + "8": 18 + }, + "paid_calls": 66780, + "previous_pr6143": "3127137/1000000000", + "productive_fields": 13444, + "query_shears": 15, + "rank_mass_surplus": 760, + "raw_ceiling": { + "derivative_upper": "-367571871779244516468098385167341811961974287814764077581374543/1569275433846670190958947355801916604025588861116008628224", + "interval": [ + "0", + "17/5000" + ] + }, + "raw_headroom": [ + "737239/100000000000000", + "18431/2500000000000" + ], + "raw_root_interval": [ + "312781137239/100000000000000", + "7819528431/2500000000000" + ], + "relative_gain_percent": "66700/3127137", + "strictification": { + "alpha": { + "lower": "0.999999997597602047163659262770", + "upper": "0.999999997597602047163659262771" + }, + "cutoff": 16, + "delta": { + "lower": "0.950629888154892922927071566565", + "upper": "0.950629888154892922927071566566" + }, + "floor": 17, + "gamma": { + "lower": "0.975636844088298228795948151586", + "upper": "0.975636844088298228795948151587" + }, + "normalized_paid_upper": "1048576000976562501/1048576001073741824", + "power": 1024, + "reserve": "1/1000000000000", + "tail_block": 128, + "tail_decay": "125/128", + "tail_offset": "1/7", + "tested": "3127809/1000000000" + }, + "targets": { + "1": 252, + "145": 208, + "17": 416, + "2": 144, + "25": 416, + "3": 72, + "33": 416, + "4": 1926, + "41": 416, + "49": 416, + "5": 252, + "57": 416, + "6": 36, + "65": 416, + "7": 162, + "73": 208, + "8": 342, + "9": 6930 + }, + "whole_idle_jobs": 3120 + }, + "controls": { + "damaged_base_word": "Exact source SHA256: research/p104-root-relay-descent/WORD.json.gz", + "damaged_source_LOCAL-EDITS.json": "Exact source SHA256: research/p104-unread-path-resynthesis/LOCAL-EDITS.json", + "damaged_source_NOTICE": "Exact source SHA256: research/p104-unread-path-resynthesis/NOTICE", + "damaged_source_PLAN.json": "Exact source SHA256: research/p104-unread-path-resynthesis/PLAN.json", + "extra_target_credit": "Every productive helper has a native target", + "missing_arbitrary_input_compensation": "All public and owned rows", + "missing_central_translation": "Rejected by the complete Laurent endpoint", + "missing_late_correction": "All public and owned rows", + "missing_owned_clear": "All public and owned exits", + "missing_owned_descent": "Common scalar chart", + "unpaid_query": "Complete field and call counts", + "wrong_sign_arbitrary_input_compensation": "All public and owned rows", + "wrong_sign_rerouted_read": "All public and owned rows" + }, + "limits": [ + "All five inherited framework assumptions remain.", + "The large uniform word and rounded multiplier are not materialized.", + "Author checks do not establish independent acceptance.", + "The selected frontier is unchanged." + ], + "local": { + "endpoint_coefficients": 638401, + "helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 107, + "5": 14, + "6": 2, + "7": 9, + "8": 19, + "9": 385 + }, + "owned_fields": 29, + "owned_lifetimes": 31, + "paid": { + "1": 2216, + "2": 457, + "3": 496, + "4": 100, + "5": 163, + "6": 8, + "7": 9, + "8": 1 + }, + "paid_rank_mass": 5952, + "peak_owned_fields": 13, + "public_inputs": 770, + "real_scalar_allowance": 189806 + }, + "native": { + "distinct_maps": 2924, + "helper_normalizers": 1124, + "helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 107, + "5": 14, + "6": 2, + "7": 9, + "8": 19, + "9": 385 + }, + "main_adapters": 208, + "proof": "Every signed Pauli image and exact global phase; frame induction at every positive tensor width", + "recipe_payload_sha256": "5f3820f2b8b2565b03e628e170c01b59dea2e9385b5d6968b6877180314f2dac", + "wrong_phase_rejected": true + }, + "paid_delta": { + "1": -1, + "6": -1, + "7": 1 + }, + "physical_caller": { + "central_square_columns": 53248, + "full_calls": 18, + "main_targets": { + "145": 208, + "17": 416, + "25": 416, + "33": 416, + "41": 416, + "49": 416, + "57": 416, + "65": 416, + "73": 208 + }, + "new_paid_jobs": 0, + "physical_contacts": 7488, + "ports": 104, + "route_payload_sha256": "7f4f0ca768ffbc4f93dcff575592c4c67411f46b4289e45b73f715a2ad47b142", + "tensor_rule": "Factorwise native maps; scalar signs stay outside the tensor power.", + "whole_idle_jobs": { + "16": 416, + "24": 416, + "32": 416, + "40": 416, + "48": 416, + "56": 416, + "64": 416, + "72": 208 + }, + "wrapper_sites": [ + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31 + ] + }, + "separate_columns": { + "arithmetic": "Dense integer rows with binary denominators; reverse chronology", + "coefficients": 638401, + "columns": 799 + }, + "source_local": { + "endpoint_coefficients": 638401, + "helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 107, + "5": 14, + "6": 2, + "7": 9, + "8": 19, + "9": 385 + }, + "owned_fields": 29, + "owned_lifetimes": 31, + "paid": { + "1": 2217, + "2": 457, + "3": 496, + "4": 100, + "5": 163, + "6": 9, + "7": 8, + "8": 1 + }, + "paid_rank_mass": 5952, + "peak_owned_fields": 13, + "public_inputs": 770, + "real_scalar_allowance": 189730 + }, + "status": "PASS_P104_OWNED772_KAPPA_312780400", + "target_delta": {} +} diff --git a/research/p104-owned772-relay-descent/SOURCES.json b/research/p104-owned772-relay-descent/SOURCES.json new file mode 100644 index 0000000000..f9eaedd8c0 --- /dev/null +++ b/research/p104-owned772-relay-descent/SOURCES.json @@ -0,0 +1,233 @@ +{ + "archived_files": [ + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "f725d2bb87b3322512cb76eefbe3a9b26ece7176", + "path": "research/p104-unread-path-resynthesis/LOCAL-EDITS.json", + "sha256": "c4d195bcf17209a129bacf5b8ebd311d475c44405feb040683f096858f87a987", + "size": 59 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "8fc3f76cc0d66f19c9abd7c7111ec69c73c0434d", + "path": "research/p104-unread-path-resynthesis/NOTICE", + "sha256": "fe02063ca48bf070303ac05f613ab1e6e4dd9ee62141f7e7012d855faf7b0c78", + "size": 6714 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "dc269304a438d39c9aa60256eb33c4d439fb378a", + "path": "research/p104-unread-path-resynthesis/PLAN.json", + "sha256": "46bada733d461d7d5154ba5ede7d32697eaa00ab7380a0ceaf53324b9084d1a8", + "size": 1030 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "205de2990148e83bdac27aea49de593ffbefee0a", + "path": "research/p104-unread-path-resynthesis/PRICING-EDITS.json", + "sha256": "7cec40c77056d30d879ff6752bf785ce1773c11e6c959cc8f33c351b828e3c8a", + "size": 437 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "eae2e1b895284155a1485f240a0ad43a4b52c0aa", + "path": "research/p104-unread-path-resynthesis/PROOF.md", + "sha256": "16b1ba9b9468b097796d900ac04f9a278e09cba5ec9e08436b6e06ee066b385b", + "size": 6614 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "e663d069442adfb224de108031f80b603180d873", + "path": "research/p104-unread-path-resynthesis/README.md", + "sha256": "5f5026b41eb3f822652d4b41b5f4f81c4a285ac77d7ec34f41fabdbdad4b0252", + "size": 4574 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "e2e078df445d6c1b988cf926fed3bc7570a88237", + "path": "research/p104-unread-path-resynthesis/RESULT.json", + "sha256": "e437dd9fc7368de705cef8a9d27c6161f1b246f36e320e5c155dde89f88e16e2", + "size": 13257 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "4531538f264f4aaf9bd5e0d6be74758578fab749", + "path": "research/p104-unread-path-resynthesis/SOURCES.json", + "sha256": "b6aa6b569e76a7ab07f59e3d3c1204dad485bc9d6638211907a3f619073b6e33", + "size": 8164 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "1b7c6ccdb6a32e89b11f70163e1b4b409f5693d6", + "path": "research/p104-unread-path-resynthesis/TASK.json", + "sha256": "2548bea7e62ee5d8b988c72988c7f8cf69ed623994e662929639ff857620942f", + "size": 7801 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "1a3fa30e394a9837ec6d57adc019144ac323ea67", + "path": "research/p104-unread-path-resynthesis/VALIDATION.md", + "sha256": "593470975c818bd86d3af813d86d8a6c17ef51c0e7e437e14a0c94de1286112c", + "size": 1790 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "988b0541663f9bddf08d3c80ff09cacd87d9ab4c", + "path": "research/p104-unread-path-resynthesis/VERIFY.json", + "sha256": "c0c2995e2961dcad87e5f78fac22b519c629a1da77e661f924fa5101a87fde4d", + "size": 677 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "969ff0c9b474bc9d2df2eec8482e17cfb75c1fbe", + "path": "research/p104-unread-path-resynthesis/WITNESS.json", + "sha256": "6f9bb837e47c5b10f6d008d57a87415c7013e2076f3313fde1848d27b3314e67", + "size": 677 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "6341a49f717bd64ef2a5b7c440bd86d5513425dc", + "path": "research/p104-unread-path-resynthesis/WORD.json.gz", + "sha256": "5d50e5654910c9535e9025de0f644bb2dece2396e799b4a766110363448fd0b0", + "size": 122919 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "7d33cb8646ea7492131853070e97afd5935521da", + "path": "research/p104-unread-path-resynthesis/construct.py", + "sha256": "e23a70d1fa000c05c6e05a6d8c909cd47b8aabc6c7505f925fc0235575076c9c", + "size": 2371 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "a1f7e63c7dd3b5ef4cde70b96e8ad6aa30cdc684", + "path": "research/p104-unread-path-resynthesis/inputs/pr5786-source.tar", + "sha256": "9ca76daeb8db6b623d7329628248fae114946f35fb036c3171fcdba868131dc2", + "size": 3788800 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "bd91106cde0cc8c201329bedc2d45af65c582b57", + "path": "research/p104-unread-path-resynthesis/inputs/pr5811-NOTICE", + "sha256": "2f87017c7497194392d41c8ae80e5e1cfcf14651627cea2f918c1c8924c9858d", + "size": 1027 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "71a8c020a59e8469cd547511766db92fa79480c4", + "path": "research/p104-unread-path-resynthesis/inputs/pr5811-PROOF.md", + "sha256": "87756328c812a9076a55d5ebe1b9ea81d8fdcb166608cb39b0b43cca2cdc8593", + "size": 12191 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "2e73d97bdd2b2c13e05e66299722e0aa30c2d050", + "path": "research/p104-unread-path-resynthesis/inputs/pr5811-RESULT.json", + "sha256": "2ba9ec0c06ce0c2683cdd704cacb63e6bb9afeb90a07a16fb63ec9e55696c488", + "size": 19496 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "3633d78556932b1d66285c19d888fcd7c62cdbf1", + "path": "research/p104-unread-path-resynthesis/inputs/pr5811-WORD.json.gz", + "sha256": "690656bfca9c6f0366527d158ca4edb14f83c410604d647953c20c7c94bea2e8", + "size": 122915 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "b7be846b10c4c54a4e1558d7b563bc8c3a170223", + "path": "research/p104-unread-path-resynthesis/local.py", + "sha256": "7201df8e32f5c99f7403150e8664042322037906088bc754c67293a241368597", + "size": 9394 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "f2882694610b9bb49ddd7b6d99ccd628ae58be37", + "path": "research/p104-unread-path-resynthesis/pricing.py", + "sha256": "04b36429147f2809468d9ff037e26eaa70e66a5180e4b5c71a060bd5d14ffd9c", + "size": 11028 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "3b4c60838a43cb849707292bac144f14ad7fc8f1", + "path": "research/p104-unread-path-resynthesis/sources.py", + "sha256": "f96de7d80f369c12f6f904b7935610979d59617ed0d49963841e86b9a2b45557", + "size": 2488 + }, + { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "git_blob": "2a4d91891374a872dbee92b86bd21ebfb305c029", + "path": "research/p104-unread-path-resynthesis/verify.py", + "sha256": "41f71fff49c041d44048652228c901221555762f7ff3e11a088aa270ce6820a7", + "size": 7142 + } + ], + "base_commit": "721c03822c421b7f7fcbb2598993b947c4d88419", + "base_word": { + "commit": "4cef86d87e47dfcc5a511c99c9f0067c861271b0", + "git_blob": "fc6958401dfc110b48ecf6f0575111e9e2906438", + "local_path": "inputs/pr6143-WORD.json.gz", + "path": "research/p104-root-relay-descent/WORD.json.gz", + "pr": 6143, + "repository": "DreamingOfClouds/integer-mult-bounds", + "sha256": "108f3ae8ed1e30e8c525c13ab98159cb43a3b195b887bc24984eca3a95531436", + "size": 119977 + }, + "files": [ + { + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "path": "certificates/selected-result.json", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa", + "usage": "provenance" + }, + { + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "path": "docs/research/agent-task-catalog.json", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81", + "usage": "provenance" + }, + { + "git_blob": "1e10936044959f81a4c5fcd5bdb7b9e4c060ec8e", + "path": "research/p104-helper470-twin-rung-removal/inputs/pr5827-source.tar", + "sha256": "7af5908a4d83e83e28f59523fd7494841f669b7295311cfdbc3027fa65c5826d", + "usage": "input" + }, + { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "path": "LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "usage": "input" + }, + { + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2", + "path": "research/p104-native-channel/vendor/clifford_exact.py", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "size": 6824, + "usage": "input" + }, + { + "git_blob": "2c209dfa9cfade3bc20ac5fc9d876b433a147f8c", + "path": "research/p104-native-channel/vendor/native_verify.py", + "sha256": "3049471905b47b385c88378a1a3be7a18b8858aadd035b8a6da2f4a03b470f38", + "size": 12323, + "usage": "input" + }, + { + "git_blob": "e7e663bebaf13f44c95fb8eb118b472cf377e137", + "path": "research/p104-contact-independent-audit/capsule/outputs/p104-native-contact-audit-20261025/check.py", + "sha256": "43fd40847a0853c0ac511d58ce77ef822a5c6dd1b25f662f01cefaa3196a2f7d", + "size": 11654, + "usage": "input" + } + ], + "pending_dependency_note": "PR6143 is not in publication ancestry. Its immutable WORD bytes are vendored and separately authenticated by size, SHA256, and Git blob in base_word; no source-history claim is made for that off-main head.", + "schema_version": 1, + "source_archive": { + "commit": "05cd36e5af06d7a3790e30ce3f449fa89b853768", + "files": 23, + "package": "research/p104-unread-path-resynthesis", + "pr": 5827, + "repository_path": "research/p104-helper470-twin-rung-removal/inputs/pr5827-source.tar", + "sha256": "7af5908a4d83e83e28f59523fd7494841f669b7295311cfdbc3027fa65c5826d" + } +} diff --git a/research/p104-owned772-relay-descent/TASK.json b/research/p104-owned772-relay-descent/TASK.json new file mode 100644 index 0000000000..1f204896cc --- /dev/null +++ b/research/p104-owned772-relay-descent/TASK.json @@ -0,0 +1,142 @@ +{ + "actual_scope": "Compose one new P104 owned-772/public-731 relay descent at root frame 595 with pending PR6143. Preserve arbitrary helper inputs by eight frame-3 compensations and release owned 791 after its last read. Check the complete word, paid/target invoice, compiler and outer claim.", + "ai_assistance": "Substantial OpenAI Codex assistance: coordinator and complementary construction, pricing and independent-check agents. AI reviews are not independent human acceptance.", + "assignment_seed": 33, + "author": "@CubeJerry, with OpenAI Codex assistance", + "base_commit": "721c03822c421b7f7fcbb2598993b947c4d88419", + "bottleneck_link": "The complete paid profile changes by 18*(-H1-H6+H7), with identical productive targets and caller boundaries. Strict subadditivity gives a positive signed gain for 0k^7ad&sO7KZ}Gt+*9;x0lcN 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
    9K%M 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

    _R>cFK{1{FQuvkOA8dB=C+^ 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 E0Fk1Pp#T5? literal 0 HcmV?d00001 diff --git a/research/p104-owned772-relay-descent/construct.py b/research/p104-owned772-relay-descent/construct.py new file mode 100644 index 0000000000..dce57bbc3e --- /dev/null +++ b/research/p104-owned772-relay-descent/construct.py @@ -0,0 +1,91 @@ +"""Regenerate WORD.json.gz from PR6143's pinned word and the explicit edit list in EDIT.json.gz. Apache-2.0. + +Standard library only; no solver and no dependence on any other tooling. The edit list is data: + initial / final : {register: [old, new]} changes to the public boundary charts, + program : the new event list as segments; [a, b] copies PR6143's program[a:b] unchanged and any + other entry is a literal event. +Adapted for @CubeJerry with OpenAI Codex assistance from DreamingOfClouds' PR6143/PR6030 +(with Claude Opus 5.5 assistance) and the credited Ali Romman chain. +Predecessor credit (PR6143, PR5827 aliromman and its lineage): see README.md. +""" +from collections import Counter +from copy import deepcopy +from hashlib import sha256 +from pathlib import Path +import gzip, json, sys + +HERE = Path(__file__).resolve().parent + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def read(path): + raw = Path(path).read_bytes() + return json.loads(gzip.decompress(raw) if str(path).endswith('.gz') else raw) + + +def digest(value): + return sha256(json.dumps(value, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + + +def payload(value): + """The complete serialized word, independent of its gzip container.""" + return (json.dumps(value, sort_keys=True, indent=2) + '\n').encode() + + +def matches_shipped(value, compressed): + """Compare every payload byte; gzip metadata and compression may vary. + + Immutable source archives keep their separate exact-byte authentication in + sources.py. This predicate is only for a regenerated output artifact. + """ + return gzip.decompress(compressed) == payload(value) + + +def dump(value): + return gzip.compress(payload(value), mtime=0) + + +def construct(base, edit): + """Return the edited word. `base` is PR6143's WORD.json.gz payload, `edit` is EDIT.json.gz.""" + need(digest(base) == edit['base_word_sha256'], 'Edit applies to the pinned PR6143 word') + word = deepcopy(base) + for key in ('initial', 'final'): + for register, (old, new) in edit[key].items(): + need(base[key][int(register)] == old, 'Declared old boundary value: ' + key + ' ' + register) + word[key][int(register)] = new + program, source = [], base['program'] + for step in edit['program']: + if isinstance(step[0], int): + a, b = step + need(0 <= a < b <= len(source), 'Copy segment inside the base program') + program.extend(deepcopy(source[a:b])) + else: + program.append(list(step)) + word['program'] = program + need(word.keys() == base.keys(), 'Same word fields') + for key in base: + if key not in ('program', 'initial', 'final'): + need(word[key] == base[key], 'Unchanged word field: ' + key) + removed = Counter(e[0] for e in source) - Counter(e[0] for e in program) + added = Counter(e[0] for e in program) - Counter(e[0] for e in source) + need({'added': dict(added), 'removed': dict(removed)} == edit['operation_delta'], 'Declared operation delta') + return word + + +def pinned_base(): + """PR6143's word, authenticated against SOURCES.json (digest-checked again in construct).""" + sys.path.insert(0, str(HERE)) + from sources import base_word + return base_word() + + +if __name__ == '__main__': + word = construct(pinned_base(), read(HERE / 'EDIT.json.gz')) + if '--write' in sys.argv: + (HERE / 'WORD.json.gz').write_bytes(dump(word)) + print('constructed', len(word['program']), 'events,', word['public'], 'public', + '(matches shipped WORD payload)' if matches_shipped(word, (HERE / 'WORD.json.gz').read_bytes()) else '(differs from shipped payload)') diff --git a/research/p104-owned772-relay-descent/independent.py b/research/p104-owned772-relay-descent/independent.py new file mode 100644 index 0000000000..079030b6d3 --- /dev/null +++ b/research/p104-owned772-relay-descent/independent.py @@ -0,0 +1,272 @@ +#!/usr/bin/env python3 +"""Independent finite P104 relay check: binary elimination and integer dyadic rows. + +The opcode/interface contract is the retained PR5827/PR6030 contract. This +implementation imports no predecessor replay, native or pricing routines. +It checks scalar/formal-coordinate identities, not the native Clifford lift. +Owned CLEAR is the inherited erasure operation; it need not erase a zero row. +Prepared for @CubeJerry with OpenAI Codex assistance. Apache-2.0. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import json + + +def check(condition, message): + if not condition: + raise ValueError(message) + + +def load(path): + raw = Path(path).read_bytes() + return json.loads(gzip.decompress(raw) if str(path).endswith('.gz') else raw) + + +def echelon(vectors): + pivots = {} + for value in vectors: + check(type(value) is int and 0 < value < 512, 'binary frame vector') + while value: + bit = value.bit_length() - 1 + if bit not in pivots: + pivots[bit] = value + break + value ^= pivots[bit] + check(value != 0, 'linearly independent frame basis') + return pivots + + +def contains(big, small): + for value in small.values(): + while value: + bit = value.bit_length() - 1 + if bit not in big: + return False + value ^= big[bit] + return True + + +def reduce_row(row, exponent): + row = {k: v for k, v in row.items() if v} + if not row: + return {}, 0 + if exponent: + common = min((abs(v) & -abs(v)).bit_length() - 1 for v in row.values()) + shift = min(common, exponent) + if shift: + return {k: v >> shift for k, v in row.items()}, exponent - shift + return row, exponent + + +def scaled_row(state, numerator, denominator_exp): + row, exponent = state + return reduce_row({k: v * numerator for k, v in row.items()}, exponent + denominator_exp) + + +def accumulated_row(left, right, numerator, denominator_exp): + lr, le = left + rr, re = right + exponent = max(le, re + denominator_exp) + out = {k: v << (exponent - le) for k, v in lr.items()} + shift = exponent - re - denominator_exp + for k, v in rr.items(): + out[k] = out.get(k, 0) + ((v * numerator) << shift) + return reduce_row(out, exponent) + + +def replay(word): + n, m = word['public'], word['owned_fields'] + check(type(n) is int and 767 <= n <= 770, 'public inventory') + check(type(m) is int and 8 <= m <= 29, 'owned inventory') + check(len(word['initial']) == len(word['final']) == n, 'boundary dimensions') + check(len(word['program']) < 26000, 'retained event cap') + frames = [echelon(v) for v in word['frames']] + frame_count = len(frames) + check(all(type(f) is int and 0 <= f < frame_count for f in word['initial'] + word['final']), 'boundary frame indices') + rows = [({i: 1}, 0) for i in range(n + m)] + at = list(word['initial']) + [None] * m + allocated = set() + paid, operations = Counter(), Counter() + lifetimes = peak = scalar = 0 + for i, event in enumerate(word['program']): + check(isinstance(event, list) and len(event) >= 2, f'event form at {i}') + kind, target = event[:2] + check(type(target) is int and 0 <= target < n + m, f'target at {i}') + operations[kind] += 1 + if kind == 'MOVE': + check(len(event) == 5, f'MOVE arity at {i}') + old, new, private = event[2:] + check(type(old) is int and type(new) is int and 0 <= old < frame_count and 0 <= new < frame_count, f'MOVE frame index at {i}') + check(type(private) is bool and private == (target in allocated), f'MOVE ownership at {i}') + check(at[target] == old, f'MOVE source chart at {i}') + lower, upper = (new, old) if private else (old, new) + check(len(frames[lower]) < len(frames[upper]) and contains(frames[upper], frames[lower]), f'MOVE strict nesting at {i}') + paid[len(frames[upper]) - len(frames[lower])] += 1 + at[target] = new + elif kind == 'INIT': + check(len(event) == 3 and type(event[2]) is int and 0 <= event[2] < frame_count, f'INIT form at {i}') + check(target >= n and target not in allocated and at[target] is None, f'INIT ownership at {i}') + allocated.add(target) + rows[target] = ({}, 0) + at[target] = event[2] + lifetimes += 1 + peak = max(peak, len(allocated)) + scalar += 2 + elif kind == 'CLEAR': + check(len(event) == 3 and target in allocated and at[target] == event[2], f'CLEAR ownership/chart at {i}') + allocated.remove(target) + rows[target] = ({}, 0) + at[target] = None + scalar += 2 + else: + check(kind in ('ADD', 'COPY', 'SCALE'), f'known opcode at {i}') + check(len(event) == (4 if kind == 'SCALE' else 5), f'scalar arity at {i}') + coefficient = Fraction(event[-2]) + num, den = coefficient.numerator, coefficient.denominator + check(num != 0 and den & (den - 1) == 0 and abs(coefficient) + 1 < 2**16, f'dyadic bounded scalar at {i}') + check(type(event[-1]) is int and at[target] == event[-1] and at[target] is not None, f'scalar target chart at {i}') + exp = den.bit_length() - 1 + if kind == 'SCALE': + check(abs(num) & (abs(num) - 1) == 0, f'dyadic unit SCALE at {i}') + rows[target] = scaled_row(rows[target], num, exp) + scalar += 2 * (abs(abs(num).bit_length() - den.bit_length()) + int(num < 0)) + else: + source = event[2] + check(type(source) is int and 0 <= source < n + m and source != target, f'scalar source role at {i}') + check(at[source] == at[target], f'common chart at {i}') + if kind == 'COPY': + check(target in allocated and not rows[target][0], f'COPY cleared owned destination at {i}') + rows[target] = scaled_row(rows[source], num, exp) + else: + rows[target] = accumulated_row(rows[target], rows[source], num, exp) + scalar += 2 * (3 + abs(num).bit_length() - 1 + abs(num).bit_count() + exp) + check(not allocated and 0 < peak <= 13 and at[:n] == word['final'], 'complete return/storage contract') + live = set(word['live']) + check(len(live) == len(word['live']) == len(word['ports']) == 104 and all(type(r) is int and 0 <= r < 112 for r in live), 'main input inventory') + main = live | {r + 112 for r in live} + check(len(main) == 208, 'disjoint main roles') + for target, row in enumerate(rows): + expected = {target: 1} if target < n else {} + if target - 112 in live: + expected[target - 112] = 1 + check(row == (expected, 0), f'arbitrary-input endpoint row {target}') + helpers = Counter() + for r in range(n): + if r not in main: + a, b = frames[word['initial'][r]], frames[word['final'][r]] + check(len(a) < len(b) and contains(b, a), f'helper {r} endpoint inclusion') + helpers[len(b) - len(a)] += 1 + whole_paid = Counter({r: 18 * count for r, count in paid.items()}) + whole_targets = Counter({r: 18 * count for r, count in helpers.items()}) + whole_paid[1] += 1560 + whole_targets[145] += 208 + for length in (7, 8): + for position in range(1, length + 1): + whole_paid[8 * (position + 1)] += 208 + whole_targets[8 * (position + 1) + 1] += 208 + ordered = lambda counter: {str(k): v for k, v in sorted(counter.items())} + return { + 'events': len(word['program']), 'operations': dict(sorted(operations.items())), + 'rows_checked': n + m, 'endpoint_coefficients': (n + m)**2, + 'public': n, 'owned_fields': m, 'owned_lifetimes': lifetimes, + 'peak_owned': peak, 'real_scalar_allowance': scalar, + 'local_paid': ordered(paid), 'local_helpers': ordered(helpers), + 'whole_paid': ordered(whole_paid), 'whole_targets': ordered(whole_targets), + 'paid_calls': sum(whole_paid.values()), 'productive_fields': sum(whole_targets.values()), + 'paid_rank_mass': sum(k * v for k, v in whole_paid.items()), + 'target_rank_mass': sum(k * v for k, v in whole_targets.items()), + } + + +def audit(base, candidate, controls=True): + old, new = replay(base), replay(candidate) + check(base.keys() == candidate.keys(), 'same word schema fields') + check(all(base[k] == candidate[k] for k in base if k != 'program'), 'unchanged boundary and frame metadata') + delta = {k: new['local_paid'].get(k, 0) - old['local_paid'].get(k, 0) for k in set(new['local_paid']) | set(old['local_paid'])} + delta = {k: v for k, v in delta.items() if v} + check(delta == {'1': -1, '6': -1, '7': 1}, f'exact local paid delta: {delta}') + check(new['whole_targets'] == old['whole_targets'], 'unchanged complete target profile') + check(new['target_rank_mass'] - new['paid_rank_mass'] == 760, 'retained rank mass surplus') + references_791 = [(i, e) for i, e in enumerate(candidate['program']) + if e[1] == 791 or (e[0] in ('ADD', 'COPY') and e[2] == 791)] + check([e[0] for _, e in references_791] == ['INIT', 'COPY', 'ADD', 'COPY', 'CLEAR'], + 'complete retained owned-791 use sequence') + check(references_791[-2][1] == ['COPY', 770, 791, '1', 549] + and references_791[-1][0] == references_791[-2][0] + 1, + 'early owned-791 erasure immediately follows its final use') + result = {'base': old, 'candidate': new, 'local_paid_delta': delta, + 'owned791_references': references_791} + if controls: + faults = {} + def reject(label, changed): + try: + replay(changed) + except (ValueError, ZeroDivisionError) as error: + faults[label] = str(error) + else: + raise ValueError('Accepted negative control: ' + label) + # Select the newly inserted public-input compensation without relying on + # event indices or a generator's declarations. + old_events = Counter(tuple(e) for e in base['program']) + new_events = Counter(tuple(e) for e in candidate['program']) - old_events + compensations = {e for e in new_events if e[0] == 'ADD' and e[2] == 731 and e[-1] == 3} + check(compensations, 'new arbitrary-input compensation exists') + position = next(i for i, e in enumerate(candidate['program']) if tuple(e) in compensations) + word = deepcopy(candidate); del word['program'][position]; reject('omit_arbitrary_input_compensation', word) + word = deepcopy(candidate); word['program'][position][-2] = str(-Fraction(word['program'][position][-2])); reject('reverse_compensation_sign', word) + position = next(i for i, e in enumerate(candidate['program']) if e[0] == 'MOVE' and e[1] == 772) + word = deepcopy(candidate); word['program'][position][-1] = False; reject('borrow_owned_move', word) + word = deepcopy(candidate); word['program'][position][2] = 3; reject('wrong_move_source_chart', word) + position = next(i for i, e in enumerate(candidate['program']) if e[0] == 'CLEAR' and e[1] == 772) + word = deepcopy(candidate); del word['program'][position]; reject('omit_owned_return', word) + position = next(i for i, e in enumerate(candidate['program']) if e[0] == 'COPY' and e[1] == 772) + word = deepcopy(candidate); word['program'].insert(position, ['ADD', 772, word['program'][position][2], '1', word['program'][position][-1]]); reject('copy_into_dirty_owned', word) + position = next(i for i, e in enumerate(candidate['program']) if e[0] == 'SCALE' and e[1] == 772) + word = deepcopy(candidate); word['program'][position][-2] = '1/3'; reject('non_dyadic_scale', word) + word = deepcopy(candidate); word['program'][position][-2] = '3/2'; reject('nonunit_scale', word) + word = deepcopy(candidate); word['frames'][595].append(word['frames'][595][0]); reject('dependent_frame_basis', word) + clear791 = references_791[-1][0] + word = deepcopy(candidate) + word['program'][clear791 - 1], word['program'][clear791] = word['program'][clear791], word['program'][clear791 - 1] + reject('clear791_before_last_read', word) + position = next(i for i, e in enumerate(candidate['program']) if e == ['ADD', 162, 146, '-1', 529]) + word = deepcopy(candidate); del word['program'][position]; reject('omit_top162_compensation', word) + word = deepcopy(candidate) + held = word['program'].pop(clear791) + late = next(i for i, e in enumerate(word['program']) if e[0] == 'CLEAR' and e[1] == 772) + word['program'].insert(late + 1, held) + reject('hold791_across772_lifetime', word) + result['negative_controls'] = faults + return result + + +def new_summary(result): + candidate = result['candidate'] + return {'rows': candidate['rows_checked'], 'paid_calls': candidate['paid_calls'], 'negative_controls': len(result['negative_controls'])} + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('base', nargs='?', default=str(Path(__file__).resolve().parent / 'inputs/pr6143-WORD.json.gz')) + parser.add_argument('candidate', nargs='?', default=str(Path(__file__).resolve().parent / 'WORD.json.gz')) + parser.add_argument('--output') + parser.add_argument('--write', action='store_true') + args = parser.parse_args() + result = audit(load(args.base), load(args.candidate)) + raw = json.dumps(result, sort_keys=True, indent=2) + '\n' + if args.output: + Path(args.output).write_text(raw) + receipt = Path(__file__).resolve().parent / 'INDEPENDENT.json' + if args.write: + receipt.write_text(raw) + else: + check(receipt.read_text() == raw, 'exact independent receipt') + print('PASS_INDEPENDENT_ROOT595_RELAY_AUDIT', new_summary(result)) + + +if __name__ == '__main__': + main() diff --git a/research/p104-owned772-relay-descent/inputs/pr6143-WORD.json.gz b/research/p104-owned772-relay-descent/inputs/pr6143-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..fc6958401dfc110b48ecf6f0575111e9e2906438 GIT binary patch literal 119977 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

    fdx+|b}*lfY?>DH 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 MUt_LtU(H+@000&3F#rGn literal 0 HcmV?d00001 diff --git a/research/p104-owned772-relay-descent/native_audit.py b/research/p104-owned772-relay-descent/native_audit.py new file mode 100644 index 0000000000..a60e9b7c11 --- /dev/null +++ b/research/p104-owned772-relay-descent/native_audit.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +"""Dense all-column check of four new paid MOVE pairs in the root595 edit. + +Three are new signed native maps; 3->529 was already used as helper 731's +endpoint and is retained here as a positive control. + +The inventory/lowering comparison follows Matarener's PR5960. It uses the +unchanged Clear1nsight exact Gaussian-dyadic dense interpreter and retained +Clifford/literal compilers, authenticated before import. New contribution: +source-bound delta selection and a reproducible four-map receipt. This is +finite native coverage, not the native_all_columns uniform assumption. +Prepared for @CubeJerry with OpenAI Codex assistance. Apache-2.0. +""" +from hashlib import sha1, sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent + + +def need(ok, label): + if not ok: + raise ValueError(label) + + +def read(path): + raw = Path(path).read_bytes() + return json.loads(gzip.decompress(raw) if str(path).endswith('.gz') else raw) + + +def import_pinned(root): + pins = read(HERE / 'NATIVE-SOURCES.json')['files'] + modules = [] + for i, pin in enumerate(pins): + raw = (root / pin['path']).read_bytes() + need(len(raw) == pin['size'] and sha256(raw).hexdigest() == pin['sha256'] + and sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == pin['git_blob'], + 'immutable native source: ' + pin['path']) + name = f'root595_native_dependency_{i}' + spec = importlib.util.spec_from_file_location(name, root / pin['path']) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + modules.append(module) + return modules + + +def audit(base, candidate, root): + need(base['frames'] == candidate['frames'], 'unchanged native frames') + need(all(base[k] == candidate[k] for k in ('initial', 'final', 'live', 'ports')), 'unchanged helper maps and main adapters') + old = {(e[2], e[3]) for e in base['program'] if e[0] == 'MOVE'} + new = {(e[2], e[3]) for e in candidate['program'] if e[0] == 'MOVE'} + tasks = sorted(new - old) + need(tasks == [(3, 529), (520, 737), (529, 520), (737, 595)], 'complete new paid-MOVE-pair inventory') + main_roles = set(base['live']) | {r + 112 for r in base['live']} + old_helpers = {(base['initial'][r], base['final'][r]) + for r in range(base['public']) if r not in main_roles} + new_signed = set(tasks) - old_helpers + need(new_signed == {(520, 737), (529, 520), (737, 595)}, 'three new signed native maps') + compiler, literal, dense = import_pinned(root) + frames = candidate['frames'] + receipts = [] + control_recipe = control_expected = None + for a, b in tasks: + operator = compiler.canonical_frame(9, tuple(frames[a])).adjoint().then(compiler.canonical_frame(9, tuple(frames[b]))) + recipe, _ = compiler.lower_child(operator) + rank = abs(len(frames[a]) - len(frames[b])) + need(recipe['rank'] == rank, 'lowering rank') + actual = literal.recipe(recipe) + expected = literal.adjoint(literal.frame(frames[a], 9)) + literal.frame(frames[b], 9) + ac, ec = dense.compile_circuit(actual), dense.compile_circuit(expected) + digest = sha256() + for column in range(512): + left = dense.dense_column(ac, column) + right = dense.dense_column(ec, column) + need(left == right, f'exact column for {a}->{b}, {column}') + real, imag, exponent = left + need(sum(v*v for v in real) + sum(v*v for v in imag) == 1 << (2*exponent), 'unit column norm') + need(sum(bool(x or y) for x, y in zip(real, imag)) == 1 << rank, 'native child support rank') + digest.update(json.dumps([column, exponent, real, imag], separators=(',', ':')).encode()) + receipts.append({'frames': [a, b], 'rank': rank, 'columns': 512, + 'role': 'new_signed_map' if (a, b) in new_signed else 'existing_helper_map_positive_control', + 'matrix_sha256': digest.hexdigest()}) + if control_recipe is None: + control_recipe, control_expected = actual, expected + fault = control_recipe + (('phase', 1),) + need(literal.tableau(fault) == literal.tableau(control_recipe), 'phase-only mutation preserves signed tableau') + need(dense.first_difference(fault, control_expected) is not None, 'phase-only mutation rejected by dense interpreter') + flipped = list(control_recipe) + i = next(i for i, gate in enumerate(flipped) if gate[0] == 'C') + flipped[i] = ('C', flipped[i][1], -flipped[i][2]) + need(dense.first_difference(tuple(flipped), control_expected) is not None, 'child sign mutation rejected') + return {'paid_move_delta_maps': receipts, 'new_signed_map_count': len(new_signed), + 'columns_checked': 512*len(tasks), 'complex_entries_compared': 512*512*len(tasks), + 'unchanged_helper_maps_and_main_adapters': True, 'controls': {'absolute_phase_only': 'rejected', 'child_sign': 'rejected'}, + 'scope': 'Three new finite 9-qubit signed maps and one existing helper-map positive control; other unchanged maps reuse predecessor evidence; uniform native_all_columns remains assumed.'} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('base', nargs='?', default=str(HERE / 'inputs/pr6143-WORD.json.gz')) + parser.add_argument('candidate', nargs='?', default=str(HERE / 'WORD.json.gz')) + parser.add_argument('--source-root', type=Path, default=HERE.parents[1]) + parser.add_argument('--output', type=Path) + parser.add_argument('--write', action='store_true') + args = parser.parse_args() + result = audit(read(args.base), read(args.candidate), args.source_root) + raw = json.dumps(result, sort_keys=True, indent=2) + '\n' + if args.output: + args.output.write_text(raw) + receipt = HERE / 'NATIVE-AUDIT.json' + if args.write: + receipt.write_text(raw) + else: + need(receipt.read_text() == raw, 'exact dense native receipt') + print('PASS_ROOT595_NEW_NATIVE_MAPS', result['new_signed_map_count'], 'new signed maps;', result['columns_checked'], 'columns checked') + + +if __name__ == '__main__': + main() diff --git a/research/p104-owned772-relay-descent/pricing.py b/research/p104-owned772-relay-descent/pricing.py new file mode 100644 index 0000000000..71c972df08 --- /dev/null +++ b/research/p104-owned772-relay-descent/pricing.py @@ -0,0 +1,184 @@ +"""Complete mixed-target price, compiler and outer transfer. + +The interval and compiler bounds follow zxv and Cao Yifan. The productive +recursion is by Jacob Alan Sussman. The controller is by Cinna Davis. +Adapted from Ali Romman's PR5544/5545 for the two coupled contact changes. +Successor choices were prepared for thu-nmrc with OpenAI Codex assistance. +Helper-subspace targets were added by Ali Romman with OpenAI Codex assistance. +The source commuting-contact construction is by Pierre-Loic Doulcet (hexapode) in PR5565. +The source coupled-frame change is by Ali Romman with OpenAI Codex in PR5601. +Five fixed boundary relations are from Ali Romman's PR5602. +The shared and delayed relays are from flyingviper's PR5605 and PR5612. The preparation is from +Scratch-net's PR5606. Their costs and target debit are included. +Ali Romman's complete caller/price proof and all predecessor credit are retained. +The paid A2 change is from zxv PR5643. The three helper relations are from +Ali Romman PR5644. The four-gate change is by Ali Romman with Codex assistance. +The four interior basis changes are by Ali Romman with Codex assistance. +Paid intermediate meetings: Ali Romman with substantial OpenAI Codex assistance. +Apache-2.0. +""" +from collections import Counter +from fractions import Fraction as Q +import local as L + +KAPPA, TESTED = Q('0.003127804'), Q('0.003127809') +PREVIOUS = Q('0.003127137') + + +def encode(x): + if isinstance(x,Q): + return str(x) + if isinstance(x,dict): + return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)): + return [encode(v) for v in x] + return x + + +def assemble(local, native, word, physical): + paid, targets = Counter(), Counter() + counts = Counter() + L.need(local['helpers'] == native['helpers'], 'Every productive helper has a native target') + for e in word['physical_events']: + counts[e[0]] += 1 + if e[0] == 'LOCAL': + L.need(e[3] is False, 'Every source invocation is forward') + paid.update(local['paid']) + targets.update(local['helpers']) + elif e[0] == 'QUERY_SHEAR': + paid[1] += 104 + elif e[0] == 'IDLE': + paid[8*len(e[2])] += 208 + main = Counter() + idle = Counter({8*len(e[2]):0 for e in word['physical_events'] if e[0] == 'IDLE'}) + for e in word['physical_events']: + if e[0] == 'IDLE': + idle[8*len(e[2])] += 208 + L.need(idle == physical['whole_idle_jobs'], 'Every whole idle has a native Gaussian and full rank') + for term in word['diagonal']: + main[1+8*sum(term[1:])] += 104 + L.need(main == physical['main_targets'], 'Every main target has its full native phase') + targets.update(main) + L.need(counts['LOCAL'] == 18 and counts['QUERY_SHEAR'] == counts['IDLE'] == 15, 'Complete call census') + # Recount by the two path lengths, without using emitted main diagonals. + second_t = Counter({r:18*n for r,n in local['helpers'].items()}) + second_p = Counter({r:18*n for r,n in local['paid'].items()}) + second_t[145] += 208 + second_p[1] += 15*104 + for length in (7,8): + for j in range(1,length+1): + second_t[1+8*(j+1)] += 208 + second_p[8*(j+1)] += 208 + L.need((targets,paid) == (second_t,second_p), 'Independent full invoice') + L.need(max(targets) == 145 and max(paid) == 72, 'Maximum recursive ranks') + L.need(sum(targets.values()) == 13444 and sum(paid.values()) == 66780, 'Complete field and call counts') + L.need(sum(r*n for r,n in targets.items())-sum(r*n for r,n in paid.items()) == 760, 'Complete rank surplus') + return targets,paid,counts + + +def run(local,native,word,physical): + T,P,counts = assemble(local,native,word,physical) + E = L.load(L.ROOT/'research/higher-moment-strictification/verify.py','p104_productive_intervals') + other = L.load(L.ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py','p104_productive_second_intervals') + def margin(k): + a,b = E.moment(T,1-k), E.moment(P,1-k) + return a[0]-b[1],a[1]-b[0] + lo,hi,grid = 0,10**12,10**14 + while hi-lo > 1: + m=(lo+hi)//2 + if margin(Q(m,grid))[0] > 0: + lo=m + else: + hi=m + lower,upper = Q(lo,grid),Q(hi,grid) + signed = Counter(T) + signed.subtract(P) + cap = Q('.0034') + derivative_upper = Q(0) + for rank, count in signed.items(): + logarithm = E.log_bounds(rank) + low = E.mul(E.power(rank, 1-cap), logarithm)[0] + high = rank*logarithm[1] + derivative_upper -= count*(low if count >= 0 else high) + L.need(derivative_upper < 0, 'Unique raw crossing below the retained BIT cap') + L.need(margin(lower)[0] > 0 and margin(upper)[1] < 0, 'Strict rational crossing enclosure') + L.need(PREVIOUS < KAPPA < TESTED < lower and margin(PREVIOUS)[0] > 0, 'Changed complete bill improves the source claim') + t,u,v,c,b = 1-TESTED,Q(1,7),1024,16,17 + target,paid = E.moment(T,t),E.moment(P,t) + tl,th = other.moment(T,TESTED) + pl,ph = other.moment(P,TESTED) + L.need(tl > ph and max(tl,target[0]) <= min(th,target[1]) and max(pl,paid[0]) <= min(ph,paid[1]), 'Two exact moment engines') + alpha = E.divide(paid,target) + gamma = E.divide(E.moment(P,t+u),E.mul(E.power(c,u),target)) + delta = E.divide((Q(sum(T.values())*b),)*2,E.mul(E.power(c,TESTED),target)) + reserve,decay = Q(1,10**12),Q(125,128) + L.need(alpha[1] < 1-reserve and gamma[1] < decay and delta[1] < decay, 'All three charged tail ratios') + L.need(decay**128 < Q(1,16), 'Both tail decay blocks') + normalized = 1/(1+v*reserve)+Q(4,2**32) + L.need(normalized < 1 and c**64 < b**63, 'Full completion, splitting and rounding charges') + theta,power = Q(63,64),1024 + eta = E.scale(E.power(145,-v*TESTED),t) + L.need(2*(c**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + L.need(E.power(145,v*TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED-KAPPA)/7 + L.need(gap.numerator == 1, 'Exact compiler integer grid') + step = gap.denominator + def wins(j): + return (step*j+1)**power < 2**j + left,right=1,2 + while not wins(right): + left,right=right,2*right + while right-left > 1: + m=(left+right)//2 + if wins(m): + right=m + else: + left=m + H=step*right + L.need(H > 8*v and wins(right) and not wins(right-1), 'Finite uniform threshold with predecessor rejection') + local_routes = (sum(local['paid'].values())+native['helper_normalizers']+native['main_adapters']+4*104+4*local['owned_lifetimes'])*1000 + L.need(local['real_scalar_allowance']+local_routes < 10**7, 'Every local scalar, route and owned operation is funded') + boundary = sum(len(word['boundaries'][side+'_program']) for side in ('left','right')) + raw = 18*10**7 + 15*1664 + 32*104*(len(word['physical_events'])+boundary) + raw += 32*104*(26+1000) + L.need(raw < 10**9, 'Complete nonrecursive raw bound') + bit = L.read(L.ROOT/'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']) + ordinary=(1-atom)*Q(bit['after_cover'])+atom*Q('.0000384599') + admitted=Q(bit['admitted']) + L.need(atom > ordinary > admitted > TESTED and atom < 1-ordinary, 'Retained BIT admission and stock') + outer_module=L.load(L.ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py','p104_productive_outer') + params={'kappa':KAPPA,'tested_saving':TESTED,'complex_uniform_saving':KAPPA+6*gap, + 'b':KAPPA+5*gap,'a':KAPPA+4*gap,'q':KAPPA+3*gap,'bit_saving':admitted, + 'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} + outer=outer_module.ledger(params) + outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) + L.need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + L.need(all(x > 0 for key in ('strict_checks','functional_checks') for x in outer[key].values()), 'All outer inequalities strict') + wrong_cutoff = E.divide((Q(sum(T.values())*21),)*2,E.mul(E.power(20,TESTED),target)) + L.need(wrong_cutoff[0] > 1, 'Old cutoff fails with this helper inventory') + old_completion = E.divide((Q(sum(T.values())*18),)*2,E.mul(E.power(17,TESTED),target)) + L.need(old_completion[0] > Q(39,40), 'PR5718 completion-tail bound fails with the new target count') + old_offset = E.divide(E.moment(P,t+Q(1,5)),E.mul(E.power(16,Q(1,5)),target)) + L.need(old_offset[0] > decay, 'The old tail offset fails at the new cutoff') + bad=outer_module.ledger(dict(params,bit_saving=Q('.0027'))) + L.need(any(x <= 0 for x in bad['strict_checks'].values()), 'Insufficient BIT contract rejected') + return encode({'kappa':KAPPA,'kappa_decimal':'0.003127804','previous_pr6143':PREVIOUS,'gain':KAPPA-PREVIOUS, + 'relative_gain_percent':100*(KAPPA/PREVIOUS-1),'raw_root_interval':[lower,upper], + 'raw_headroom':[lower-KAPPA,upper-KAPPA], + 'raw_ceiling':{'interval':[Q(0),cap],'derivative_upper':derivative_upper},'margin_at_previous':E.display(margin(PREVIOUS)), + 'targets':T,'paid':P,'productive_fields':sum(T.values()),'paid_calls':sum(P.values()), + 'rank_mass_surplus':760,'full_forward_calls':18,'query_shears':15,'whole_idle_jobs':3120, + 'strictification':{'tested':TESTED,'power':v,'cutoff':c,'floor':b,'tail_offset':u,'reserve':reserve,'tail_decay':decay,'tail_block':128, + 'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta),'normalized_paid_upper':normalized}, + 'compiler':{'theta':theta,'logarithm_power':power,'eta':E.display(eta),'gap':gap,'H':H,'N':'2^'+str(H), + 'integer_test_exponent':right,'uniform_saving':params['complex_uniform_saving'],'word_materialized':False}, + 'nonrecursive':{'local_scalar':local['real_scalar_allowance'],'local_routes':local_routes, + 'raw_scalar_upper':raw,'raw_budget':10**9,'peak_owned_fields':local['peak_owned_fields'], + 'fixed_scalar_growth_bound':'At most 2^(16*26000) before native factors; a declared constant, not an attained norm.', + 'local_paid_rank_mass':local['paid_rank_mass'], + 'tensor_native_growth_bound':'Each rank-r Gaussian has row l1 norm at most 2^(rf); use local_paid_rank_mass for the whole word.'}, + 'ordinary_BIT':bit,'outer':outer, + 'negative_controls':{'source_completion':'Rejected at cutoff17, floor18 and decay39/40', + 'source_offset':'Rejected at cutoff16 with tail offset1/5', + 'old_cutoff':'Rejected by completion-tail ratio greater than one','old_BIT':'Rejected by outer inequalities'}}) diff --git a/research/p104-owned772-relay-descent/sources.py b/research/p104-owned772-relay-descent/sources.py new file mode 100644 index 0000000000..c2b4b5d2c0 --- /dev/null +++ b/research/p104-owned772-relay-descent/sources.py @@ -0,0 +1,81 @@ +"""Authenticate PR6143's word (the base of the edit) and open PR5827's published package (the verifier chain) +before importing any of its code. + +Adapted for @CubeJerry with OpenAI Codex assistance from DreamingOfClouds' PR6143/PR6030 +(with Claude Opus 5.5 assistance) and the credited Ali Romman chain. Apache-2.0. +The archive format and per-file checks follow PR5827's own sources.py (Ali Romman, OpenAI Codex assistance). +""" +from contextlib import contextmanager +from hashlib import sha1, sha256 +from pathlib import Path, PurePosixPath +import importlib.util +import json +import sys +import tarfile +import tempfile + +HERE = Path(__file__).resolve().parent + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def read(path): + import gzip + raw = Path(path).read_bytes() + return json.loads(gzip.decompress(raw) if str(path).endswith('.gz') else raw) + + +def load(path, name): + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(raw, pin): + need(len(raw) == pin['size'], 'Exact source size: ' + pin['path']) + need(sha256(raw).hexdigest() == pin['sha256'], 'Exact source SHA256: ' + pin['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == pin['git_blob'], + 'Exact source Git blob: ' + pin['path']) + + +@contextmanager +def sources(): + """Yield the directory of PR5827's extracted package (every file authenticated).""" + pins = json.loads((HERE / 'SOURCES.json').read_bytes()) + archive = pins['source_archive'] + path = HERE.parents[1] / archive['repository_path'] + need(sha256(path.read_bytes()).hexdigest() == archive['sha256'], 'Exact source archive') + members = {p['path']: p for p in pins['archived_files']} + need(len(members) == len(pins['archived_files']) == archive['files'], 'Exact source inventory') + with tempfile.TemporaryDirectory(prefix='p104-base-source-') as directory: + root = Path(directory) + with tarfile.open(path, 'r:') as bundle: + seen = set() + for member in bundle.getmembers(): + name = PurePosixPath(member.name) + need(member.isfile() and not name.is_absolute() and '..' not in name.parts + and '\\' not in member.name and ':' not in member.name, + 'Regular relative source file') + need(member.name in members and member.name not in seen, 'Unique declared source file') + seen.add(member.name) + raw = bundle.extractfile(member).read() + authenticate(raw, members[member.name]) + target = root.joinpath(*name.parts) + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(raw) + need(seen == set(members), 'Complete source archive') + yield root / archive['package'] + + +def base_word(): + """PR6143's WORD.json.gz payload, authenticated against the exact pending-head pin in SOURCES.json.""" + import gzip + pin = json.loads((HERE / 'SOURCES.json').read_bytes())['base_word'] + raw = (HERE / pin['local_path']).read_bytes() + authenticate(raw, pin) + return json.loads(gzip.decompress(raw)) diff --git a/research/p104-owned772-relay-descent/test_portability.py b/research/p104-owned772-relay-descent/test_portability.py new file mode 100644 index 0000000000..e0b2cb071f --- /dev/null +++ b/research/p104-owned772-relay-descent/test_portability.py @@ -0,0 +1,87 @@ +"""Regenerated-output portability controls; immutable inputs stay exact. + +Maintainer repair by Douglas Colkitt with OpenAI Codex assistance. +Construction and verifier: DreamingOfClouds; retained predecessors in README. +Apache-2.0. +""" +from copy import deepcopy +import gzip +import io +import json +from pathlib import Path +import sys +import unittest +import zlib + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from construct import matches_shipped, payload +from sources import authenticate + + +class WordPortabilityTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.shipped = (HERE / 'WORD.json.gz').read_bytes() + cls.word = json.loads(gzip.decompress(cls.shipped)) + + def test_original_word(self): + self.assertTrue(matches_shipped(self.word, self.shipped)) + + def test_os_header_variants(self): + # Byte 9 is gzip's OS field. Neither the payload nor CRC changes. + for code in (0, 3, 19, 255): + changed = bytearray(self.shipped) + changed[9] = code + with self.subTest(os_code=code): + self.assertTrue(matches_shipped(self.word, bytes(changed))) + + def test_compression_timestamp_and_filename(self): + for level in (1, 6, 9): + with self.subTest(level=level): + buffer = io.BytesIO() + with gzip.GzipFile(filename='different-name.json', mode='wb', + compresslevel=level, mtime=1700000000, + fileobj=buffer) as stream: + stream.write(payload(self.word)) + self.assertNotEqual(buffer.getvalue(), self.shipped) + self.assertTrue(matches_shipped(self.word, buffer.getvalue())) + + def test_changed_event_and_unknown_field_rejected(self): + changed = deepcopy(self.word) + changed['program'].pop() + self.assertFalse(matches_shipped(changed, self.shipped)) + changed = deepcopy(self.word) + changed['unexpected_proof_field'] = 1 + self.assertFalse(matches_shipped(changed, self.shipped)) + + def test_boolean_is_not_an_integer(self): + changed = deepcopy(self.word) + move = next(event for event in changed['program'] if event[0] == 'MOVE') + self.assertIs(type(move[4]), bool) + move[4] = int(move[4]) + # Python object equality alone would silently accept this mutation. + self.assertEqual(changed, self.word) + self.assertFalse(matches_shipped(changed, self.shipped)) + + def test_extra_payload_and_corrupt_container_rejected(self): + self.assertFalse(matches_shipped(self.word, gzip.compress(payload(self.word) + b' '))) + self.assertFalse(matches_shipped(self.word, self.shipped + gzip.compress(b'not a word'))) + for bad in (self.shipped[:20], self.shipped[:-8] + b'\0' * 8): + with self.subTest(size=len(bad)): + with self.assertRaises((gzip.BadGzipFile, EOFError, zlib.error)): + matches_shipped(self.word, bad) + + def test_immutable_source_still_uses_exact_bytes(self): + pin = json.loads((HERE / 'SOURCES.json').read_bytes())['base_word'] + raw = (HERE / pin['local_path']).read_bytes() + authenticate(raw, pin) + changed = bytearray(raw) + changed[9] = 3 if raw[9] != 3 else 19 + self.assertEqual(gzip.decompress(raw), gzip.decompress(changed)) + with self.assertRaises(ValueError): + authenticate(bytes(changed), pin) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/research/p104-owned772-relay-descent/verify.py b/research/p104-owned772-relay-descent/verify.py new file mode 100644 index 0000000000..e6af37ceae --- /dev/null +++ b/research/p104-owned772-relay-descent/verify.py @@ -0,0 +1,149 @@ +"""Verify the edited PR6143 word with PR5827's own chain (the chain PR6143 used). Apache-2.0. + +Adapted for @CubeJerry with OpenAI Codex assistance from DreamingOfClouds' PR6143/PR6030 +(with Claude Opus 5.5 assistance) and the credited Ali Romman chain. The chain below is +PR5827's own verifier (its package is authenticated from inputs/ and loaded unmodified, apart from +pricing.py whose declared literal edits are in PRICING-EDITS.json); the word is regenerated by +construct.py from PR6143's word (authenticated against its exact pending-head pin) and the explicit edit list. +Parts: --part build (authentication, regeneration, exact replay and storage inventory), + --part chain (the complete chain; includes build). Default: chain. +""" +from collections import Counter +from contextlib import ExitStack +from copy import deepcopy +from fractions import Fraction as Q +from pathlib import Path +import json, sys, tempfile +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from sources import sources, load, need, read, authenticate, base_word +from construct import construct, matches_shipped + +EXPECT = read(HERE / 'EXPECT.json') + + +def reject(action): + try: + action() + except ValueError as error: + return str(error) + raise ValueError('Invalid control accepted') + + +def delta(after, before): + value = Counter(after) + value.subtract(before) + return {str(r): n for r, n in sorted(value.items()) if n} + + +def run(part): + with ExitStack() as contexts: + parent = contexts.enter_context(sources()) # PR5827's extracted package + cursor = contexts.enter_context(load(parent / 'sources.py', 'base_source_top').sources()) + for depth in range(7): # PR5827's own seven-deep source chain + module = load(cursor / 'sources.py', 'base_source_' + str(depth)) + cursor, root = contexts.enter_context(module.sources()) + text = (parent / 'pricing.py').read_text(encoding='utf-8') + for old, new in read(HERE / 'PRICING-EDITS.json'): + need(text.count(old) == 1, 'Unique declared pricing edit') + text = text.replace(old, new) + need(text == (HERE / 'pricing.py').read_text(encoding='utf-8'), 'Shipped pricing.py = PR5827 pricing.py + declared edits only') + L = load(parent / 'local.py', 'local') + L.ROOT = root + source = base_word() # PR6143's word, authenticated + word = construct(source, read(HERE / 'EDIT.json.gz')) + need(matches_shipped(word, (HERE / 'WORD.json.gz').read_bytes()), 'Entire regenerated WORD payload, byte for byte') + need(all(type(e[4]) is bool for e in word['program'] if e[0] == 'MOVE'), 'Canonical MOVE private flags') + baseline, local = L.replay(source), L.replay(word) + need((local['public_inputs'], local['owned_fields'], local['owned_lifetimes'], local['peak_owned_fields']) == + (baseline['public_inputs'], baseline['owned_fields'], baseline['owned_lifetimes'], baseline['peak_owned_fields']) + == tuple(EXPECT['inventory']), 'Unchanged storage inventory') + need(len(word['program']) == EXPECT['events'] <= 26000, 'Event count within the retained bound') + need(delta(local['paid'], baseline['paid']) == EXPECT['paid_delta'], 'Exact paid-profile delta') + need(delta(local['helpers'], baseline['helpers']) == EXPECT['helper_delta'], 'Exact productive-target delta') + print('PASS regenerated WORD.json.gz, exact replay, storage inventory, paid delta', EXPECT['paid_delta'], flush=True) + if part == 'build': + print(EXPECT['status'] + '_BUILD'); return None + columns = L.reverse_columns(word) + need(columns['columns'] == 799, 'All input columns') + print('PASS all input columns and separate transpose', flush=True) + native = L.native(word) + C = load(root / 'research/p104-productive-controller/caller.py', 'base_caller') + caller = C.construct() + need(caller == read(root / 'research/p104-productive-controller/CONTROLLER.json'), 'Exact physical caller') + physical = C.physical(caller, word) + print('PASS native maps, absolute phases, adapters and complete physical caller', flush=True) + P = load(HERE / 'pricing.py', 'edit_price') + price = P.run(local, native, caller, physical) + need(price['raw_root_interval'] == EXPECT['interval'], 'Exact crossing interval') + need((price['paid_calls'], price['productive_fields'], price['rank_mass_surplus']) == + (EXPECT['paid_calls'], EXPECT['productive_fields'], EXPECT['rank_mass_surplus']), 'Invoice') + need(len(price['outer']['strict_checks']) == 54 and len(price['outer']['functional_checks']) == 4, 'Outer inventory') + # the base word's profile, scaled as in the invoice, must fail at the new claim + E = L.load(root / 'research/higher-moment-strictification/verify.py', 'base_price_engine') + old_p = {int(r): n for r, n in price['paid'].items()} + old_t = {int(r): n for r, n in price['targets'].items()} + for r in set(baseline['paid']) | set(local['paid']): + old_p[r] = old_p.get(r, 0) + 18 * (baseline['paid'].get(r, 0) - local['paid'].get(r, 0)) + for r in set(baseline['helpers']) | set(local['helpers']): + old_t[r] = old_t.get(r, 0) + 18 * (baseline['helpers'].get(r, 0) - local['helpers'].get(r, 0)) + margin = E.moment(old_t, 1 - P.KAPPA)[1] - E.moment(old_p, 1 - P.KAPPA)[0] + need(margin < 0, 'PR6143 full profile fails at the new claim') + print('PASS both rational engines, completion, compiler and all outer costs', price['raw_root_interval'], flush=True) + + controls = C.controls(caller) + for label, make in EXPECT_CONTROLS(word, source): + controls[label] = reject(make) + bad = deepcopy(local); bad['paid'][1] -= 1 + controls['unpaid_query'] = reject(lambda: P.assemble(bad, native, caller, physical)) + bad = deepcopy(local); bad['helpers'][9] += 1 + controls['extra_target_credit'] = reject(lambda: P.assemble(bad, native, caller, physical)) + bw = read(HERE / 'SOURCES.json')['base_word']; raw = (HERE / bw['local_path']).read_bytes() + controls['damaged_base_word'] = reject(lambda: authenticate(bytes([raw[0] ^ 1]) + raw[1:], bw)) + for pin in read(HERE / 'SOURCES.json')['archived_files'][:3]: + raw = (parent / Path(pin['path']).relative_to(read(HERE / 'SOURCES.json')['source_archive']['package'])).read_bytes() + controls['damaged_source_' + Path(pin['path']).name] = reject( + lambda raw=raw, pin=pin: authenticate(bytes([raw[0] ^ 1]) + raw[1:], pin)) + result = dict(status=EXPECT['status'], base_commit=EXPECT['base_commit'], source_local=baseline, local=local, + paid_delta=EXPECT['paid_delta'], target_delta=EXPECT['helper_delta'], separate_columns=columns, + native=native, physical_caller=physical, complete_cost=price, + base_margin_upper_at_new_claim=margin, controls=controls, + limits=['All five inherited framework assumptions remain.', + 'The large uniform word and rounded multiplier are not materialized.', + 'Author checks do not establish independent acceptance.', + 'The selected frontier is unchanged.']) + return P.encode(result) + + +def EXPECT_CONTROLS(word, source): + """Corruptions of the edited word that the exact replay must reject.""" + L = sys.modules['local'] + out = [] + for label, index in EXPECT['control_sites'].items(): + bad = deepcopy(word); bad['program'].pop(index) + out.append(('missing_' + label, lambda bad=bad: L.replay(bad))) + for label, index in EXPECT['sign_sites'].items(): + bad = deepcopy(word); q = Q(bad['program'][index][-2]); bad['program'][index][-2] = str(-q) + out.append(('wrong_sign_' + label, lambda bad=bad: L.replay(bad))) + return out + + +def main(): + part = sys.argv[sys.argv.index('--part') + 1] if '--part' in sys.argv else 'chain' + need(part in ('build', 'chain'), '--part must be build or chain') + with tempfile.TemporaryDirectory(prefix='p104-edit-bytecode-') as cache: + sys.pycache_prefix = cache + result = run(part) + if result is None: + return + path = HERE / 'RESULT.json' + if '--write' in sys.argv: + path.write_bytes((json.dumps(result, sort_keys=True, indent=2) + '\n').encode()) + else: + need(read(path) == result, 'Exact retained output: RESULT.json') + print(EXPECT['status'], flush=True) + + +if __name__ == '__main__': + main()