From 6784bc3d6e38d2092f4b43da5c1d2dabbd763092 Mon Sep 17 00:00:00 2001 From: flyingviper <44173173+flyingviper@users.noreply.github.com> Date: Sun, 25 Oct 2026 21:28:14 +0100 Subject: [PATCH 1/2] Retain exact P104 predecessor words for owned-cleanup audit --- .../inputs/README.md | 26 ++++++++++++++++++ .../inputs/pr5561-WORD.json.gz | Bin 0 -> 106453 bytes .../inputs/pr5569-WORD.json.gz | Bin 0 -> 105113 bytes 3 files changed, 26 insertions(+) create mode 100644 research/p104-owned-cleanup-obstruction/inputs/README.md create mode 100644 research/p104-owned-cleanup-obstruction/inputs/pr5561-WORD.json.gz create mode 100644 research/p104-owned-cleanup-obstruction/inputs/pr5569-WORD.json.gz diff --git a/research/p104-owned-cleanup-obstruction/inputs/README.md b/research/p104-owned-cleanup-obstruction/inputs/README.md new file mode 100644 index 0000000000..c556a33681 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/inputs/README.md @@ -0,0 +1,26 @@ +# Retained predecessor inputs + +These two gzip files are unchanged predecessor data, not new constructions. +They are retained so the new obstruction checker has a small, self-contained +source closure. Both compressed byte hashes are enforced before decoding. + +Source: [PR5569](https://github.com/CrocSwap/integer-mult-bounds/pull/5569), +head `af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf`: + +| Retained file | Original repository path | Compressed SHA256 | +| --- | --- | --- | +| `pr5569-WORD.json.gz` | `research/p104-priced-handoff/WORD.json.gz` | `12224e9a13a49c830b304338a8d31610fb43da15d1a650537733c27f7864310f` | +| `pr5561-WORD.json.gz` | `research/p104-priced-handoff/inputs/pr5561-WORD.json.gz` | `b3701d78bee3661382ebe5414e678dfc9ee292e254cb9dc56339c2d2f45fdf44` | + +The second file is the PR5561 headline word retained by PR5569. It supplies the +known 706/173 successful cleanup as a positive control; it is not our baseline. +The package's standard provenance pins refer to the retention commit in its own +published history. Original source paths and head are attribution and audit +information, not a claim that a foreign PR commit is an ancestor of this PR. + +Credit: Joel Pulikkan (GamingPuzzled), with Claude Opus 5.5 assistance, for +PR5569; DreamingOfClouds for PR5561 and PR5553; thu-nmrc for PR5551; +aliromman for PR5544/5545; David Arias, Cinna Davis and Gareth Davidson for the +retained local verifier lineage; zxv for the productive-helper paradigm and +PR5554; Cao Yifan for PR4610 native semantics; GamingPuzzled for PR5472. +The source credits PR2305/2152/2219 as earlier lineage. Apache-2.0. diff --git a/research/p104-owned-cleanup-obstruction/inputs/pr5561-WORD.json.gz b/research/p104-owned-cleanup-obstruction/inputs/pr5561-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c367d865a154ffd2ae0b6f6053469580a139f487 GIT binary patch literal 106453 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 b{{4Ua$N&77fBm!m@xT6mJ%cHAOV9}bMs)Xm literal 0 HcmV?d00001 From 711257763d2da7db14f3f9607f5f7b1e785f745d Mon Sep 17 00:00:00 2001 From: flyingviper <44173173+flyingviper@users.noreply.github.com> Date: Sun, 25 Oct 2026 21:36:02 +0100 Subject: [PATCH 2/2] Prove scoped P104 owned delivery floors and public replacement obstructions --- .../LITERATURE.md | 31 + .../PROOF-738.md | 135 + .../PROOF-blocks.md | 141 + .../PROOF-joint-cut.md | 54 + .../PROOF-loss-space.md | 84 + .../PROOF-windows.md | 149 + .../p104-owned-cleanup-obstruction/README.md | 136 + .../RESULT.json | 5509 +++++++++++++++++ .../SOURCES.json | 41 + .../p104-owned-cleanup-obstruction/TASK.json | 130 + .../VERIFY.json | 22 + .../check_738.py | 275 + .../check_lifetimes.py | 259 + .../check_producers.py | 253 + .../check_windows.py | 241 + .../p104-owned-cleanup-obstruction/verify.py | 58 + 16 files changed, 7518 insertions(+) create mode 100644 research/p104-owned-cleanup-obstruction/LITERATURE.md create mode 100644 research/p104-owned-cleanup-obstruction/PROOF-738.md create mode 100644 research/p104-owned-cleanup-obstruction/PROOF-blocks.md create mode 100644 research/p104-owned-cleanup-obstruction/PROOF-joint-cut.md create mode 100644 research/p104-owned-cleanup-obstruction/PROOF-loss-space.md create mode 100644 research/p104-owned-cleanup-obstruction/PROOF-windows.md create mode 100644 research/p104-owned-cleanup-obstruction/README.md create mode 100644 research/p104-owned-cleanup-obstruction/RESULT.json create mode 100644 research/p104-owned-cleanup-obstruction/SOURCES.json create mode 100644 research/p104-owned-cleanup-obstruction/TASK.json create mode 100644 research/p104-owned-cleanup-obstruction/VERIFY.json create mode 100644 research/p104-owned-cleanup-obstruction/check_738.py create mode 100644 research/p104-owned-cleanup-obstruction/check_lifetimes.py create mode 100644 research/p104-owned-cleanup-obstruction/check_producers.py create mode 100644 research/p104-owned-cleanup-obstruction/check_windows.py create mode 100644 research/p104-owned-cleanup-obstruction/verify.py diff --git a/research/p104-owned-cleanup-obstruction/LITERATURE.md b/research/p104-owned-cleanup-obstruction/LITERATURE.md new file mode 100644 index 0000000000..b5bfc23ce5 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/LITERATURE.md @@ -0,0 +1,31 @@ +# Primary literature consulted + +These sources informed questions and proof organization. None certifies the +P104 ownership, native operations or recursive tariff used here. + +- Bostan, Lecerf and Schost, *Tellegen's Principle into Practice*, ISSAC 2003 + ([author-hosted paper](https://mathexp.eu/bostan/publications/BoLeSc03.pdf)). + Linear-program transposition helps inspect how local errors reach outputs. + The repository already has an owned transpose construction; generic + transposition is not claimed as new here. +- Schaeffer and Perkowski, *A Cost Minimization Approach to Synthesis of Linear + Reversible Circuits* ([primary preprint](https://arxiv.org/abs/1407.0070)). + Bidirectional synthesis motivates considering both prefix and suffix maps. + Our condition `S(R-T)P=0` and its full-rank consequence are elementary linear + algebra, independently proved here; no P104 cost theorem comes from the paper. +- Paradis, Bichsel and Vechev, *Reqomp: Space-constrained Uncomputation for Quantum + Circuits*, Quantum 8, 1258 (2024) + ([primary preprint](https://arxiv.org/abs/2212.10395)). Value-version scheduling + motivates earlier equivalent producers or changed lifetimes. The loss-space + invariant tests unchanged scalar values. P104's inherited owned CLEAR can + erase a nonzero field, so quantum uncomputation costs cannot replace this + source's ownership contract. + +A genuinely different next test is coupled synthesis of a larger public+owned +window containing the public contact that causes a conflict and at least two +lifetimes. Allow intermediate public bases and payloads to change while +requiring the exact external map, then price the complete signed recursive +invoice. This is our proposed application of literature ideas, not a published +P104 result. Reject a candidate before full pricing if its altered dependency +cannot preserve external reads. None of these references establishes that +such a candidate exists or improves the bound. diff --git a/research/p104-owned-cleanup-obstruction/PROOF-738.md b/research/p104-owned-cleanup-obstruction/PROOF-738.md new file mode 100644 index 0000000000..37738e87fa --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/PROOF-738.md @@ -0,0 +1,135 @@ +# The exceptional owned lifetime cannot lose a delivery stop in this model + +This concerns owned role738 in the pinned PR5569 word. Unlike the other seven +owned lifetimes, its descending route has several recipient contacts. We ask +whether one stop can be removed by relocating these five delivery ADDs within +their recipient idle windows, or by replacing a delivery with an arbitrary +linear combination of public registers at one common chart. All surrounding +scalar events, dependencies and contact charts remain fixed. This is a broader +test than the original owned-holder scan, but still a local model. + +## Delivery-frame intervals + +Role738 is initialized at frame591 of dimension8, copies public role133 and +scales it by -1/2, then is cleared at frame597 of dimension1. Let its copied +value be D. Its five deliveries are: + +| Recipient | Source event | Coefficient of D | Allowed contact dimension | +|---|---:|---:|---:| +|159|13412|-1|7| +|203|13414|2|6| +|148|13417|2|3 or4| +|710|13420|1|1| +|734|13422|1|1| + +The intervals are derived, not assumed. Remove the nominated delivery from +its recipient's scalar chronology. Let A and B be the preceding and following +remaining scalar-contact charts. A public recipient at a new contact F needs +A subseteq F subseteq B. The descending owned route from591 to597 needs +597 subseteq F subseteq591. Therefore + +``` +span(A + 597) subseteq F subseteq B intersect 591. +``` + +Exact binary spans yield the table. For recipient148 the lower endpoint has +dimension3 and the upper endpoint dimension4; the other intervals are single +subspaces. Reordering cannot evade the resulting strict descending dimension +order. Every route still includes + +``` +8 -> 7 -> 6 -> {3 or4} -> 1. +``` + +For either choice the direct route through the mandatory stops has paid +rank histogram 2H1+H2+H3. Here H_d(t)=d^t for 0{3 or4}->5, with histogramH1+H2 in either case. Additional stops +cannot lower an increasing concave tariff; they split a rank into smaller +positive pieces. No paid stop disappears in this changed-contact family. + +The feasibility and costs of other scalar events have not been weakened. The +table is already enough to rule out a gain from rearranging these deliveries. + +## Why multiple public partners do not bypass one nominated delivery + +The normalized public transfer matrix is invertible at every source cut. This +is certified structurally, without a large numerical rank calculation: + +1. Public ADD and nonzero SCALE are elementary invertible row operations. +2. Each source owned lifetime copies one public producer and only scales that + copy. The producer remains unchanged throughout the owned lifetime. +3. An ADD from that owned copy to a *different* public destination is therefore + an elementary public shear by the still-present producer row. +4. INIT, CLEAR and MOVE do not change the normalized public rows. + +The checker verifies all these conditions on the complete source program: +20,947 effective public ADDs, including33 owned-sourced shears, and707 nonzero +public SCALEs. Thus the735 current public rows form a basis at every cut. + +For each cut, D consequently has a unique coordinate vector c in that current +public basis. Its initial vector is derived by exact symbolic replay to the +owned COPY. Thereafter coordinates can be transported exactly through each +elementary operation. For `row_r += q row_s`, the fixed functional's coordinates +change by `c_s -= q c_r`; for `row_r *= q`, they change by `c_r /= q`. +The checker confirms that c is exactly `-1/2` on role133 and zero elsewhere +both after the producer's final contributing event13376 and at the owned +copy/scale boundary13410. Earlier cuts are included through the same exact +coordinate propagation. + +Any public-only linear combination equal to D must use every public row in +the nonzero support of c. Extra public partners cannot cancel this requirement, +because the entire public row family is a basis. At a single common contact, +all these necessary rows and the recipient must share a feasible chart. + +The checker examines every boundary in each recipient's idle window after +removing its nominated delivery: + +| Recipient | Inclusive preceding-contact boundary | Exclusive next contact | Cuts checked | +|---|---:|---:|---:| +|159|13363|15575|2212| +|203|13245|14027|782| +|148|13233|14018|785| +|710|817|13524|12707| +|734|804|14006|13202| + +At all29,688 recipient/cut pairs, the necessary public support and recipient +contain a pair of incompatible scalar windows: some vector in one lower +boundary chart is absent from another upper boundary chart. This rules out +every common chart, not just the original delivery chart or listed frames. +The recipient's own coordinate in c is zero throughout each tested window, +so there is no omitted self-SCALE alternative. + +Removing the nominated ADD is compatible with using the original donor rows. +Before that ADD nothing differs. Afterward and before the recipient's next +scalar contact, only its own row differs, by a multiple of D. The checked zero +recipient coordinate means the same coordinates on all other public rows still +represent D; those donors and their windows are unchanged. This is a test for +one nominated public replacement with its surrounding contacts fixed, not a +simultaneous synthesis theorem for multiple changed public dependencies. + +These are necessary geometric tests over arbitrary rational coefficients. +They therefore rule out the narrower dyadic legal scalar model without a +separate dyadic synthesis search. The result is a source-derived obstruction, +not a failed search over possible partner counts or coefficients. + +## Scope and controls + +This does not exclude new owned copies, multiple-chart delivery networks, +changed surrounding scalar dependencies, changed source/terminal boundaries, +or a different target functional. In particular, public-basis uniqueness does +not make owned copies useless: a copy can carry the same value on a descending +chart precisely where its original public producer cannot go. + +Four semantic controls reject changing a copied producer while its owned copy +is live, a zero public SCALE, an altered target functional, and a false zero +separating vector. A two-register positive control checks the direction of the +inverse covector update. The root package authenticates source bytes and checks +the entire original arbitrary-input map independently of this local gate. + +No new kappa, global optimum, or general barrier to owned-temporary cleanup is +claimed. The useful conclusion is that a successor mechanism must change a +specific dependency or boundary rather than further optimize these five +fixed-neighbor delivery windows. + +Source and contributor attribution are the same as README.md and inputs/README.md. Prepared with +substantial OpenAI Codex assistance; Apache-2.0. diff --git a/research/p104-owned-cleanup-obstruction/PROOF-blocks.md b/research/p104-owned-cleanup-obstruction/PROOF-blocks.md new file mode 100644 index 0000000000..c5e26e1a94 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/PROOF-blocks.md @@ -0,0 +1,141 @@ +FIXED-DELIVERY OWNED BLOCKS: A SCOPED RECURSIVE-MOMENT FLOOR + +Status: source-bound proof with exact finite checks. No new kappa is claimed. + +Source and reproducibility +-------------------------- +The source is PR5569 head af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf, +research/p104-priced-handoff/WORD.json.gz. Its compressed SHA256 is +12224e9a13a49c830b304338a8d31610fb43da15d1a650537733c27f7864310f. +The registered verify.py calls check_lifetimes.py using Python's standard +library. It imports no predecessor verifier and compares a committed receipt. This audit checks exact rational +scalar rows, frame nesting, local rank tariffs and two-sided boundaries. It is +not a substitute for the source's native character and complete funding replay. + +Definitions and permitted replacements +-------------------------------------- +Let H_d(t)=d^t for 0b>=1. The required map is + + v -> v, x_j -> x_j+c_j v, c_j != 0. + +Under the permitted replacement model, every replacement pays at least + + m H_b(t) + H_(a-b)(t). + +This theorem is useful when a literal implementation attains the floor. It +does not assert that arbitrary given frames admit such an implementation. + +Proof. Each physical public recipient has to ascend from dimension0 to b. +If its ascents have ranks d_1,...,d_k, their sum is b; because +sum_i d_i^t >= (sum_i d_i)^t, its paid moment is at least H_b(t). Summing these +disjoint public moves gives m H_b(t). + +At least one final recipient contains a nonzero v coefficient. Expand its +coefficient through the chronological linear circuit. There is a nonzero +dependency path from the source entry to that recipient exit: zero INIT and +CLEAR cannot create the v coefficient, and cancellation of several paths +cannot leave a nonzero coefficient when there were no contributing paths. +Along this path scalar operations preserve frame dimension; public MOVEs have +nonnegative dimension change and owned MOVEs have nonpositive dimension +change. The path starts at dimension a and ends at dimension b. Its total +owned descent rank is therefore at least a-b. If these descents have ranks +r_1,...,r_l, their tariff is at least + + sum_i r_i^t >= (sum_i r_i)^t >= (a-b)^t. + +These owned moves are disjoint from the public moves charged above. All other +paid events have nonnegative tariff, proving the bound. Auxiliary dimension, +number of fields, rational coefficients, internal cancellation and uncompute +strategy do not change this argument. END PROOF. + +Application to the eight literal lifetimes +------------------------------------------ +Intervals below are zero-based and half open. All seven uniform stars have +a=8,b=1, source unchanged, owned exit zero, and independent actual prefix rows. + +owned interval source recipients coefficient tariff +735 [13377,13388) 173 704,705,706 +1/2 3H1+H7 +736 [13388,13399) 151 707,708,733 +1/2 3H1+H7 +737 [13399,13408) 146 709,732 -1/2 2H1+H7 +738 [13408,13424) 133 159,203,148,710,734 varied 5H1+H2+H3 +739 [13424,13439) 256 712,713,714,715,716 +1/4 5H1+H7 +740 [13439,13454) 92 717,718,719,720,721 +1/4 5H1+H7 +741 [13454,13469) 9 722,723,724,725,726 +1/4 5H1+H7 +742 [13469,13484) 240 727,728,729,730,731 -1/4 5H1+H7 + +For each of the seven stars, the literal cost attains the theorem. Therefore +even a changed internal scalar word cannot lower that block's raw recursive +paid moment, at any 07,6->6,2->3,0->1,0->1. Its public tariff is3H1 and its owned +tariff is2H1+H2+H3, delivering at levels7,6,3,1,1. The elementary dimension-path +argument only gives3H1+H7. No tight arbitrary-replacement bound for738 is claimed. +For example, attempting to deliver148 at its entry frame467 and then continue +down to frame597 fails because frame597=[82] is not contained in +frame467=[45,194]. This rejects that one template only. + +Why the local target map is forced by these two-sided cuts +--------------------------------------------------------- +For a block let P be the matrix of its public entry rows on independent +original scalar symbols, and S the fixed suffix map from its public exit +coordinates to all final public coordinates. Let T be the literal local map +and R a proposed local map. When the replacement cannot access external +coordinates and leaves those coordinates unchanged, full-word equality is + + S (R-T) P = 0. + +The checker verifies that P has full row rank and S has full column rank for +all eight blocks. The ranks are4,4,3,6,6,6,6,6, respectively. Thus a right inverse +of P and a left inverse of S imply R=T. This is an elementary finite-dimensional +linear algebra fact; it is not attributed as a new external theorem. + +The checker also verifies that retired owned coordinates have no subsequent +public effect, but their required zero exit is an independent condition. The +absence of public suffix influence does not authorize leaving private garbage. +Each block has an omitted-delivery negative control that demonstrably changes +at least one final public scalar output. + +Important independence caveat +----------------------------- +In the actual source, register173 is a helper, not a live main register. +Its prefix row has118 nonzero original coefficients and its information also +occurs in external registers. The verified row rank says the listed local +coordinates are linearly independent; it does not say their information exists +nowhere else. This is why outside side-information reuse is explicitly outside +the fixed-delivery theorem. In particular, this theorem does not prove that +the literal COPY producer is globally optimal. + +Scope of the result +------------------- +The seven tight floors concern raw recursive paid moments for fixed local +public boundaries and unchanged productive targets. They do not establish a +new complete bound, exclude lower ordinary scalar compilation costs, certify +new credits, or rule out shared multi-block construction or changing the +global public schedule. The eighth lifetime is deliberately left unresolved +by the stronger changed-internal-word claim. See PROOF-loss-space.md for a +separate global but non-additive preparation bound. + +Prepared for flyingviper with substantial OpenAI Codex assistance and +independent agent checks. Apache-2.0. diff --git a/research/p104-owned-cleanup-obstruction/PROOF-joint-cut.md b/research/p104-owned-cleanup-obstruction/PROOF-joint-cut.md new file mode 100644 index 0000000000..905c7d5881 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/PROOF-joint-cut.md @@ -0,0 +1,54 @@ +# A joint cut counts crossings, not their ranks + +The eight unchanged producer values are required as observations at their +retained one-dimensional delivery frames. They may be produced at different +times and erased afterward. All original public inputs remain independent; +owned INIT supplies zero and CLEAR deletes a row. Scalar contacts use one +common frame; public transport ascends and owned transport descends in frame +inclusion. This is the same literal row/frame model as PROOF-loss-space.md. + +Let W be the span of the eight delivery lines. The source-bound certificate +gives dim W=8. Partition original input symbols into those whose entry frames +are contained in W, and the outside symbols whose entry frames are not. +Project every scalar row onto the latter coordinates. + +Consider the span K of the projected rows that have ever appeared in registers +whose current frames are contained in W. Retain observations in K after their +physical registers are cleared or moved out. Initially K=0: each inside +register contains its own independent input, whose entry frame is inside W. +Common-frame scalar operations inside W only take linear combinations of +already available rows. Outside operations remain outside, and public ascent +cannot move an outside frame into W. INIT contributes zero and CLEAR cannot +increase K. An owned descent from outside W to inside W introduces one scalar +row and can increase dim K by at most one. Owned descents staying on the same +side contribute nothing new to this count. + +If the demanded observations have outside-coordinate matrix R, then + + number of owned descents crossing into W >= rank(R). + +The argument permits sequential outputs and arbitrary storage reuse: K is a +mathematical record of information ever available inside W, not an additional +physical register or an assumption that all outputs coexist. Any public +upward transport carrying an observed row out of W leaves that row in K; its +later return cannot invalidate the lower bound. + +`verify_joint_cut(word, producer_receipt)` reconstructs R from the exact +initial-input covectors and actual delivery scale factors. There are 112 +outside input roles and rank R=8. The receipt contains eight witness input +columns, the full rational 8-by-8 minor and its nonzero determinant. The source +has exactly eight crossing MOVE events, one for each owned role735--742, so it +attains this crossing-count floor. + +Two controls show the scope: duplicating one observation lowers the rank to7; +using the whole ambient space as W leaves no outside inputs and gives rank0. + +This does not prove a cost of8H7. Each crossing has its own rank, and the cut +only counts scalar rows that cross. Sharing cannot reduce the crossing count +below8 for these unchanged eight observations, but might still reduce their +ranks or other paid work. Removing a demanded intermediate value, changing its +payload or delivery frame, or changing the row/frame operation model is outside +the statement. No improved bound or whole-word tariff optimum is claimed. + +Prepared with OpenAI Codex assistance; no proof-kernel or independent human +acceptance is claimed. diff --git a/research/p104-owned-cleanup-obstruction/PROOF-loss-space.md b/research/p104-owned-cleanup-obstruction/PROOF-loss-space.md new file mode 100644 index 0000000000..40ba46bd42 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/PROOF-loss-space.md @@ -0,0 +1,84 @@ +# Global loss-space bound for an unchanged owned producer + +Let the ambient binary label space be E. Every original independent public +input x_i has entry frame A_i <= E. At any scalar-program instant, a live +register r has current frame F_r and row sum_i m_ri x_i. Define its source +support space L_r = sum_{i:m_ri != 0} A_i. Coefficients may be arbitrary elements +of a characteristic-zero field; cancellation can remove support but cannot +introduce a new input symbol. + +The model allows common-frame linear ADD/COPY/SCALE, public inclusion-ascent, +zero owned INIT, owned erasure, and owned inclusion-descent. It excludes hidden +nonascending public transports or native actions that change the literal row +semantics. Every owned descent of rank r is charged by r^t, 0 B with B <= A, choose any vector-space complement W +such that A=B direct-sum W. Replace V by V+W. For the moved field, + + L_r <= A+V = B+W+V. + +Other fields' bounds only become weaker. Since dim W = dim A-dim B, after all +owned descents to a chosen cut, + + dim V <= sum_j r_j, + +where r_j are their paid ranks. V may be shared by every register and persists +after owned erasures; erasing a register does not erase the global accounting. + +If a required output row v appears at frame F, with initial support space L, +then L<=F+V. Projecting to E/F gives + + sum_j r_j >= dim V >= dim(L+F)-dim F. + +Thus the total owned-transport moment up to that cut obeys + + sum_j r_j^t >= (sum_j r_j)^t >= [dim(L+F)-dim F]^t, + +using subadditivity of x^t for 0593 of +rank7, so it attains the owned-transport floor H7. The total owned-preparation moment for this retained value cannot fall below +H7 by moving COPY earlier, by arbitrary changed ascending public scalar +preparation, or by adding any number of owned preparations/erasures that still +deliver the same value at frame593 and have no offsetting new productive credit. + +All eight values individually have the same rank-mass lower bound7 at their +retained final one-dimensional delivery frames. This does not permit summing +the eight separate bounds: V is global, so a redesigned shared protocol could +amortize paid descents across different values. Owned738's source already splits +its rank7 descent to serve intermediate reads, so the scalar H7 floor is not a +claim of optimality for that complete multi-read itinerary. + +## Scope + +This is a floor for delivering one unchanged scalar value at one fixed frame, +not a bound on the final multiplication exponent. It does not exclude eliminating +that intermediate value, changing its payload, changing delivery frames, reusing +a descent paid for another target, adding productive credits, or a native-bearing +protocol outside the stated row/frame model. The theorem needs no search cutoff +and no fixed original scalar-contact windows. + +Prepared with OpenAI Codex assistance; no proof-kernel or independent human +acceptance is claimed. diff --git a/research/p104-owned-cleanup-obstruction/PROOF-windows.md b/research/p104-owned-cleanup-obstruction/PROOF-windows.md new file mode 100644 index 0000000000..8a3f8a50d8 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/PROOF-windows.md @@ -0,0 +1,149 @@ +# No common-chart hand-off in the omitted owned-holder states + +This is a source-bound obstruction to one successor hand-off template. It is +not an impossibility theorem for owned temporary registers or early cleanup. +No improved multiplication bound is claimed. Submission refresh found that +Ali Romman had independently published this same source domain and public-pair +mechanism in PR5579. This reconstruction corroborates that result; it is not +the novel claim of this package. See README.md for the distinct cost and +exceptional-delivery results. + +## Source and exact scope + +The input is PR5569's `research/p104-priced-handoff/WORD.json.gz` at commit +`af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf`. Its compressed SHA-256 is +`12224e9a13a49c830b304338a8d31610fb43da15d1a650537733c27f7864310f`. +It has 735 arbitrary public inputs, 743 physical role IDs, 25,140 events, +104 live main ports and 527 productive helpers. Eight owned lifetimes use +roles 735 through 742, with peak live owned storage one. + +The omitted predecessor domain comprises states in which an owned register +contains a nonzero coefficient of a productive helper's original input. +The existing screen skipped 2,832 distinct helper/holder/window geometries. +Our checker replays *every* source event boundary, including MOVE boundaries, +and imposes no touched-symbol or first/last-use restriction. It finds 5,252 +helper/boundary pairs, 2,832 distinct full-holder geometries, and 2,340 distinct +public-holder geometries. + +We retain the chronological scalar events, their operand roles and contact +charts, including COPY and the boundaries of owned lifetimes. MOVE events may +be relocated, added, deleted or replaced within the resulting scalar-contact +windows, provided public transports remain ascending. At a cut we ask whether +one common chart can accommodate the nominated helper and every public role +that currently contains its original input symbol. All restrictions on owned +register charts are dropped in this test. We also allow every binary subspace +as a putative contact chart, not merely a listed source frame. + +The theorem excludes this single-common-chart successor hand-off at every +state in the omitted domain. It does not exclude earlier synthesis, changed +scalar contacts, multiple-chart cleanup networks, or different boundary maps. + +## The window lemma + +Fix a boundary immediately after a source event. For a public role `r`, let +`A_r` be its preceding scalar-contact chart, or initial chart if there is no +preceding contact. Let `B_r` be its following scalar-contact chart, or final +chart if there is no following contact. A contact introduced at a chart `F` +within this window must satisfy + +``` +A_r subseteq F subseteq B_r. +``` + +This follows from ascending public transports and unchanged scalar-contact +boundaries. It does not depend on how many transports are inserted or where +they occur in the window. + +Consequently, if required roles `a,b` have a binary vector `v` with + +``` +v in A_a, v not in B_b, +``` + +there is no common chart for those two roles, and therefore none for the +entire required set. Indeed, a common chart would imply +`A_a subseteq F subseteq B_b`, contradicting this vector. + +This elementary pair obstruction is stronger than the failure of a search +over a chosen frame list: it rules out every possible common subspace `F`. + +## Exact source certificate + +The checker interprets every source scalar operation over the rational numbers +on formal independent public-input symbols. INIT zeros the owned row; COPY +copies into an empty owned row; CLEAR erases it under the source ownership +contract. MOVEs preserve these normalized symbolic rows. Source transports, +ownership and common scalar charts are checked along the way. At the end all +743 output rows must equal the declared public map or the cleared owned row. +No public input is set to zero. + +After every event, for every productive helper symbol present in an active +owned row, the checker reconstructs all public holders. The nominated helper +role is also included whether or not its current coefficient is nonzero. +The preceding and following scalar contacts supply each holder's window. +For every one of the 5,252 helper/boundary pairs, a pair of public holders and +a separating binary vector satisfy the window lemma. Thus the obstruction +persists even if the owned holders may be moved at zero cost to arbitrary +charts or ignored altogether. + +Boundaries between consecutive events have constant symbolic rows and the same +adjacent scalar contacts; MOVE-only changes do not introduce an unexamined +window. Hence the event-boundary enumeration covers all temporal cuts in this +fixed-contact domain. The initial and final states have no active owned field. + +The receipt records the counts, per-owned-role census, sample witnesses and a +SHA-256 of the deterministically reconstructed complete witness list. The +optional `--witnesses PATH` flag emits every witness. Each witness contains the +two public role IDs, their relevant boundary frames, and the missing vector. +Verifying it needs only binary span membership and the reconstructed source +windows; no optimization solver or floating-point comparison is used. + +## Positive and negative controls + +On the pinned PR5561 predecessor, after event 15443 the known helper706/173 +cleanup has + +``` +row706 = input706 + (1/2) row173. +``` + +Both scalar windows contain frame559 of dimension8, strictly between +helper706's initial and final dimensions0 and9. The same window checker accepts +that common chart. This is the published positive example behind PR5569, +not a new contribution. + +Four corruption controls reject changed source bytes, the zero vector in +place of a separating vector, substitution of an owned role for a required +public holder, and a reversed public transport window. These run under normal +and optimized Python, without relying on `assert` statements. + +Source role173 is a productive helper because61 is absent from the live-port +list. PR5569's prose calls it a main Y register; our computation uses the actual +source role classification. This descriptive discrepancy does not invalidate +its cleanup identity or the positive control. + +## What this result changes + +Simply extending the predecessor's common-chart scan to its omitted owned +holder states cannot produce an improvement while those scalar contacts remain +fixed. The next useful test must change a hypothesis: synthesize a copy before +an incompatible public contact, change a scalar dependency, or design and fully +price a cleanup network with several contact charts. Additional coefficient +search at the obstructed common chart cannot help. + +The result has no tariff or global optimality claim. It does not assert that +the inherited conditional P104 construction is admitted, that arbitrary owned +erasure is free outside that contract, or that every productive-helper design +has the same obstruction. + +## Attribution + +PR5569: GamingPuzzled, successor hand-off and omitted-domain identification. +PR5561: DreamingOfClouds, free helper endpoints and source word. +PR5551: thu-nmrc, coupled contacts. PR5544/5545: Ali Romman, P104 caller and +local verifier. Retain the native, Clifford, compiler, geometry, precision and +analytic predecessor credits in those packages. The window lemma is elementary; +the contribution is its exact application to the formerly omitted source domain. + +Prepared for flyingviper with substantial OpenAI Codex assistance and independent +agent checks. Apache-2.0. No proof-kernel or independent human acceptance is claimed. diff --git a/research/p104-owned-cleanup-obstruction/README.md b/research/p104-owned-cleanup-obstruction/README.md new file mode 100644 index 0000000000..30fc5fedb0 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/README.md @@ -0,0 +1,136 @@ +# P104 owned-cleanup obstructions + +**Scoped negative result; no new kappa, construction, productive credit or +selected-frontier change.** This proves seven fixed-boundary owned-block cost floors, a joint crossing-count +floor, and a public multi-partner obstruction for the exceptional eighth block. +The results exclude concrete ways to save transport cost on PR5569's frozen +word, not owned temporaries in general. + +Submission refresh found concurrent [PR5579](https://github.com/CrocSwap/integer-mult-bounds/pull/5579), +which already publishes the same 5,252-case public-window obstruction. Our +independent reconstruction is retained as corroborating source validation, not +claimed as novel. The cost floors, joint cut and 29,688-case exceptional-block +test below are the additional results. [Discussion5575](https://github.com/CrocSwap/integer-mult-bounds/discussions/5575) +now investigates compensated source substitution; that changed-dependency +scope is distinct and remains open. [PR5580](https://github.com/CrocSwap/integer-mult-bounds/pull/5580) +reports a gain by changing another scalar contact. We do not claim our frozen +PR5569 checks automatically apply to that changed word. + +## Results + +| Question | Checked result | Essential restriction | +| --- | --- | --- | +| Independent check of PR5579: can omitted owned-holder states support one common-chart cleanup? | All **5,252 helper/boundary pairs**, representing **2,832 full-holder geometries** and **2,340 public geometries**, have a two-public-role obstruction. | Unchanged scalar contacts; the nominated helper and all its public input-symbol holders meet at one chart. | +| Can a different internal word improve an owned delivery star? | **Seven of eight blocks attain a proved raw paid-moment floor** for every `07->6->{3 or 4}->1`, with the same minimal route + histogram. For **29,688 recipient/cut pairs**, no public linear combination + can replace one nominated delivery at one common frame. The public rows + form a basis, so the copied value has unique necessary support. This is not + a limit on partner count or a coefficient-grid search. + +Here `H_d(t)=d^t`, with `t=1-kappa`. Fewer ADDs alone do not improve the recursive +invoice. The tight star tariffs are `3H1+H7`, `3H1+H7`, `2H1+H7`, and four copies +of `5H1+H7`. Their combined `28H1+7H7` is a floor only for **separate** replacements +respecting all seven boundaries. Owned738's observed tariff is `5H1+H2+H3`; +the star theorem does not prove it optimal under arbitrary replacement. + +The [window proof](PROOF-windows.md) excludes every binary contact subspace, +not just listed source frames. The [block proof](PROOF-blocks.md) allows arbitrary +rational internal words and private zero auxiliaries inside its fixed boundary. +The [loss-space proof](PROOF-loss-space.md) allows changed preparation and erased +fields, but accounts globally for their descents. This global accounting is why +the per-value floors are not additive. + +## Source and independent checks + +Source: [PR5569](https://github.com/CrocSwap/integer-mult-bounds/pull/5569), +head `af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf`. The two unchanged compressed +inputs and credits are retained [here](inputs/README.md). [SOURCES.json](SOURCES.json) +pins use a retention commit in this PR's own history; a clean replay needs no +cached, unmerged predecessor objects. Base main was +`5e0052ca0aa3036a3afa8b0438927377c8d97d53`. + +The new replay checks all **743 final scalar rows**, preserving all 735 arbitrary +public inputs and clearing eight owned fields. It checks common scalar charts, +transport nesting and lifetimes. Each block's actual prefix and public suffix +have full ranks `4,4,3,6,6,6,6,6`; an unobservable local-map change cannot evade +the fixed-boundary result. Omitting a delivery changes final public outputs. + +An independent agent implemented the complete window census before reading the +candidate code, reproducing all three counts and public-only obstructions. +Other agents derived boundary and support checks, reviewed proofs and searched +primary literature. These are author checks, not independent human acceptance. + +The original PR5569 full verifier was run unchanged before this analysis and +returned `PASS P104_PRICED_HANDOFF`, including native/transposed replay, physical +caller, both moment engines, 54 strict plus four functional outer checks and +root interval `(0.00308181851522, 0.00308181851523)`. This is conditional, +unselected **predecessor baseline evidence**, not a new result. The small +registered replay here does not repeat that complete native/funding suite. + +## Reproduce + +Python 3.12, standard library only. Direct scientific replay needs no solver, +network, shell tools or Git. From the repository root: + +```sh +python3.12 -I -B research/p104-owned-cleanup-obstruction/verify.py +python3.12 -I -O -B research/p104-owned-cleanup-obstruction/verify.py +python3.12 -B scripts/research_package.py --package research/p104-owned-cleanup-obstruction +``` + +The verifier compares its fresh exact result with [RESULT.json](RESULT.json). +Normal runs do not write files. `--witnesses PATH` optionally exports all window +witnesses; `--write` explicitly authors a receipt. Known successful cleanup706/173 +is a positive control. Semantic controls reject changed source bytes, invalid +witnesses, reversed transports, changed payloads, incorrect delivery signs/frames +and a zeroed producer. Widening a delivery frame correctly weakens the producer +floor. Scientific checks do not depend on Python assertions. + +The registered runner also checks metadata and Git provenance and needs full +history. Exported source runs the direct verifier without Git. This publication +also checks committed bytes, source ancestry and a Git-free exported replay. + +## Literature and interpretation + +The [literature note](LITERATURE.md) separates useful linear-circuit ideas from +what is proved for this tariff. The two-sided boundary identity `S(R-T)P=0` and +full-rank implication `R=T` are elementary linear algebra, proved explicitly. +No paper is treated as evidence of a legal or cheaper P104 construction. + +The result corroborates PR5579's common-chart obstruction and establishes +additional fixed-boundary optima and delivery obstructions. Further coefficient search in those domains cannot help; +the dependency or boundary model must change. The whole productive-helper +programme is not ruled out. + +## Open next questions + +- Can a changed public dependency or cleanup using several contact charts lower + the complete paid-minus-productive profile? First specify one replacement map + and its entry/exit frames, then derive its histogram. +- Can a joint construction share preparation across owned lifetimes? Identify + a specific transport serving two demanded values and check its exact map; + adding the individual H7 bounds is invalid. Include all restorations, helpers, + ordinary passes and ownership obligations before claiming a gain. + +See [TASK.json](TASK.json) for the task refinement, expansion gate and stop rule. + +## Credit + +Prepared for flyingviper with substantial OpenAI Codex assistance and independent +agents; Apache-2.0. Ali Romman independently published the overlapping +window obstruction in PR5579 before our submission. Retain Joel Pulikkan (GamingPuzzled)'s PR5569 mechanism and +open question; DreamingOfClouds's PR5561/5553 endpoints and word; thu-nmrc's PR5551 +contacts; Ali Romman's PR5544/5545 verifier and caller; and the full predecessor +lineage in [inputs/README.md](inputs/README.md). No source construction is newly +attributed to this package. No proof-kernel acceptance is claimed. diff --git a/research/p104-owned-cleanup-obstruction/RESULT.json b/research/p104-owned-cleanup-obstruction/RESULT.json new file mode 100644 index 0000000000..ed8b2b2055 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/RESULT.json @@ -0,0 +1,5509 @@ +{ + "joint_cut": { + "delivery_space_basis": [ + 394, + 128, + 75, + 42, + 25, + 8, + 7, + 1 + ], + "delivery_space_dimension": 8, + "eight_H7_tariff_claimed": false, + "new_bound": false, + "observation_rank": 8, + "outside_input_count": 112, + "required_owned_crossing_count": 8, + "scope_controls": { + "duplicated_output_rank": 7, + "whole_space_rank": 0 + }, + "source_crossings": [ + { + "event": 13381, + "from": 559, + "owned": 735, + "paid_rank": 7, + "to": 593 + }, + { + "event": 13392, + "from": 543, + "owned": 736, + "paid_rank": 7, + "to": 594 + }, + { + "event": 13403, + "from": 531, + "owned": 737, + "paid_rank": 7, + "to": 595 + }, + { + "event": 13416, + "from": 564, + "owned": 738, + "paid_rank": 3, + "to": 596 + }, + { + "event": 13428, + "from": 518, + "owned": 739, + "paid_rank": 7, + "to": 598 + }, + { + "event": 13443, + "from": 267, + "owned": 740, + "paid_rank": 7, + "to": 599 + }, + { + "event": 13458, + "from": 517, + "owned": 741, + "paid_rank": 7, + "to": 600 + }, + { + "event": 13473, + "from": 477, + "owned": 742, + "paid_rank": 7, + "to": 601 + } + ], + "status": "PASS_JOINT_OWNED_CROSSING_COUNT_FLOOR", + "witness_determinant": "-1/32768", + "witness_input_columns": [ + 0, + 1, + 4, + 6, + 12, + 13, + 15, + 27 + ], + "witness_minor": [ + [ + "0", + "1/4", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "0", + "1/4", + "1/4", + "-1/4" + ], + [ + "1/4", + "0", + "0", + "0", + "0", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "1/4", + "0", + "1/4", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "0", + "0", + "0", + "-1/4", + "0" + ] + ] + }, + "lifetime_controls": [ + { + "mutation": "wrong_delivery_sign", + "reason": "fixed local transfer coefficient", + "rejected": true + }, + { + "mutation": "zeroed_owned_producer", + "reason": "exact local delivery form", + "rejected": true + }, + { + "mutation": "wrong_delivery_frame", + "reason": "ADD/COPY common frame", + "rejected": true + } + ], + "lifetimes": { + "global_claim_excluded": "Per-row owned-preparation floors cannot be added when private work or lost subspaces are shared.", + "lifetimes": [ + { + "actual_prefix_rank": 4, + "corruption_changed_public_outputs": [ + 119, + 121, + 169, + 191, + 193, + 204, + 206, + 706 + ], + "entry_dimensions": { + "173": 8, + "704": 0, + "705": 0, + "706": 0 + }, + "entry_frames": { + "173": 559, + "704": 3, + "705": 3, + "706": 3 + }, + "events_half_open": [ + 13377, + 13388 + ], + "exit_dimensions": { + "173": 8, + "704": 1, + "705": 1, + "706": 1 + }, + "exit_frames": { + "173": 559, + "704": 593, + "705": 593, + "706": 593 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/2", + "1": "1" + }, + { + "0": "1/2", + "2": "1" + }, + { + "0": "1/2", + "3": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 3, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13386, + "owned": 735, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 3 + }, + "public_suffix_rank": 4, + "recipients": [ + 704, + 705, + 706 + ], + "source": 173, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 118, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "704": 7, + "705": 7, + "706": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "704": "1/2", + "705": "1/2", + "706": "1/2" + } + }, + { + "actual_prefix_rank": 4, + "corruption_changed_public_outputs": [ + 113, + 118, + 140, + 141, + 142, + 170, + 171, + 172, + 185, + 186, + 187, + 194, + 195, + 196, + 198, + 214, + 733 + ], + "entry_dimensions": { + "151": 8, + "707": 0, + "708": 0, + "733": 0 + }, + "entry_frames": { + "151": 543, + "707": 3, + "708": 3, + "733": 3 + }, + "events_half_open": [ + 13388, + 13399 + ], + "exit_dimensions": { + "151": 8, + "707": 1, + "708": 1, + "733": 1 + }, + "exit_frames": { + "151": 543, + "707": 594, + "708": 594, + "733": 594 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/2", + "1": "1" + }, + { + "0": "1/2", + "2": "1" + }, + { + "0": "1/2", + "3": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 3, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13397, + "owned": 736, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 3 + }, + "public_suffix_rank": 4, + "recipients": [ + 707, + 708, + 733 + ], + "source": 151, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 113, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "707": 7, + "708": 7, + "733": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "707": "1/2", + "708": "1/2", + "733": "1/2" + } + }, + { + "actual_prefix_rank": 3, + "corruption_changed_public_outputs": [ + 116, + 117, + 120, + 134, + 135, + 136, + 138, + 144, + 145, + 147, + 157, + 160, + 161, + 162, + 176, + 177, + 178, + 179, + 180, + 181, + 192, + 197, + 200, + 207, + 208, + 209, + 210, + 219, + 220, + 221, + 732 + ], + "entry_dimensions": { + "146": 8, + "709": 0, + "732": 0 + }, + "entry_frames": { + "146": 531, + "709": 3, + "732": 3 + }, + "events_half_open": [ + 13399, + 13408 + ], + "exit_dimensions": { + "146": 8, + "709": 1, + "732": 1 + }, + "exit_frames": { + "146": 531, + "709": 595, + "732": 595 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "-1/2", + "1": "1" + }, + { + "0": "-1/2", + "2": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 2, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13406, + "owned": 737, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 2 + }, + "public_suffix_rank": 3, + "recipients": [ + 709, + 732 + ], + "source": 146, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 120, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "709": 7, + "732": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "709": "-1/2", + "732": "-1/2" + } + }, + { + "actual_prefix_rank": 6, + "corruption_changed_public_outputs": [ + 127, + 132, + 136, + 140, + 144, + 147, + 153, + 157, + 158, + 160, + 165, + 170, + 183, + 187, + 194, + 197, + 202, + 210, + 218, + 219, + 734 + ], + "entry_dimensions": { + "133": 8, + "148": 2, + "159": 7, + "203": 6, + "710": 0, + "734": 0 + }, + "entry_frames": { + "133": 591, + "148": 467, + "159": 565, + "203": 564, + "710": 3, + "734": 3 + }, + "events_half_open": [ + 13408, + 13424 + ], + "exit_dimensions": { + "133": 8, + "148": 3, + "159": 7, + "203": 6, + "710": 1, + "734": 1 + }, + "exit_frames": { + "133": 591, + "148": 596, + "159": 565, + "203": 564, + "710": 597, + "734": 597 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/2", + "1": "1" + }, + { + "0": "-1", + "2": "1" + }, + { + "0": "-1", + "3": "1" + }, + { + "0": "-1/2", + "4": "1" + }, + { + "0": "-1/2", + "5": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 5, + "2": 1, + "3": 1 + }, + "no_gain_scope": "No tight local cost floor claimed: delivery charts have several levels.", + "omitted_delivery_event": 13422, + "owned": 738, + "owned_exit_zero": true, + "owned_paid_histogram": { + "1": 2, + "2": 1, + "3": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 3 + }, + "public_suffix_rank": 6, + "recipients": [ + 159, + 203, + 148, + 710, + 734 + ], + "source": 133, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 110, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "148": 5, + "159": 1, + "203": 2, + "710": 7, + "734": 7 + }, + "tight_fixed_boundary_star_theorem_applies": false, + "transfers_from_source": { + "148": "-1", + "159": "1/2", + "203": "-1", + "710": "-1/2", + "734": "-1/2" + } + }, + { + "actual_prefix_rank": 6, + "corruption_changed_public_outputs": [ + 121, + 137, + 184, + 206, + 716 + ], + "entry_dimensions": { + "256": 8, + "712": 0, + "713": 0, + "714": 0, + "715": 0, + "716": 0 + }, + "entry_frames": { + "256": 518, + "712": 3, + "713": 3, + "714": 3, + "715": 3, + "716": 3 + }, + "events_half_open": [ + 13424, + 13439 + ], + "exit_dimensions": { + "256": 8, + "712": 1, + "713": 1, + "714": 1, + "715": 1, + "716": 1 + }, + "exit_frames": { + "256": 518, + "712": 598, + "713": 598, + "714": 598, + "715": 598, + "716": 598 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/4", + "1": "1" + }, + { + "0": "1/4", + "2": "1" + }, + { + "0": "1/4", + "3": "1" + }, + { + "0": "1/4", + "4": "1" + }, + { + "0": "1/4", + "5": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 5, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13437, + "owned": 739, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 5 + }, + "public_suffix_rank": 6, + "recipients": [ + 712, + 713, + 714, + 715, + 716 + ], + "source": 256, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 106, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "712": 7, + "713": 7, + "714": 7, + "715": 7, + "716": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "712": "1/4", + "713": "1/4", + "714": "1/4", + "715": "1/4", + "716": "1/4" + } + }, + { + "actual_prefix_rank": 6, + "corruption_changed_public_outputs": [ + 120, + 138, + 176, + 177, + 178, + 207, + 208, + 209, + 721 + ], + "entry_dimensions": { + "717": 0, + "718": 0, + "719": 0, + "720": 0, + "721": 0, + "92": 8 + }, + "entry_frames": { + "717": 3, + "718": 3, + "719": 3, + "720": 3, + "721": 3, + "92": 267 + }, + "events_half_open": [ + 13439, + 13454 + ], + "exit_dimensions": { + "717": 1, + "718": 1, + "719": 1, + "720": 1, + "721": 1, + "92": 8 + }, + "exit_frames": { + "717": 599, + "718": 599, + "719": 599, + "720": 599, + "721": 599, + "92": 267 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/4", + "1": "1" + }, + { + "0": "1/4", + "2": "1" + }, + { + "0": "1/4", + "3": "1" + }, + { + "0": "1/4", + "4": "1" + }, + { + "0": "1/4", + "5": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 5, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13452, + "owned": 740, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 5 + }, + "public_suffix_rank": 6, + "recipients": [ + 717, + 718, + 719, + 720, + 721 + ], + "source": 92, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 111, + "source_role": "live", + "support_to_recipient_exit_dimension_gaps": { + "717": 7, + "718": 7, + "719": 7, + "720": 7, + "721": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "717": "1/4", + "718": "1/4", + "719": "1/4", + "720": "1/4", + "721": "1/4" + } + }, + { + "actual_prefix_rank": 6, + "corruption_changed_public_outputs": [ + 144, + 153, + 154, + 157, + 164, + 165, + 197, + 219, + 726 + ], + "entry_dimensions": { + "722": 0, + "723": 0, + "724": 0, + "725": 0, + "726": 0, + "9": 8 + }, + "entry_frames": { + "722": 3, + "723": 3, + "724": 3, + "725": 3, + "726": 3, + "9": 517 + }, + "events_half_open": [ + 13454, + 13469 + ], + "exit_dimensions": { + "722": 1, + "723": 1, + "724": 1, + "725": 1, + "726": 1, + "9": 8 + }, + "exit_frames": { + "722": 600, + "723": 600, + "724": 600, + "725": 600, + "726": 600, + "9": 517 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "1/4", + "1": "1" + }, + { + "0": "1/4", + "2": "1" + }, + { + "0": "1/4", + "3": "1" + }, + { + "0": "1/4", + "4": "1" + }, + { + "0": "1/4", + "5": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 5, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13467, + "owned": 741, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 5 + }, + "public_suffix_rank": 6, + "recipients": [ + 722, + 723, + 724, + 725, + 726 + ], + "source": 9, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 103, + "source_role": "live", + "support_to_recipient_exit_dimension_gaps": { + "722": 7, + "723": 7, + "724": 7, + "725": 7, + "726": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "722": "1/4", + "723": "1/4", + "724": "1/4", + "725": "1/4", + "726": "1/4" + } + }, + { + "actual_prefix_rank": 6, + "corruption_changed_public_outputs": [ + 116, + 134, + 145, + 162, + 176, + 181, + 208, + 220, + 731 + ], + "entry_dimensions": { + "240": 8, + "727": 0, + "728": 0, + "729": 0, + "730": 0, + "731": 0 + }, + "entry_frames": { + "240": 477, + "727": 3, + "728": 3, + "729": 3, + "730": 3, + "731": 3 + }, + "events_half_open": [ + 13469, + 13484 + ], + "exit_dimensions": { + "240": 8, + "727": 1, + "728": 1, + "729": 1, + "730": 1, + "731": 1 + }, + "exit_frames": { + "240": 477, + "727": 601, + "728": 601, + "729": 601, + "730": 601, + "731": 601 + }, + "local_matrix": [ + { + "0": "1" + }, + { + "0": "-1/4", + "1": "1" + }, + { + "0": "-1/4", + "2": "1" + }, + { + "0": "-1/4", + "3": "1" + }, + { + "0": "-1/4", + "4": "1" + }, + { + "0": "-1/4", + "5": "1" + }, + {} + ], + "local_paid_histogram": { + "1": 5, + "7": 1 + }, + "no_gain_scope": "Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.", + "omitted_delivery_event": 13482, + "owned": 742, + "owned_exit_zero": true, + "owned_paid_histogram": { + "7": 1 + }, + "owned_public_suffix_column_zero": true, + "public_paid_histogram": { + "1": 5 + }, + "public_suffix_rank": 6, + "recipients": [ + 727, + 728, + 729, + 730, + 731 + ], + "source": 240, + "source_entry_support_span_dimension": 8, + "source_prefix_nonzeros": 105, + "source_role": "helper", + "support_to_recipient_exit_dimension_gaps": { + "727": 7, + "728": 7, + "729": 7, + "730": 7, + "731": 7 + }, + "tight_fixed_boundary_star_theorem_applies": true, + "transfers_from_source": { + "727": "-1/4", + "728": "-1/4", + "729": "-1/4", + "730": "-1/4", + "731": "-1/4" + } + } + ], + "new_kappa": false, + "status": "PASS_EIGHT_OWNED_BOUNDARIES_SEVEN_TIGHT_STARS" + }, + "new_bound": false, + "owned738": { + "all_public_replacement_boundaries": 29688, + "corruption_controls": { + "altered_target_functional": true, + "copied_public_producer_changed": true, + "singular_public_scale": true, + "zero_separating_vector": true + }, + "covector_positive_control": "D=x0 before x0+=2*x1 becomes x0-2*x1 afterward", + "delivery_windows": [ + { + "event": 13412, + "lower_frame": 565, + "maximum_dimension": 7, + "minimum_dimension": 7, + "next_contact": 15575, + "previous_contact": 13363, + "recipient": 159, + "upper_frame": 565 + }, + { + "event": 13414, + "lower_frame": 564, + "maximum_dimension": 6, + "minimum_dimension": 6, + "next_contact": 14027, + "previous_contact": 13245, + "recipient": 203, + "upper_frame": 633 + }, + { + "event": 13417, + "lower_frame": 467, + "maximum_dimension": 4, + "minimum_dimension": 3, + "next_contact": 14018, + "previous_contact": 13233, + "recipient": 148, + "upper_frame": 655 + }, + { + "event": 13420, + "lower_frame": 3, + "maximum_dimension": 1, + "minimum_dimension": 1, + "next_contact": 13524, + "previous_contact": 817, + "recipient": 710, + "upper_frame": 597 + }, + { + "event": 13422, + "lower_frame": 3, + "maximum_dimension": 1, + "minimum_dimension": 1, + "next_contact": 14006, + "previous_contact": 804, + "recipient": 734, + "upper_frame": 597 + } + ], + "effective_public_operations": { + "ADD": 20947, + "SCALE": 707, + "owned_to_public_shear": 33 + }, + "initial_value_support": 110, + "new_bound": false, + "owned_paid_histogram_both_alternatives": { + "1": 2, + "2": 1, + "3": 1 + }, + "pair_examples": { + "148": { + "boundary": 13233, + "bounds": [ + [ + 25, + 292, + 292 + ], + [ + 31, + 307, + 570 + ], + [ + 32, + 348, + 572 + ], + [ + 33, + 365, + 573 + ], + [ + 36, + 499, + 562 + ], + [ + 69, + 442, + 577 + ], + [ + 74, + 401, + 575 + ], + [ + 75, + 386, + 574 + ], + [ + 88, + 421, + 576 + ], + [ + 91, + 268, + 561 + ], + [ + 99, + 481, + 481 + ], + [ + 102, + 330, + 571 + ], + [ + 133, + 459, + 564 + ], + [ + 148, + 467, + 655 + ], + [ + 159, + 3, + 489 + ], + [ + 191, + 3, + 292 + ], + [ + 203, + 278, + 563 + ], + [ + 269, + 297, + 297 + ], + [ + 287, + 317, + 570 + ], + [ + 301, + 336, + 571 + ], + [ + 317, + 356, + 572 + ], + [ + 335, + 373, + 573 + ], + [ + 349, + 392, + 574 + ], + [ + 367, + 411, + 575 + ], + [ + 383, + 429, + 576 + ], + [ + 397, + 450, + 577 + ], + [ + 415, + 467, + 562 + ], + [ + 429, + 489, + 489 + ], + [ + 445, + 507, + 507 + ], + [ + 483, + 3, + 3 + ], + [ + 494, + 3, + 3 + ], + [ + 519, + 3, + 3 + ], + [ + 530, + 3, + 3 + ], + [ + 697, + 1031, + 1041 + ], + [ + 698, + 1031, + 1042 + ], + [ + 701, + 1031, + 1043 + ], + [ + 702, + 1031, + 1044 + ] + ], + "pair": [ + 148, + 31, + 467, + 570, + 45 + ], + "support_size": 36 + }, + "159": { + "boundary": 13363, + "bounds": [ + [ + 133, + 565, + 591 + ], + [ + 159, + 565, + 565 + ], + [ + 697, + 1041, + 1045 + ], + [ + 698, + 1042, + 1046 + ], + [ + 701, + 1043, + 1046 + ], + [ + 702, + 1044, + 1045 + ] + ], + "pair": [ + 159, + 697, + 565, + 1045, + 2 + ], + "support_size": 5 + }, + "203": { + "boundary": 13245, + "bounds": [ + [ + 25, + 292, + 292 + ], + [ + 31, + 307, + 570 + ], + [ + 32, + 348, + 572 + ], + [ + 33, + 365, + 573 + ], + [ + 69, + 442, + 577 + ], + [ + 74, + 401, + 575 + ], + [ + 75, + 386, + 574 + ], + [ + 88, + 421, + 576 + ], + [ + 91, + 561, + 565 + ], + [ + 99, + 481, + 481 + ], + [ + 102, + 330, + 571 + ], + [ + 133, + 564, + 565 + ], + [ + 159, + 3, + 489 + ], + [ + 191, + 3, + 292 + ], + [ + 203, + 564, + 633 + ], + [ + 269, + 297, + 297 + ], + [ + 287, + 317, + 570 + ], + [ + 301, + 336, + 571 + ], + [ + 317, + 356, + 572 + ], + [ + 335, + 373, + 573 + ], + [ + 349, + 392, + 574 + ], + [ + 367, + 411, + 575 + ], + [ + 383, + 429, + 576 + ], + [ + 397, + 450, + 577 + ], + [ + 429, + 489, + 489 + ], + [ + 445, + 507, + 507 + ], + [ + 483, + 3, + 3 + ], + [ + 494, + 3, + 3 + ], + [ + 519, + 3, + 3 + ], + [ + 530, + 3, + 3 + ], + [ + 697, + 1031, + 1041 + ], + [ + 698, + 1031, + 1042 + ], + [ + 701, + 1031, + 1043 + ], + [ + 702, + 1031, + 1044 + ] + ], + "pair": [ + 203, + 25, + 564, + 292, + 2 + ], + "support_size": 33 + }, + "710": { + "boundary": 817, + "bounds": [ + [ + 2, + 2, + 2 + ], + [ + 5, + 5, + 5 + ], + [ + 8, + 8, + 8 + ], + [ + 11, + 11, + 11 + ], + [ + 12, + 12, + 12 + ], + [ + 15, + 14, + 14 + ], + [ + 16, + 15, + 15 + ], + [ + 19, + 18, + 18 + ], + [ + 20, + 19, + 19 + ], + [ + 23, + 21, + 21 + ], + [ + 24, + 22, + 22 + ], + [ + 25, + 23, + 23 + ], + [ + 26, + 24, + 24 + ], + [ + 28, + 26, + 26 + ], + [ + 29, + 27, + 27 + ], + [ + 31, + 29, + 29 + ], + [ + 32, + 30, + 30 + ], + [ + 33, + 31, + 31 + ], + [ + 36, + 33, + 33 + ], + [ + 40, + 36, + 36 + ], + [ + 41, + 37, + 37 + ], + [ + 44, + 40, + 40 + ], + [ + 46, + 42, + 42 + ], + [ + 48, + 44, + 44 + ], + [ + 49, + 45, + 45 + ], + [ + 53, + 49, + 49 + ], + [ + 54, + 50, + 50 + ], + [ + 58, + 54, + 54 + ], + [ + 59, + 55, + 55 + ], + [ + 63, + 58, + 58 + ], + [ + 64, + 59, + 59 + ], + [ + 69, + 64, + 64 + ], + [ + 70, + 65, + 65 + ], + [ + 74, + 69, + 69 + ], + [ + 75, + 70, + 70 + ], + [ + 77, + 71, + 71 + ], + [ + 78, + 72, + 72 + ], + [ + 79, + 73, + 73 + ], + [ + 80, + 74, + 74 + ], + [ + 82, + 76, + 76 + ], + [ + 83, + 77, + 77 + ], + [ + 88, + 82, + 82 + ], + [ + 91, + 85, + 85 + ], + [ + 94, + 87, + 87 + ], + [ + 97, + 90, + 90 + ], + [ + 99, + 92, + 92 + ], + [ + 102, + 95, + 95 + ], + [ + 103, + 96, + 96 + ], + [ + 106, + 99, + 99 + ], + [ + 107, + 100, + 100 + ], + [ + 108, + 101, + 101 + ], + [ + 111, + 104, + 104 + ], + [ + 133, + 3, + 3 + ], + [ + 240, + 3, + 3 + ], + [ + 243, + 3, + 3 + ], + [ + 246, + 3, + 3 + ], + [ + 249, + 3, + 3 + ], + [ + 250, + 3, + 3 + ], + [ + 251, + 3, + 3 + ], + [ + 255, + 3, + 3 + ], + [ + 257, + 3, + 3 + ], + [ + 258, + 3, + 3 + ], + [ + 259, + 3, + 3 + ], + [ + 261, + 3, + 3 + ], + [ + 267, + 3, + 3 + ], + [ + 269, + 3, + 3 + ], + [ + 270, + 3, + 3 + ], + [ + 271, + 3, + 3 + ], + [ + 287, + 3, + 3 + ], + [ + 288, + 3, + 3 + ], + [ + 292, + 3, + 3 + ], + [ + 296, + 3, + 3 + ], + [ + 302, + 3, + 3 + ], + [ + 304, + 3, + 3 + ], + [ + 308, + 3, + 3 + ], + [ + 312, + 3, + 3 + ], + [ + 318, + 3, + 3 + ], + [ + 335, + 3, + 3 + ], + [ + 336, + 3, + 3 + ], + [ + 340, + 3, + 3 + ], + [ + 350, + 3, + 3 + ], + [ + 351, + 3, + 3 + ], + [ + 367, + 3, + 3 + ], + [ + 383, + 3, + 3 + ], + [ + 384, + 3, + 3 + ], + [ + 388, + 3, + 3 + ], + [ + 398, + 3, + 3 + ], + [ + 399, + 3, + 3 + ], + [ + 400, + 3, + 3 + ], + [ + 402, + 3, + 3 + ], + [ + 403, + 3, + 3 + ], + [ + 406, + 3, + 3 + ], + [ + 409, + 3, + 3 + ], + [ + 410, + 3, + 3 + ], + [ + 411, + 3, + 3 + ], + [ + 415, + 3, + 3 + ], + [ + 417, + 3, + 3 + ], + [ + 419, + 3, + 3 + ], + [ + 421, + 3, + 3 + ], + [ + 427, + 3, + 3 + ], + [ + 429, + 3, + 3 + ], + [ + 430, + 3, + 3 + ], + [ + 431, + 3, + 3 + ], + [ + 432, + 3, + 3 + ], + [ + 433, + 3, + 3 + ], + [ + 435, + 3, + 3 + ], + [ + 438, + 3, + 3 + ], + [ + 442, + 3, + 3 + ], + [ + 443, + 3, + 3 + ], + [ + 445, + 3, + 3 + ], + [ + 710, + 3, + 597 + ] + ], + "pair": [ + 2, + 710, + 2, + 597, + 35 + ], + "support_size": 110 + }, + "734": { + "boundary": 804, + "bounds": [ + [ + 2, + 2, + 2 + ], + [ + 5, + 5, + 5 + ], + [ + 8, + 8, + 8 + ], + [ + 11, + 11, + 11 + ], + [ + 12, + 12, + 12 + ], + [ + 15, + 14, + 14 + ], + [ + 16, + 15, + 15 + ], + [ + 19, + 18, + 18 + ], + [ + 20, + 19, + 19 + ], + [ + 23, + 21, + 21 + ], + [ + 24, + 22, + 22 + ], + [ + 25, + 23, + 23 + ], + [ + 26, + 24, + 24 + ], + [ + 28, + 26, + 26 + ], + [ + 29, + 27, + 27 + ], + [ + 31, + 29, + 29 + ], + [ + 32, + 30, + 30 + ], + [ + 33, + 31, + 31 + ], + [ + 36, + 33, + 33 + ], + [ + 40, + 36, + 36 + ], + [ + 41, + 37, + 37 + ], + [ + 44, + 40, + 40 + ], + [ + 46, + 42, + 42 + ], + [ + 48, + 44, + 44 + ], + [ + 49, + 45, + 45 + ], + [ + 53, + 49, + 49 + ], + [ + 54, + 50, + 50 + ], + [ + 58, + 54, + 54 + ], + [ + 59, + 55, + 55 + ], + [ + 63, + 58, + 58 + ], + [ + 64, + 59, + 59 + ], + [ + 69, + 64, + 64 + ], + [ + 70, + 65, + 65 + ], + [ + 74, + 69, + 69 + ], + [ + 75, + 70, + 70 + ], + [ + 77, + 71, + 71 + ], + [ + 78, + 72, + 72 + ], + [ + 79, + 73, + 73 + ], + [ + 80, + 74, + 74 + ], + [ + 82, + 76, + 76 + ], + [ + 83, + 77, + 77 + ], + [ + 88, + 82, + 82 + ], + [ + 91, + 85, + 85 + ], + [ + 94, + 87, + 87 + ], + [ + 97, + 90, + 90 + ], + [ + 99, + 92, + 92 + ], + [ + 102, + 95, + 95 + ], + [ + 103, + 96, + 96 + ], + [ + 106, + 99, + 99 + ], + [ + 107, + 100, + 100 + ], + [ + 108, + 101, + 101 + ], + [ + 111, + 104, + 104 + ], + [ + 133, + 3, + 3 + ], + [ + 240, + 3, + 3 + ], + [ + 243, + 3, + 3 + ], + [ + 246, + 3, + 3 + ], + [ + 249, + 3, + 3 + ], + [ + 250, + 3, + 3 + ], + [ + 251, + 3, + 3 + ], + [ + 255, + 3, + 3 + ], + [ + 257, + 3, + 3 + ], + [ + 258, + 3, + 3 + ], + [ + 259, + 3, + 3 + ], + [ + 261, + 3, + 3 + ], + [ + 267, + 3, + 3 + ], + [ + 269, + 3, + 3 + ], + [ + 270, + 3, + 3 + ], + [ + 271, + 3, + 3 + ], + [ + 287, + 3, + 3 + ], + [ + 288, + 3, + 3 + ], + [ + 292, + 3, + 3 + ], + [ + 296, + 3, + 3 + ], + [ + 302, + 3, + 3 + ], + [ + 304, + 3, + 3 + ], + [ + 308, + 3, + 3 + ], + [ + 312, + 3, + 3 + ], + [ + 318, + 3, + 3 + ], + [ + 335, + 3, + 3 + ], + [ + 336, + 3, + 3 + ], + [ + 340, + 3, + 3 + ], + [ + 350, + 3, + 3 + ], + [ + 351, + 3, + 3 + ], + [ + 367, + 3, + 3 + ], + [ + 383, + 3, + 3 + ], + [ + 384, + 3, + 3 + ], + [ + 388, + 3, + 3 + ], + [ + 398, + 3, + 3 + ], + [ + 399, + 3, + 3 + ], + [ + 400, + 3, + 3 + ], + [ + 402, + 3, + 3 + ], + [ + 403, + 3, + 3 + ], + [ + 406, + 3, + 3 + ], + [ + 409, + 3, + 3 + ], + [ + 410, + 3, + 3 + ], + [ + 411, + 3, + 3 + ], + [ + 415, + 3, + 3 + ], + [ + 417, + 3, + 3 + ], + [ + 419, + 3, + 3 + ], + [ + 421, + 3, + 3 + ], + [ + 427, + 3, + 3 + ], + [ + 429, + 3, + 3 + ], + [ + 430, + 3, + 3 + ], + [ + 431, + 3, + 3 + ], + [ + 432, + 3, + 3 + ], + [ + 433, + 3, + 3 + ], + [ + 435, + 3, + 3 + ], + [ + 438, + 3, + 3 + ], + [ + 442, + 3, + 3 + ], + [ + 443, + 3, + 3 + ], + [ + 445, + 3, + 3 + ], + [ + 734, + 3, + 597 + ] + ], + "pair": [ + 2, + 734, + 2, + 597, + 35 + ], + "support_size": 110 + } + }, + "public148_paid_histogram_both_alternatives": { + "1": 1, + "2": 1 + }, + "public_replacement_boundaries": { + "148": 785, + "159": 2212, + "203": 782, + "710": 12707, + "734": 13202 + }, + "status": "PASS_OWNED738_DELIVERY_OBSTRUCTION", + "witnesses_sha256": "1b311a567e6e4f8225b702828ad8d224d9054eb697338a8d9ba71fee8f7cfe55" + }, + "producer_controls": { + "individual_floors_not_additive": true, + "rejected_corruptions": [ + "entry_support_outside_producer_frame", + "wrong_producer_value", + "unaccounted_descent_in_public_prefix", + "changed_owned_payload_before_delivery" + ], + "widened_delivery_loss_floor": 6, + "widened_delivery_rank": 2 + }, + "producers": { + "first_owned_init": 13377, + "new_bound": false, + "results": [ + { + "clear_frame": 593, + "copy_event": 13378, + "copy_frame": 559, + "delivery_factor": "1/2", + "independent_witnesses": [ + { + "coefficient": "1/2", + "initial_vector": 19, + "input": 1 + }, + { + "coefficient": "1/2", + "initial_vector": 131, + "input": 4 + }, + { + "coefficient": "1/2", + "initial_vector": 259, + "input": 5 + }, + { + "coefficient": "-1/2", + "initial_vector": 21, + "input": 7 + }, + { + "coefficient": "-1/2", + "initial_vector": 41, + "input": 12 + }, + { + "coefficient": "-1/2", + "initial_vector": 73, + "input": 13 + }, + { + "coefficient": "-1/2", + "initial_vector": 145, + "input": 18 + }, + { + "coefficient": "1/2", + "initial_vector": 22, + "input": 26 + } + ], + "initial_covector": { + "1": "1/2", + "10": "-1/2", + "101": "-1/2", + "102": "-1/2", + "103": "-1/2", + "104": "1/2", + "108": "-1/2", + "109": "-1/2", + "11": "-1/2", + "110": "1/2", + "111": "1/2", + "12": "-1/2", + "13": "-1/2", + "173": "1", + "18": "-1/2", + "19": "-1/2", + "224": "1/2", + "225": "-1/2", + "226": "1/2", + "227": "-1/2", + "233": "-1/2", + "235": "-1/2", + "237": "-1/2", + "239": "-1/2", + "24": "-1/2", + "241": "-1/2", + "243": "-1/2", + "249": "-1/2", + "251": "-1/2", + "253": "-1/2", + "255": "-1/2", + "256": "-1/2", + "257": "-1/2", + "259": "-1", + "26": "1/2", + "262": "1/2", + "265": "-1", + "266": "-1/2", + "269": "-1/2", + "276": "-1/2", + "283": "-1/2", + "286": "-1/2", + "287": "1", + "29": "1/2", + "292": "-1/2", + "299": "-1/2", + "30": "1/2", + "302": "-1/2", + "303": "1", + "308": "-1/2", + "315": "-1/2", + "318": "-1/2", + "319": "1", + "32": "-1/2", + "324": "-1/2", + "331": "-1/2", + "334": "-1/2", + "335": "1", + "336": "1/2", + "347": "1/2", + "351": "1/2", + "352": "1/2", + "36": "-1/2", + "363": "1/2", + "367": "1/2", + "368": "1/2", + "37": "-1/2", + "379": "1/2", + "38": "-1/2", + "383": "1/2", + "384": "1/2", + "395": "1/2", + "399": "1/2", + "4": "1/2", + "416": "-1/2", + "418": "1/2", + "419": "-1/2", + "422": "1/2", + "425": "-1/2", + "426": "-1/2", + "427": "1/2", + "43": "-1/2", + "431": "1/2", + "432": "-1/2", + "434": "1/2", + "435": "-1/2", + "438": "1/2", + "441": "-1/2", + "442": "-1/2", + "443": "1/2", + "447": "1/2", + "45": "-1/2", + "49": "-1/2", + "5": "1/2", + "50": "-1/2", + "51": "1/2", + "56": "-1/2", + "57": "-1/2", + "58": "1/2", + "62": "-1/2", + "63": "-1/2", + "64": "1/2", + "65": "1/2", + "67": "1/2", + "7": "-1/2", + "72": "-1/2", + "73": "1/2", + "74": "1/2", + "79": "-1/2", + "81": "-1/2", + "82": "1/2", + "86": "1/2", + "88": "1/2", + "89": "1/2", + "92": "-1/2", + "94": "-1/2", + "95": "1/2", + "98": "-1/2" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 735, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 173, + "support_count": 118 + }, + { + "clear_frame": 594, + "copy_event": 13389, + "copy_frame": 543, + "delivery_factor": "1/2", + "independent_witnesses": [ + { + "coefficient": "-1/2", + "initial_vector": 35, + "input": 2 + }, + { + "coefficient": "-1/2", + "initial_vector": 131, + "input": 4 + }, + { + "coefficient": "1/2", + "initial_vector": 13, + "input": 6 + }, + { + "coefficient": "-1/2", + "initial_vector": 21, + "input": 7 + }, + { + "coefficient": "-1/2", + "initial_vector": 69, + "input": 9 + }, + { + "coefficient": "-1/2", + "initial_vector": 261, + "input": 11 + }, + { + "coefficient": "1/2", + "initial_vector": 73, + "input": 13 + }, + { + "coefficient": "-1/2", + "initial_vector": 38, + "input": 27 + } + ], + "initial_covector": { + "101": "1/2", + "103": "-1/2", + "105": "1/2", + "107": "-1/2", + "109": "-1/2", + "11": "-1/2", + "110": "-1/2", + "13": "1/2", + "15": "1/2", + "151": "1", + "17": "-1/2", + "19": "-1/2", + "2": "-1/2", + "20": "-1/2", + "224": "1/2", + "225": "-1/2", + "229": "-1/2", + "23": "-1/2", + "230": "-1/2", + "234": "1/2", + "235": "-1/2", + "237": "-1/2", + "238": "-1/2", + "242": "-1/2", + "243": "-1/2", + "246": "-1/2", + "250": "1/2", + "251": "-1", + "255": "-1/2", + "258": "-1/2", + "259": "-1/2", + "262": "-1/2", + "266": "1/2", + "267": "-1", + "27": "-1/2", + "271": "-1/2", + "283": "-1", + "29": "-1/2", + "299": "-1", + "303": "-1", + "304": "-1/2", + "312": "1/2", + "315": "-1/2", + "324": "-1/2", + "33": "-1/2", + "331": "-1/2", + "334": "-1/2", + "340": "1/2", + "347": "-1/2", + "35": "-1/2", + "350": "1/2", + "351": "-1", + "352": "1/2", + "36": "1/2", + "363": "-1/2", + "367": "-1/2", + "38": "-1/2", + "399": "-1", + "4": "-1/2", + "40": "-1/2", + "400": "1/2", + "401": "1/2", + "402": "-1/2", + "403": "1/2", + "405": "1/2", + "409": "1/2", + "41": "1/2", + "413": "1/2", + "414": "1/2", + "415": "-1/2", + "416": "1/2", + "417": "1/2", + "418": "-1/2", + "419": "1/2", + "421": "1/2", + "425": "1/2", + "429": "1/2", + "43": "1/2", + "430": "1/2", + "431": "-1/2", + "432": "1/2", + "437": "1/2", + "44": "1/2", + "443": "-1/2", + "446": "1/2", + "447": "-1", + "47": "1/2", + "48": "-1/2", + "50": "-1/2", + "52": "1/2", + "55": "-1/2", + "58": "-1/2", + "6": "1/2", + "60": "-1/2", + "62": "-1/2", + "65": "-1/2", + "68": "1/2", + "7": "-1/2", + "71": "-1/2", + "73": "1/2", + "75": "1/2", + "77": "-1/2", + "81": "-1/2", + "83": "1/2", + "85": "-1/2", + "86": "-1/2", + "87": "-1/2", + "89": "-1/2", + "9": "-1/2", + "91": "-1/2", + "94": "-1/2", + "96": "1/2", + "99": "1/2" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 736, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 151, + "support_count": 113 + }, + { + "clear_frame": 595, + "copy_event": 13400, + "copy_frame": 531, + "delivery_factor": "-1/2", + "independent_witnesses": [ + { + "coefficient": "-1/2", + "initial_vector": 11, + "input": 0 + }, + { + "coefficient": "-1/2", + "initial_vector": 259, + "input": 5 + }, + { + "coefficient": "-1/2", + "initial_vector": 21, + "input": 7 + }, + { + "coefficient": "1/2", + "initial_vector": 37, + "input": 8 + }, + { + "coefficient": "-1/2", + "initial_vector": 69, + "input": 9 + }, + { + "coefficient": "-1/2", + "initial_vector": 133, + "input": 10 + }, + { + "coefficient": "-1/2", + "initial_vector": 265, + "input": 15 + }, + { + "coefficient": "-1/2", + "initial_vector": 14, + "input": 25 + } + ], + "initial_covector": { + "0": "-1/2", + "10": "-1/2", + "100": "-1/2", + "101": "-1/2", + "106": "1/2", + "109": "1/2", + "111": "-1/2", + "146": "1", + "15": "-1/2", + "16": "1/2", + "17": "-1/2", + "18": "-1/2", + "20": "1/2", + "22": "-1/2", + "225": "-1/2", + "226": "1/2", + "227": "-1/2", + "229": "-1/2", + "233": "-1/2", + "237": "-1/2", + "238": "-1/2", + "239": "1/2", + "240": "-1/2", + "241": "-1/2", + "243": "-1/2", + "245": "-1/2", + "249": "-1/2", + "25": "-1/2", + "253": "-1/2", + "254": "-1/2", + "255": "1/2", + "257": "-1/2", + "261": "-1/2", + "262": "-1/2", + "266": "1/2", + "267": "-1/2", + "269": "-1/2", + "270": "-1/2", + "272": "-1/2", + "280": "1/2", + "283": "-1/2", + "288": "-1/2", + "296": "1/2", + "299": "-1/2", + "30": "-1/2", + "303": "1", + "304": "-1/2", + "308": "-1/2", + "31": "-1/2", + "312": "1/2", + "318": "-1/2", + "319": "1", + "32": "-1/2", + "320": "-1", + "33": "-1/2", + "352": "-1/2", + "356": "1/2", + "366": "1/2", + "367": "-1/2", + "368": "-1/2", + "37": "1/2", + "379": "1/2", + "383": "-1/2", + "384": "-1/2", + "395": "1/2", + "399": "1/2", + "40": "-1/2", + "400": "-1/2", + "405": "-1/2", + "411": "1/2", + "414": "-1/2", + "415": "1", + "418": "-1/2", + "419": "1/2", + "42": "1/2", + "421": "-1/2", + "422": "-1/2", + "425": "1/2", + "426": "1/2", + "43": "1/2", + "430": "-1/2", + "431": "1/2", + "434": "-1/2", + "435": "1/2", + "437": "-1/2", + "438": "-1/2", + "441": "1/2", + "442": "1/2", + "446": "-1/2", + "447": "1/2", + "47": "-1/2", + "48": "-1/2", + "49": "-1/2", + "5": "-1/2", + "51": "-1/2", + "52": "-1/2", + "54": "-1/2", + "60": "1/2", + "63": "-1/2", + "65": "1/2", + "66": "1/2", + "67": "-1/2", + "68": "-1/2", + "7": "-1/2", + "70": "-1/2", + "73": "-1/2", + "77": "-1/2", + "79": "-1/2", + "8": "1/2", + "84": "1/2", + "85": "-1/2", + "87": "-1/2", + "88": "-1/2", + "89": "-1/2", + "9": "-1/2", + "90": "-1/2", + "92": "-1/2", + "97": "1/2", + "98": "-1/2", + "99": "-1/2" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 737, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 146, + "support_count": 120 + }, + { + "clear_frame": 597, + "copy_event": 13409, + "copy_frame": 591, + "delivery_factor": "-1/2", + "independent_witnesses": [ + { + "coefficient": "-1/2", + "initial_vector": 35, + "input": 2 + }, + { + "coefficient": "-1/2", + "initial_vector": 259, + "input": 5 + }, + { + "coefficient": "-1/2", + "initial_vector": 37, + "input": 8 + }, + { + "coefficient": "-1/2", + "initial_vector": 41, + "input": 12 + }, + { + "coefficient": "-1/2", + "initial_vector": 49, + "input": 16 + }, + { + "coefficient": "-1/2", + "initial_vector": 161, + "input": 20 + }, + { + "coefficient": "1/2", + "initial_vector": 321, + "input": 23 + }, + { + "coefficient": "1/2", + "initial_vector": 14, + "input": 25 + } + ], + "initial_covector": { + "102": "1/2", + "103": "-1/2", + "106": "1/2", + "107": "-1/2", + "108": "-1/2", + "11": "1/2", + "111": "-1/2", + "12": "-1/2", + "133": "1", + "15": "-1/2", + "16": "-1/2", + "19": "1/2", + "2": "-1/2", + "20": "-1/2", + "23": "1/2", + "24": "1/2", + "240": "-1/2", + "243": "-1/2", + "246": "1/2", + "249": "-1/2", + "25": "1/2", + "250": "-1/2", + "251": "1/2", + "255": "1/2", + "257": "1/2", + "258": "-1/2", + "259": "-1/2", + "26": "1/2", + "261": "1/2", + "267": "-1/2", + "269": "1/2", + "270": "1/2", + "271": "-1/2", + "28": "1/2", + "287": "1", + "288": "-1/2", + "29": "1/2", + "292": "1/2", + "296": "1/2", + "302": "1/2", + "304": "-1/2", + "308": "1/2", + "31": "1/2", + "312": "1/2", + "318": "1/2", + "32": "1/2", + "33": "1/2", + "335": "1", + "336": "-1/2", + "340": "1/2", + "350": "1/2", + "351": "-1/2", + "36": "-1/2", + "367": "1", + "383": "1", + "384": "-1/2", + "388": "1/2", + "398": "1/2", + "399": "-1/2", + "40": "-1/2", + "400": "-1/2", + "402": "1/2", + "403": "-1/2", + "406": "1/2", + "409": "-1/2", + "41": "-1/2", + "410": "-1/2", + "411": "1/2", + "415": "1/2", + "417": "1/2", + "419": "-1/2", + "421": "1/2", + "427": "-1/2", + "429": "1/2", + "430": "1/2", + "431": "-1/2", + "432": "-1", + "433": "1/2", + "435": "-1", + "438": "-1/2", + "44": "1/2", + "442": "1/2", + "443": "-1", + "445": "1/2", + "46": "1/2", + "48": "-1/2", + "49": "-1/2", + "5": "-1/2", + "53": "1/2", + "54": "-1/2", + "58": "-1/2", + "59": "-1/2", + "63": "-1/2", + "64": "-1/2", + "69": "1/2", + "70": "-1/2", + "74": "1/2", + "75": "1/2", + "77": "1/2", + "78": "-1/2", + "79": "1/2", + "8": "-1/2", + "80": "-1/2", + "82": "-1/2", + "83": "-1/2", + "88": "1/2", + "91": "1/2", + "94": "-1/2", + "97": "1/2", + "99": "1/2" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 738, + "owned_move_ranks": [ + 1, + 1, + 3, + 2 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 133, + "support_count": 110 + }, + { + "clear_frame": 598, + "copy_event": 13425, + "copy_frame": 518, + "delivery_factor": "1/4", + "independent_witnesses": [ + { + "coefficient": "-1", + "initial_vector": 19, + "input": 1 + }, + { + "coefficient": "-1", + "initial_vector": 35, + "input": 2 + }, + { + "coefficient": "-1", + "initial_vector": 131, + "input": 4 + }, + { + "coefficient": "-1", + "initial_vector": 259, + "input": 5 + }, + { + "coefficient": "1", + "initial_vector": 13, + "input": 6 + }, + { + "coefficient": "-1", + "initial_vector": 69, + "input": 9 + }, + { + "coefficient": "1", + "initial_vector": 73, + "input": 13 + }, + { + "coefficient": "1", + "initial_vector": 14, + "input": 25 + } + ], + "initial_covector": { + "1": "-1", + "101": "1", + "102": "1", + "104": "-1", + "107": "-1", + "110": "-1", + "111": "-1", + "13": "1", + "16": "-1", + "18": "1", + "19": "1", + "2": "-1", + "20": "-1", + "21": "-1", + "24": "1", + "25": "1", + "256": "1", + "257": "1", + "258": "-1", + "261": "1", + "262": "-1", + "265": "1", + "266": "1", + "267": "-2", + "269": "1", + "270": "1", + "271": "-2", + "28": "1", + "288": "-1", + "292": "1", + "296": "1", + "302": "1", + "303": "-2", + "304": "-1", + "308": "1", + "312": "1", + "318": "1", + "319": "-2", + "32": "1", + "336": "-1", + "340": "1", + "35": "-1", + "350": "1", + "351": "-3", + "36": "1", + "37": "1", + "384": "-1", + "388": "1", + "39": "-1", + "398": "1", + "399": "-3", + "4": "-1", + "40": "-1", + "416": "1", + "417": "1", + "418": "-1", + "421": "1", + "422": "-1", + "425": "1", + "426": "1", + "427": "-2", + "429": "1", + "43": "1", + "430": "1", + "431": "-2", + "433": "1", + "434": "-1", + "437": "1", + "438": "-1", + "44": "1", + "441": "1", + "442": "1", + "443": "-2", + "445": "1", + "446": "1", + "447": "-2", + "45": "1", + "46": "1", + "47": "1", + "48": "-1", + "5": "-1", + "51": "-1", + "54": "-1", + "55": "-1", + "58": "-1", + "6": "1", + "61": "1", + "64": "-1", + "65": "-1", + "68": "1", + "69": "1", + "72": "1", + "75": "1", + "78": "-1", + "79": "1", + "82": "-1", + "85": "-1", + "86": "-1", + "89": "-1", + "9": "-1", + "93": "1", + "94": "-1", + "96": "1", + "97": "1", + "98": "1", + "99": "1" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 739, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 256, + "support_count": 106 + }, + { + "clear_frame": 599, + "copy_event": 13440, + "copy_frame": 267, + "delivery_factor": "1/4", + "independent_witnesses": [ + { + "coefficient": "1", + "initial_vector": 11, + "input": 0 + }, + { + "coefficient": "1", + "initial_vector": 35, + "input": 2 + }, + { + "coefficient": "1", + "initial_vector": 21, + "input": 7 + }, + { + "coefficient": "1", + "initial_vector": 69, + "input": 9 + }, + { + "coefficient": "1", + "initial_vector": 133, + "input": 10 + }, + { + "coefficient": "1", + "initial_vector": 261, + "input": 11 + }, + { + "coefficient": "1", + "initial_vector": 41, + "input": 12 + }, + { + "coefficient": "1", + "initial_vector": 14, + "input": 25 + } + ], + "initial_covector": { + "0": "1", + "10": "1", + "100": "1", + "101": "1", + "102": "1", + "103": "1", + "107": "1", + "108": "1", + "109": "1", + "11": "1", + "12": "1", + "17": "1", + "18": "1", + "19": "1", + "2": "1", + "22": "1", + "225": "1", + "226": "-1", + "227": "2", + "229": "1", + "23": "1", + "230": "1", + "233": "1", + "234": "-1", + "235": "2", + "237": "1", + "238": "1", + "24": "1", + "240": "1", + "241": "1", + "242": "1", + "243": "2", + "245": "1", + "246": "1", + "249": "1", + "25": "1", + "250": "-1", + "251": "2", + "253": "1", + "254": "1", + "256": "1", + "257": "1", + "258": "1", + "259": "2", + "261": "1", + "262": "1", + "265": "1", + "266": "-1", + "267": "2", + "269": "1", + "27": "1", + "270": "1", + "272": "1", + "276": "1", + "280": "-1", + "283": "2", + "286": "1", + "287": "-2", + "288": "1", + "292": "1", + "296": "-1", + "299": "2", + "302": "1", + "303": "-2", + "304": "1", + "308": "1", + "31": "1", + "312": "-1", + "315": "2", + "318": "1", + "319": "-2", + "32": "1", + "320": "1", + "324": "1", + "33": "1", + "331": "2", + "334": "1", + "335": "-1", + "34": "1", + "35": "1", + "38": "1", + "39": "1", + "40": "1", + "45": "1", + "48": "1", + "49": "1", + "50": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "61": "1", + "62": "1", + "63": "1", + "7": "1", + "70": "1", + "71": "1", + "72": "1", + "76": "1", + "77": "1", + "79": "1", + "81": "1", + "85": "1", + "87": "1", + "89": "1", + "9": "1", + "90": "1", + "91": "1", + "92": "1", + "94": "1", + "98": "1" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 740, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 92, + "support_count": 111 + }, + { + "clear_frame": 600, + "copy_event": 13455, + "copy_frame": 517, + "delivery_factor": "1/4", + "independent_witnesses": [ + { + "coefficient": "1", + "initial_vector": 35, + "input": 2 + }, + { + "coefficient": "1", + "initial_vector": 37, + "input": 8 + }, + { + "coefficient": "-1", + "initial_vector": 69, + "input": 9 + }, + { + "coefficient": "1", + "initial_vector": 41, + "input": 12 + }, + { + "coefficient": "1", + "initial_vector": 49, + "input": 16 + }, + { + "coefficient": "1", + "initial_vector": 161, + "input": 20 + }, + { + "coefficient": "-1", + "initial_vector": 321, + "input": 23 + }, + { + "coefficient": "-1", + "initial_vector": 14, + "input": 25 + } + ], + "initial_covector": { + "100": "-1", + "103": "1", + "104": "-1", + "108": "1", + "109": "1", + "110": "-1", + "111": "-1", + "12": "1", + "13": "1", + "16": "1", + "17": "-1", + "2": "1", + "20": "1", + "21": "1", + "22": "-1", + "23": "-1", + "25": "-1", + "256": "1", + "257": "-1", + "258": "1", + "259": "2", + "26": "-1", + "261": "-1", + "262": "-1", + "265": "1", + "266": "1", + "269": "-1", + "270": "-1", + "272": "-1", + "276": "1", + "280": "1", + "286": "1", + "287": "-2", + "29": "-1", + "3": "1", + "30": "-1", + "31": "-1", + "320": "-1", + "324": "1", + "33": "-1", + "334": "1", + "335": "-3", + "34": "-1", + "352": "-1", + "356": "1", + "36": "1", + "366": "1", + "367": "-3", + "368": "-1", + "37": "1", + "372": "1", + "38": "1", + "382": "1", + "383": "-3", + "416": "1", + "417": "-1", + "418": "-1", + "419": "2", + "421": "-1", + "422": "-1", + "425": "1", + "426": "1", + "429": "-1", + "43": "1", + "430": "-1", + "432": "2", + "433": "-1", + "434": "-1", + "435": "2", + "437": "-1", + "438": "-1", + "44": "-1", + "441": "1", + "442": "1", + "445": "-1", + "446": "-1", + "46": "-1", + "47": "-1", + "49": "1", + "50": "1", + "51": "-1", + "56": "1", + "59": "1", + "60": "1", + "61": "1", + "66": "1", + "67": "-1", + "72": "1", + "73": "-1", + "74": "-1", + "77": "-1", + "78": "1", + "79": "-1", + "8": "1", + "80": "1", + "83": "1", + "84": "1", + "88": "-1", + "89": "-1", + "9": "-1", + "94": "1", + "95": "-1", + "99": "-1" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 741, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 9, + "support_count": 103 + }, + { + "clear_frame": 601, + "copy_event": 13470, + "copy_frame": 477, + "delivery_factor": "-1/4", + "independent_witnesses": [ + { + "coefficient": "-1", + "initial_vector": 131, + "input": 4 + }, + { + "coefficient": "1", + "initial_vector": 259, + "input": 5 + }, + { + "coefficient": "1", + "initial_vector": 133, + "input": 10 + }, + { + "coefficient": "1", + "initial_vector": 265, + "input": 15 + }, + { + "coefficient": "1", + "initial_vector": 145, + "input": 18 + }, + { + "coefficient": "-1", + "initial_vector": 161, + "input": 20 + }, + { + "coefficient": "1", + "initial_vector": 193, + "input": 22 + }, + { + "coefficient": "-1", + "initial_vector": 134, + "input": 29 + } + ], + "initial_covector": { + "10": "1", + "101": "1", + "102": "-1", + "105": "1", + "106": "-1", + "108": "1", + "109": "-1", + "11": "-1", + "110": "-1", + "111": "1", + "14": "-1", + "15": "1", + "18": "1", + "19": "-1", + "20": "-1", + "21": "1", + "22": "1", + "23": "-1", + "240": "1", + "241": "1", + "242": "-1", + "245": "1", + "246": "-1", + "249": "1", + "250": "1", + "251": "-2", + "253": "1", + "254": "1", + "255": "-2", + "288": "1", + "29": "-1", + "292": "-1", + "296": "-1", + "30": "1", + "302": "-1", + "303": "-2", + "320": "1", + "324": "-1", + "33": "-1", + "334": "-1", + "335": "-1", + "34": "1", + "352": "1", + "356": "-1", + "36": "1", + "366": "-1", + "367": "-1", + "37": "-1", + "384": "1", + "388": "-1", + "39": "-1", + "398": "-1", + "399": "-1", + "4": "-1", + "40": "1", + "400": "1", + "401": "1", + "402": "-1", + "405": "1", + "406": "-1", + "409": "1", + "41": "1", + "410": "1", + "411": "-2", + "413": "1", + "414": "1", + "415": "-2", + "42": "-1", + "432": "2", + "433": "-1", + "434": "1", + "437": "1", + "438": "1", + "441": "-1", + "442": "-1", + "445": "-1", + "446": "1", + "447": "-2", + "46": "-1", + "47": "1", + "49": "1", + "5": "1", + "50": "-1", + "52": "1", + "53": "-1", + "54": "1", + "55": "-1", + "59": "1", + "60": "-1", + "62": "-1", + "63": "1", + "64": "1", + "65": "-1", + "68": "1", + "69": "-1", + "70": "1", + "71": "-1", + "73": "1", + "74": "-1", + "83": "1", + "84": "-1", + "90": "1", + "91": "-1", + "96": "1", + "97": "-1" + }, + "initial_span_rank": 8, + "nonzero_chart_inputs": 52, + "owned": 742, + "owned_move_ranks": [ + 7 + ], + "required_global_owned_descent_rank_mass": 7, + "source_role": 240, + "support_count": 105 + } + ], + "scope": "One unchanged scalar target at its retained delivery frame; owned descent cost can be shared across targets, so individual bounds must not be summed.", + "status": "PASS_RANK_EIGHT_PRODUCER_AND_LOSS_SPACE_BINDING" + }, + "status": "PASS_P104_OWNED_CLEANUP_OBSTRUCTIONS", + "windows": { + "all_source_endpoint_rows": 743, + "corruption_controls": { + "changed_source_bytes": true, + "owned_role_used_as_public_witness": true, + "reversed_public_window": true, + "zero_separating_vector": true + }, + "distinct_full_holder_geometries": 2832, + "distinct_public_holder_geometries": 2340, + "event_boundaries_with_helper_owned_pairs": 5252, + "new_bound": false, + "owned_holder_pairs_by_register": { + "735": 594, + "736": 549, + "737": 476, + "738": 812, + "739": 702, + "740": 767, + "741": 663, + "742": 689 + }, + "positive_control": { + "boundary": 15443, + "common_dimension": 8, + "common_frame": 559, + "helper": 706, + "partner": 173, + "source": "PR5561 headline word" + }, + "public_only_witnesses": true, + "source_role_173": "productive helper; port61 is not live", + "status": "PASS_PUBLIC_WINDOW_OBSTRUCTION", + "witness_examples": [ + { + "boundary": 13378, + "helper": 173, + "public_bounds": [ + [ + 112, + 3, + 593 + ], + [ + 115, + 3, + 430 + ], + [ + 117, + 3, + 439 + ], + [ + 118, + 3, + 3 + ], + [ + 120, + 3, + 430 + ], + [ + 121, + 549, + 549 + ], + [ + 142, + 3, + 411 + ], + [ + 169, + 553, + 553 + ], + [ + 170, + 3, + 3 + ], + [ + 171, + 3, + 412 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 176, + 3, + 449 + ], + [ + 179, + 3, + 421 + ], + [ + 180, + 3, + 3 + ], + [ + 182, + 3, + 593 + ], + [ + 184, + 3, + 593 + ], + [ + 185, + 3, + 401 + ], + [ + 188, + 3, + 249 + ], + [ + 192, + 3, + 3 + ], + [ + 194, + 3, + 383 + ], + [ + 195, + 3, + 3 + ], + [ + 198, + 3, + 597 + ], + [ + 199, + 3, + 258 + ], + [ + 205, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 207, + 3, + 3 + ], + [ + 208, + 3, + 450 + ] + ], + "witness": [ + 121, + 112, + 549, + 593, + 2 + ] + }, + { + "boundary": 13378, + "helper": 224, + "public_bounds": [ + [ + 57, + 127, + 127 + ], + [ + 81, + 127, + 127 + ], + [ + 112, + 3, + 593 + ], + [ + 118, + 3, + 3 + ], + [ + 119, + 3, + 594 + ], + [ + 120, + 3, + 430 + ], + [ + 121, + 549, + 549 + ], + [ + 125, + 3, + 594 + ], + [ + 127, + 3, + 602 + ], + [ + 128, + 3, + 594 + ], + [ + 129, + 317, + 1055 + ], + [ + 130, + 541, + 144 + ], + [ + 139, + 3, + 594 + ], + [ + 151, + 543, + 543 + ], + [ + 152, + 3, + 17 + ], + [ + 154, + 3, + 602 + ], + [ + 169, + 553, + 553 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 176, + 3, + 449 + ], + [ + 182, + 3, + 593 + ], + [ + 184, + 3, + 593 + ], + [ + 185, + 3, + 401 + ], + [ + 194, + 3, + 383 + ], + [ + 195, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 207, + 3, + 3 + ], + [ + 208, + 3, + 450 + ], + [ + 215, + 318, + 901 + ], + [ + 224, + 127, + 127 + ], + [ + 225, + 267, + 127 + ], + [ + 226, + 260, + 260 + ], + [ + 227, + 267, + 127 + ], + [ + 234, + 267, + 127 + ], + [ + 238, + 266, + 266 + ] + ], + "witness": [ + 57, + 112, + 127, + 593, + 1 + ] + }, + { + "boundary": 13378, + "helper": 225, + "public_bounds": [ + [ + 7, + 264, + 264 + ], + [ + 57, + 127, + 127 + ], + [ + 81, + 127, + 127 + ], + [ + 92, + 267, + 267 + ], + [ + 118, + 3, + 3 + ], + [ + 119, + 3, + 594 + ], + [ + 120, + 3, + 430 + ], + [ + 121, + 549, + 549 + ], + [ + 128, + 3, + 594 + ], + [ + 129, + 317, + 1055 + ], + [ + 130, + 541, + 144 + ], + [ + 146, + 531, + 531 + ], + [ + 151, + 543, + 543 + ], + [ + 152, + 3, + 17 + ], + [ + 154, + 3, + 602 + ], + [ + 162, + 529, + 529 + ], + [ + 169, + 553, + 553 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 176, + 3, + 449 + ], + [ + 185, + 3, + 401 + ], + [ + 194, + 3, + 383 + ], + [ + 195, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 207, + 3, + 3 + ], + [ + 208, + 3, + 450 + ], + [ + 215, + 318, + 901 + ], + [ + 224, + 127, + 127 + ], + [ + 225, + 267, + 127 + ], + [ + 228, + 529, + 127 + ], + [ + 234, + 267, + 127 + ], + [ + 451, + 262, + 737 + ], + [ + 497, + 520, + 520 + ] + ], + "witness": [ + 7, + 118, + 264, + 3, + 11 + ] + }, + { + "boundary": 13378, + "helper": 226, + "public_bounds": [ + [ + 57, + 127, + 127 + ], + [ + 81, + 127, + 127 + ], + [ + 92, + 267, + 267 + ], + [ + 121, + 549, + 549 + ], + [ + 124, + 3, + 3 + ], + [ + 125, + 3, + 594 + ], + [ + 127, + 3, + 602 + ], + [ + 139, + 3, + 594 + ], + [ + 142, + 3, + 411 + ], + [ + 146, + 531, + 531 + ], + [ + 160, + 345, + 1059 + ], + [ + 161, + 3, + 46 + ], + [ + 162, + 529, + 529 + ], + [ + 166, + 3, + 327 + ], + [ + 169, + 553, + 553 + ], + [ + 170, + 3, + 3 + ], + [ + 171, + 3, + 412 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 205, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 210, + 348, + 910 + ], + [ + 212, + 3, + 307 + ], + [ + 213, + 3, + 594 + ], + [ + 224, + 127, + 127 + ], + [ + 226, + 260, + 260 + ], + [ + 229, + 267, + 127 + ], + [ + 236, + 265, + 265 + ] + ], + "witness": [ + 57, + 92, + 127, + 267, + 2 + ] + }, + { + "boundary": 13378, + "helper": 227, + "public_bounds": [ + [ + 7, + 264, + 264 + ], + [ + 81, + 127, + 127 + ], + [ + 92, + 267, + 267 + ], + [ + 112, + 3, + 593 + ], + [ + 119, + 3, + 594 + ], + [ + 121, + 549, + 549 + ], + [ + 124, + 3, + 3 + ], + [ + 125, + 3, + 594 + ], + [ + 127, + 3, + 602 + ], + [ + 128, + 3, + 594 + ], + [ + 139, + 3, + 594 + ], + [ + 142, + 3, + 411 + ], + [ + 146, + 531, + 531 + ], + [ + 154, + 3, + 602 + ], + [ + 160, + 345, + 1059 + ], + [ + 161, + 3, + 46 + ], + [ + 162, + 529, + 529 + ], + [ + 166, + 3, + 327 + ], + [ + 169, + 553, + 553 + ], + [ + 170, + 3, + 3 + ], + [ + 171, + 3, + 412 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 182, + 3, + 593 + ], + [ + 184, + 3, + 593 + ], + [ + 205, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 210, + 348, + 910 + ], + [ + 212, + 3, + 307 + ], + [ + 213, + 3, + 594 + ], + [ + 227, + 267, + 127 + ], + [ + 229, + 267, + 127 + ], + [ + 230, + 261, + 261 + ] + ], + "witness": [ + 7, + 112, + 264, + 593, + 11 + ] + }, + { + "boundary": 13378, + "helper": 233, + "public_bounds": [ + [ + 57, + 127, + 127 + ], + [ + 81, + 127, + 127 + ], + [ + 92, + 267, + 267 + ], + [ + 121, + 549, + 549 + ], + [ + 125, + 3, + 594 + ], + [ + 127, + 3, + 602 + ], + [ + 139, + 3, + 594 + ], + [ + 142, + 3, + 411 + ], + [ + 146, + 531, + 531 + ], + [ + 160, + 345, + 1059 + ], + [ + 161, + 3, + 46 + ], + [ + 162, + 529, + 529 + ], + [ + 169, + 553, + 553 + ], + [ + 170, + 3, + 3 + ], + [ + 171, + 3, + 412 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 205, + 3, + 3 + ], + [ + 206, + 278, + 1047 + ], + [ + 210, + 348, + 910 + ], + [ + 224, + 127, + 127 + ], + [ + 226, + 260, + 260 + ], + [ + 229, + 267, + 127 + ], + [ + 233, + 550, + 678 + ], + [ + 236, + 265, + 265 + ] + ], + "witness": [ + 57, + 92, + 127, + 267, + 2 + ] + }, + { + "boundary": 13378, + "helper": 235, + "public_bounds": [ + [ + 92, + 267, + 267 + ], + [ + 112, + 3, + 593 + ], + [ + 119, + 3, + 594 + ], + [ + 120, + 3, + 430 + ], + [ + 121, + 549, + 549 + ], + [ + 125, + 3, + 594 + ], + [ + 127, + 3, + 602 + ], + [ + 128, + 3, + 594 + ], + [ + 129, + 317, + 1055 + ], + [ + 130, + 541, + 144 + ], + [ + 134, + 3, + 595 + ], + [ + 139, + 3, + 594 + ], + [ + 151, + 543, + 543 + ], + [ + 152, + 3, + 17 + ], + [ + 154, + 3, + 602 + ], + [ + 157, + 3, + 3 + ], + [ + 169, + 553, + 553 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 176, + 3, + 449 + ], + [ + 182, + 3, + 593 + ], + [ + 184, + 3, + 593 + ], + [ + 206, + 278, + 1047 + ], + [ + 207, + 3, + 3 + ], + [ + 208, + 3, + 450 + ], + [ + 215, + 318, + 901 + ], + [ + 219, + 3, + 3 + ], + [ + 220, + 3, + 374 + ], + [ + 224, + 127, + 127 + ], + [ + 225, + 267, + 127 + ], + [ + 226, + 260, + 260 + ], + [ + 227, + 267, + 127 + ], + [ + 234, + 267, + 127 + ], + [ + 235, + 549, + 127 + ], + [ + 238, + 266, + 266 + ] + ], + "witness": [ + 92, + 112, + 267, + 593, + 1 + ] + }, + { + "boundary": 13378, + "helper": 237, + "public_bounds": [ + [ + 7, + 264, + 264 + ], + [ + 57, + 127, + 127 + ], + [ + 81, + 127, + 127 + ], + [ + 92, + 267, + 267 + ], + [ + 119, + 3, + 594 + ], + [ + 120, + 3, + 430 + ], + [ + 121, + 549, + 549 + ], + [ + 128, + 3, + 594 + ], + [ + 129, + 317, + 1055 + ], + [ + 130, + 541, + 144 + ], + [ + 146, + 531, + 531 + ], + [ + 151, + 543, + 543 + ], + [ + 152, + 3, + 17 + ], + [ + 154, + 3, + 602 + ], + [ + 162, + 529, + 529 + ], + [ + 169, + 553, + 553 + ], + [ + 173, + 559, + 559 + ], + [ + 174, + 3, + 593 + ], + [ + 176, + 3, + 449 + ], + [ + 206, + 278, + 1047 + ], + [ + 207, + 3, + 3 + ], + [ + 208, + 3, + 450 + ], + [ + 215, + 318, + 901 + ], + [ + 224, + 127, + 127 + ], + [ + 228, + 529, + 127 + ], + [ + 234, + 267, + 127 + ], + [ + 237, + 258, + 258 + ], + [ + 451, + 262, + 737 + ], + [ + 497, + 520, + 520 + ] + ], + "witness": [ + 7, + 119, + 264, + 594, + 11 + ] + } + ], + "witnesses_sha256": "46b34eea4ede33fb71a3e45b0ace22dbd36dddff5002aca3e8d6c172230c206c" + } +} diff --git a/research/p104-owned-cleanup-obstruction/SOURCES.json b/research/p104-owned-cleanup-obstruction/SOURCES.json new file mode 100644 index 0000000000..9fa46dac00 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/SOURCES.json @@ -0,0 +1,41 @@ +{ + "schema_version": 1, + "base_commit": "5e0052ca0aa3036a3afa8b0438927377c8d97d53", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "fc3d4ba105e1f097d0d7d051a308281e86ab1446", + "sha256": "66974efdced4083c00025f97d95d83909a226cdf801edb9301c195c6641f6903" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/p104-owned-cleanup-obstruction/inputs/pr5569-WORD.json.gz", + "usage": "input", + "git_blob": "3f4eb4be87a2f7a96391c39d960eedeb7bef5d1c", + "sha256": "12224e9a13a49c830b304338a8d31610fb43da15d1a650537733c27f7864310f", + "pin": "head:6784bc3d6e38d2092f4b43da5c1d2dabbd763092:research/p104-owned-cleanup-obstruction/inputs/pr5569-WORD.json.gz" + }, + { + "path": "research/p104-owned-cleanup-obstruction/inputs/pr5561-WORD.json.gz", + "usage": "input", + "git_blob": "c367d865a154ffd2ae0b6f6053469580a139f487", + "sha256": "b3701d78bee3661382ebe5414e678dfc9ee292e254cb9dc56339c2d2f45fdf44", + "pin": "head:6784bc3d6e38d2092f4b43da5c1d2dabbd763092:research/p104-owned-cleanup-obstruction/inputs/pr5561-WORD.json.gz" + } + ], + "retained_origin": { + "pr_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5569", + "head": "af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf", + "original_paths": [ + "research/p104-priced-handoff/WORD.json.gz", + "research/p104-priced-handoff/inputs/pr5561-WORD.json.gz" + ], + "scope": "Byte-identical files retained with attribution in this publication history. Original foreign commit is not required by registered replay." + } +} diff --git a/research/p104-owned-cleanup-obstruction/TASK.json b/research/p104-owned-cleanup-obstruction/TASK.json new file mode 100644 index 0000000000..77b8673b97 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/TASK.json @@ -0,0 +1,130 @@ +{ + "schema_version": 1, + "task_id": "scalar-to-moment", + "priority_revision": 7, + "base_commit": "5e0052ca0aa3036a3afa8b0438927377c8d97d53", + "original_card": { + "id": "scalar-to-moment", + "question": "Can a changed frame itinerary remove a paid transition beyond the already covered scalar A2 contractions?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-a2-graph-rewrite/README.md", + "research/staged544-separated-a2/README.md", + "research/staged544-a2-composition-audit/README.md", + "research/staged544-a1858-contraction-audit/README.md" + ], + "methods": [ + "Derive the changed legal frame itinerary and exact child histogram.", + "Prove a scoped obstruction showing why that scalar gain cannot change the paid contract." + ], + "acceptance_gate": "An unchanged histogram is not a kappa gain; record any separate runtime or proof benefit explicitly.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the A2 and separated-A2 constructions and their composition/contraction audits. Scalar contractions can preserve the complete recursive histogram; fewer ADDs alone do not justify further scans.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Identify an actual paid transition to remove and construct a legal replacement frame itinerary, charging restoration, source windows and changed helpers. Compare complete before/after histograms. Stop if only scalar count changes; report that benefit honestly, without expanding the same scalar-only census.", + "bottleneck_link": "A legal change to the histogram, not addition count alone, is the bridge to an exponent gain.", + "allowed_variations": [ + "One existing scalar simplification and one proposed frame-path change." + ], + "scope_change_triggers": [ + "Submitting only another scalar count as completion of a paid-profile task." + ], + "overlap_terms": [ + "scalar simplification", + "paid profile", + "R439", + "3998", + "4019", + "4112", + "4152", + "staged544-a2-graph-rewrite", + "staged544-separated-a2", + "staged544-a2-composition-audit", + "staged544-a1858-contraction-audit" + ], + "existing_checks": [ + { + "scope": "PR #3998: consecutive A2 scalar contraction", + "evidence": "research/staged544-a2-graph-rewrite/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "389268a6b5e0373a3125d5c6fcd6995f4ea324f5", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4019: separated A2 sites with unchanged recursive histogram", + "evidence": "research/staged544-separated-a2/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "f408e09df300b575235f7f77f81948071397e16d", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4112: composition audit", + "evidence": "research/staged544-a2-composition-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "205b7380656ba4b6316a8a493b1a3c679b8f7a0e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4152: A1858 contraction audit", + "evidence": "research/staged544-a1858-contraction-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "caaa14cde5962adc372fdca71f63d0f29e73c8b2", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + "scope_status": "refined", + "actual_scope": "Can the owned-holder states omitted by PR5569 support a cheaper early cleanup, or can exact frame and boundary obstructions close specific mechanisms?", + "scope_change_reason": "The donor explicitly assigned P104 early cleanup with owned temporaries. PR5569 identifies 2832 skipped owned-holder geometries. We test that gap and the literal owned delivery blocks, rather than rerunning the older A2 census.", + "bottleneck_link": "The candidate mechanism must reduce a paid recursive transport moment after all public restorations and owned transports are charged. The result rules out specified routes to such savings; it supplies no new kappa or productive credit.", + "budget_minutes": 180, + "stop_rule": "Stop each template when an exact obstruction covers its declared domain. Do not expand a coefficient or frame grid after a source-window proof excludes every common subspace. Publish checked scope limits and the next changed-model question.", + "outcome": "negative-result", + "evidence": "Seven fixed-boundary star floors, nonadditive loss-space bound, joint eight-crossing count floor, and 29688-case public multi-partner obstruction for owned738. PROOF-*.md and verify.py provide exact source checks and semantic controls. The 5252-case window census independently corroborates concurrent PR5579 and is not claimed as novel.", + "author": "flyingviper, with substantial OpenAI Codex assistance and independent agents", + "ai_assistance": "Substantial OpenAI Codex assistance for analysis, Python, prose and publication; independent agents implemented a separate window census, audited source supports and boundaries, and searched primary literature. No independent human or proof-kernel acceptance is claimed.", + "open_questions": [ + { + "question": "Can a changed public dependency or a cleanup network using multiple contact charts lower the complete paid-minus-productive profile?", + "why_it_matters": "The all-holder window obstruction rules out a single common chart with unchanged scalar contacts, not multi-stage scalar redesign.", + "first_step": "Choose one required delivery, specify a changed dependency and all entry/exit rows and frames, then derive its exact replacement histogram before optimizing coefficients.", + "blocked_by": "Needs a new legal scalar/frame itinerary and complete native, ownership, ordinary-cost and funding replay; current results provide no candidate." + }, + { + "question": "Can work shared across owned lifetimes beat the separate fixed-boundary star floors?", + "why_it_matters": "The seven local optima do not apply when outside side information or private work crosses their boundaries; the global loss-space bounds are not additive.", + "first_step": "Write a joint public boundary and identify one specific transport whose information could serve two required values; verify the exact transfer map and account for new helpers.", + "blocked_by": "A feasible shared construction or a joint information-flow lower bound is missing; adding separate H7 bounds is invalid." + } + ], + "source_baseline": { + "pr": 5569, + "head": "af9f091ac6f30c6eaacb9c27777bfbe2d0e5ffdf", + "status": "Full original verifier passed locally before these checks; conditional and unselected." + }, + "expansion_gate": { + "ownership_contract": "735 arbitrary public inputs; zero-initialized owned fields may descend and be erased under the inherited source contract; public fields ascend.", + "proved_cost": "Seven separate fixed-delivery blocks attain their raw recursive paid moment floor for every 0= public and role not in owned, 'fresh private lifetime') + owned[role] = None + elif op == 'COPY': + need(role >= public and role in owned and owned[role] is None and event[2] < public, + 'COPY of one public producer') + coefficient = Q(event[-2]) + need(coefficient != 0, 'nonzero private COPY') + owned[role] = (event[2], coefficient) + elif op == 'CLEAR': + need(role in owned, 'active private CLEAR') + del owned[role] + elif op == 'SCALE' and role >= public: + need(role in owned and owned[role] is not None, 'scaled private copy') + source, coefficient = owned[role] + need(Q(event[-2]) != 0, 'nonzero private SCALE') + owned[role] = source, coefficient * Q(event[-2]) + elif op in ('ADD', 'SCALE'): + need(role < public, 'only scaled-copy private template') + need(all(value is None or value[0] != role for value in owned.values()), + 'copied producer remains unchanged throughout owned lifetime') + if op == 'SCALE': + need(Q(event[-2]) != 0, 'invertible public SCALE') + lowered = ('SCALE', role, Q(event[-2])) + else: + source, coefficient = event[2], Q(event[-2]) + if source >= public: + need(source in owned and owned[source] is not None, 'live private source') + source, factor = owned[source] + coefficient *= factor + census['owned_to_public_shear'] += 1 + need(source != role and coefficient != 0, 'invertible public ADD') + lowered = ('ADD', role, source, coefficient) + census[op] += 1 + else: + need(op == 'MOVE', 'known event type') + effective.append(lowered) + need(not owned, 'all owned lifetimes closed') + return effective, dict(census) + + +def _windows(word): + public = word['public'] + count = public + 8 + index = [[] for _ in range(count)] + windows = [[] for _ in range(count)] + chain = [[f] for f in word['initial']] + [[None] for _ in range(8)] + for i, event in enumerate(word['program']): + op, role = event[:2] + if op == 'MOVE': + need(chain[role][-1] == event[2], 'window source frame') + chain[role].append(event[3]) + continue + roles = (role,) if op in ('INIT', 'CLEAR', 'SCALE') else (role, event[2]) + for r in roles: + index[r].append(i) + windows[r].append(chain[r]) + chain[r] = [None if op == 'CLEAR' else event[-1]] + for r in range(count): + windows[r].append(chain[r]) + return index, windows + + +def _add(row, source, coefficient): + for key, value in source.items(): + result = row.get(key, Q(0)) + coefficient * value + if result: + row[key] = result + else: + row.pop(key, None) + + +def _initial_value(effective, public): + rows = [{r: Q(1)} for r in range(public)] + for operation in effective[:13411]: + if operation is None: + continue + if operation[0] == 'SCALE': + rows[operation[1]] = {k: operation[2] * x for k, x in rows[operation[1]].items()} + else: + _, role, source, coefficient = operation + _add(rows[role], rows[source], coefficient) + return {key: -value / 2 for key, value in rows[133].items()} + + +def _covector_step(value, operation): + """If x' = E x, fixed value c*x has coordinates c*E^-1 in x'.""" + if operation is None: + return + role = operation[1] + if operation[0] == 'SCALE': + if role in value: + value[role] /= operation[2] + elif value.get(role): + source, coefficient = operation[2:] + updated = value.get(source, Q(0)) - coefficient * value[role] + if updated: + value[source] = updated + else: + value.pop(source, None) + + +def _pair_witness(bounds, masks): + upper = (1 << 512) - 1 + for _, high in bounds.values(): + upper &= masks[high] + for role, (low, _) in bounds.items(): + missing = masks[low] & ~upper + if missing: + vector = (missing & -missing).bit_length() - 1 + other, high = next((r, high) for r, (_, high) in bounds.items() + if not (masks[high] >> vector & 1)) + return [role, other, low, high, vector] + return None + + +def _check_pair(pair, bounds, masks): + left, right, low, high, vector = pair + need(left in bounds and right in bounds, 'pair roles are necessary support or recipient') + need(bounds[left][0] == low and bounds[right][1] == high, 'pair binds actual windows') + need(masks[low] >> vector & 1 and not (masks[high] >> vector & 1), 'separating pair vector') + + +def _compute(word): + P = word['program'] + need(word['public'] == 735 and len(P) == 25140, 'pinned word shape') + need(P[13408] == ['INIT', 738, 591] and P[13409] == ['COPY', 738, 133, '1', 591] + and P[13410] == ['SCALE', 738, '-1/2', 591] + and P[13423] == ['CLEAR', 738, 597], 'owned738 source binding') + target_events = [(13412, 159, '-1'), (13414, 203, '2'), (13417, 148, '2'), + (13420, 710, '1'), (13422, 734, '1')] + effective, census = _ops(word) + index, windows = _windows(word) + masks = [_span(frame) for frame in word['frames']] + frames = word['frames'] + deliveries = [] + for event, role, coefficient in target_events: + need(P[event][:4] == ['ADD', role, 738, coefficient], 'actual delivery binding') + slot = index[role].index(event) + low, high = windows[role][slot][0], windows[role][slot + 1][-1] + previous = index[role][slot - 1] if slot else -1 + following = index[role][slot + 1] if slot + 1 < len(index[role]) else len(P) + # Sum of lower recipient and mandatory owned terminal span. + joined = {0} + for vector in frames[low] + frames[597]: + joined |= {x ^ vector for x in joined} + ceiling = masks[high] & masks[591] + need(all(ceiling >> vector & 1 for vector in joined), 'source delivery route feasible') + deliveries.append({'recipient': role, 'event': event, 'previous_contact': previous, + 'next_contact': following, 'lower_frame': low, 'upper_frame': high, + 'minimum_dimension': len(joined).bit_length() - 1, + 'maximum_dimension': ceiling.bit_count().bit_length() - 1}) + need([(x['minimum_dimension'], x['maximum_dimension']) for x in deliveries] + == [(7, 7), (6, 6), (3, 4), (1, 1), (1, 1)], 'complete delivery dimension alternatives') + owned_profiles = [] + for middle in (3, 4): + dims = [8, 7, 6, middle, 1] + owned_profiles.append(Counter(a - b for a, b in zip(dims, dims[1:]))) + need(owned_profiles == [Counter({1: 2, 2: 1, 3: 1})] * 2, 'both owned alternatives have identical invoice') + middle_delivery = deliveries[2] + lower_dim = len(frames[middle_delivery['lower_frame']]) + upper_dim = len(frames[middle_delivery['upper_frame']]) + need((lower_dim, upper_dim) == (2, 5), 'recipient148 neighboring dimensions') + need(Counter([3-lower_dim, upper_dim-3]) == Counter([4-lower_dim, upper_dim-4]), + 'recipient148 alternate invoice is equal') + initial = _initial_value(effective, word['public']) + value = dict(initial) + counts = {x['recipient']: 0 for x in deliveries} + examples, witnesses = {}, [] + for boundary, operation in enumerate(effective[:max(x['next_contact'] for x in deliveries)]): + _covector_step(value, operation) + if boundary in (13376, 13410): + need(value == {133: Q(-1, 2)}, 'unique value coordinates at producer birth and private COPY') + for d in deliveries: + role = d['recipient'] + if not d['previous_contact'] <= boundary < d['next_contact']: + continue + need(value.get(role, Q(0)) == 0, 'recipient is not needed to represent copied value') + bounds = {role: (d['lower_frame'], d['upper_frame'])} + for donor in sorted(value): + chain = windows[donor][bisect_right(index[donor], boundary)] + bounds[donor] = chain[0], chain[-1] + pair = _pair_witness(bounds, masks) + need(pair is not None, 'every public multipartner replacement lacks a common chart') + _check_pair(pair, bounds, masks) + counts[role] += 1 + witnesses.append([boundary, role, pair]) + if role not in examples: + examples[role] = {'boundary': boundary, 'pair': pair, 'support_size': len(value), + 'bounds': [[r, a, b] for r, (a, b) in sorted(bounds.items())]} + result = {'status': 'PASS_OWNED738_DELIVERY_OBSTRUCTION', + 'effective_public_operations': census, + 'delivery_windows': deliveries, + 'owned_paid_histogram_both_alternatives': {'1': 2, '2': 1, '3': 1}, + 'public148_paid_histogram_both_alternatives': {'1': 1, '2': 1}, + 'public_replacement_boundaries': {str(r): n for r, n in counts.items()}, + 'all_public_replacement_boundaries': len(witnesses), + 'witnesses_sha256': sha256(json.dumps(witnesses, separators=(',', ':')).encode()).hexdigest(), + 'initial_value_support': len(initial), + 'pair_examples': {str(r): value for r, value in examples.items()}, + 'new_bound': False} + return result, effective, initial, masks + + +def _rejected(fn): + try: + fn() + except ValueError: + return True + return False + + +def verify(word): + """Authenticate the scientific input externally, then recompute this gate.""" + result, effective, initial, masks = _compute(word) + changed_producer = json.loads(json.dumps(word)) + changed_producer['program'][13412][1] = 133 + zero_scale = json.loads(json.dumps(word)) + scale_event = next(e for e in zero_scale['program'] if e[0] == 'SCALE' and e[1] < word['public']) + scale_event[-2] = '0' + example = next(iter(result['pair_examples'].values())) + bounds = {r: (a, b) for r, a, b in example['bounds']} + bad_pair = example['pair'][:-1] + [0] + def altered_functional(): + value = dict(initial) + value[0] = value.get(0, Q(0)) + 1 + for operation in effective[:13411]: + _covector_step(value, operation) + need(value == {133: Q(-1, 2)}, 'target functional matches private copy') + controls = { + 'copied_public_producer_changed': _rejected(lambda: _ops(changed_producer)), + 'singular_public_scale': _rejected(lambda: _ops(zero_scale)), + 'altered_target_functional': _rejected(altered_functional), + 'zero_separating_vector': _rejected(lambda: _check_pair(bad_pair, bounds, masks)), + } + need(all(controls.values()), 'owned738 semantic mutation controls') + # Minimal algebraic positive control for the covector direction. + value = {0: Q(1)} + _covector_step(value, ('ADD', 0, 1, Q(2))) + need(value == {0: Q(1), 1: Q(-2)}, 'inverse elementary-row covector control') + result['corruption_controls'] = controls + result['covector_positive_control'] = 'D=x0 before x0+=2*x1 becomes x0-2*x1 afterward' + return result diff --git a/research/p104-owned-cleanup-obstruction/check_lifetimes.py b/research/p104-owned-cleanup-obstruction/check_lifetimes.py new file mode 100644 index 0000000000..c4a7c518ba --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/check_lifetimes.py @@ -0,0 +1,259 @@ +"""Portable independent rational boundary checker for the eight owned blocks. + +Only stdlib imports; no side effects on import. The caller supplies the decoded +word and owns source pinning. This is not a complete native/funding verifier. +""" +from fractions import Fraction as Q +import copy + +# Literal public boundary specification, independently transcribed from the +# frozen source. Source byte/hash provenance belongs to the caller. +SPECS = { + 735: (173, [704,705,706], ['1/2']*3), + 736: (151, [707,708,733], ['1/2']*3), + 737: (146, [709,732], ['-1/2']*2), + 738: (133, [159,203,148,710,734], ['1/2','-1','-1','-1/2','-1/2']), + 739: (256, [712,713,714,715,716], ['1/4']*5), + 740: (92, [717,718,719,720,721], ['1/4']*5), + 741: (9, [722,723,724,725,726], ['1/4']*5), + 742: (240, [727,728,729,730,731], ['-1/4']*5), +} + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def add(row, source, coefficient): + out = dict(row) + for k, x in source.items(): + value = out.get(k, Q(0)) + coefficient*x + if value: + out[k] = value + else: + out.pop(k, None) + return out + + +def apply(rows, event): + op, dst = event[:2] + if op == 'MOVE': + return + if op in ('INIT', 'CLEAR'): + rows[dst] = {} + elif op == 'SCALE': + rows[dst] = {k: Q(event[2])*x for k, x in rows[dst].items()} + elif op == 'COPY': + rows[dst] = {k: Q(event[3])*x for k, x in rows[event[2]].items()} + elif op == 'ADD': + rows[dst] = add(rows[dst], rows[event[2]], Q(event[3])) + else: + raise ValueError('unknown scalar event') + + +def rational_rank(rows): + pivots = {} + for row in rows: + row = dict(row) + while row: + p = min(row) + if p not in pivots: + divisor = row[p] + pivots[p] = {k: x/divisor for k, x in row.items()} + break + row = add(row, pivots[p], -row[p]) + return len(pivots) + + +def binary_rank(vectors): + pivots = {} + for x in vectors: + while x: + p = x.bit_length()-1 + if p in pivots: + x ^= pivots[p] + else: + pivots[p] = x + break + return len(pivots) + + +def jsonrow(row): + return {str(k): str(x) for k, x in sorted(row.items())} + + +def add_hist(hist, degree): + hist[degree] = hist.get(degree, 0)+1 + + +def verify(w): + """Check the eight fixed public boundary blocks; return a JSON-safe receipt. + + The input is a decoded WORD object. No input mutation or filesystem access + occurs. This is not a complete native character or funding verifier. + """ + events, frames, public = w['program'], w['frames'], w['public'] + n = public+8 + need(public == 735, 'frozen role count') + intervals = {} + for owned in range(public, n): + starts_found = [i for i, e in enumerate(events) if e[:2] == ['INIT', owned]] + stops_found = [i+1 for i, e in enumerate(events) if e[:2] == ['CLEAR', owned]] + need(len(starts_found) == len(stops_found) == 1, 'one INIT/CLEAR per owned lifetime') + start, stop = starts_found[0], stops_found[0] + need(start < stop, 'INIT before CLEAR') + intervals[owned] = (start, stop) + need(all(intervals[r][1] == intervals[r+1][0] for r in range(735, 742)), 'consecutive blocks') + + rows = [{i: Q(1)} for i in range(public)]+[{} for _ in range(8)] + chart = list(w['initial'])+[None for _ in range(8)] + snapshots = {} + starts = {x[0]: r for r, x in intervals.items()} + ends = {x[1]: r for r, x in intervals.items()} + for i, e in enumerate(events): + if i in starts: + snapshots[(starts[i], 'before')] = ([dict(row) for row in rows], list(chart)) + op, dst = e[:2] + if op == 'INIT': + need(dst >= public and chart[dst] is None, 'INIT requires inactive private field') + chart[dst] = e[2] + elif op == 'MOVE': + need(chart[dst] is not None and chart[dst] == e[2], 'declared old frame matches active frame') + need(e[4] == (dst >= public), 'MOVE ownership flag matches role') + a, b = frames[e[2]], frames[e[3]] + need(binary_rank(a+b) == max(len(a),len(b)), 'MOVE charts nested') + need((len(a) >= len(b)) if e[4] else (len(a) <= len(b)), 'MOVE follows ownership direction') + chart[dst] = e[3] + elif op == 'CLEAR': + need(dst >= public and chart[dst] is not None and chart[dst] == e[2], 'CLEAR active private frame') + chart[dst] = None + elif op == 'SCALE': + need(chart[dst] is not None and chart[dst] == e[3], 'SCALE common frame') + elif op in ('ADD','COPY'): + need(chart[dst] is not None and chart[e[2]] is not None and chart[dst] == chart[e[2]] == e[4], 'ADD/COPY common frame') + if op == 'COPY': + need(dst >= public and rows[dst] == {}, 'COPY requires zero private destination') + else: + raise ValueError('unknown opcode') + apply(rows, e) + if i+1 in ends: + snapshots[(ends[i+1], 'after')] = ([dict(row) for row in rows], list(chart)) + + results = [] + for owned, (start, stop) in intervals.items(): + block = events[start:stop] + copies = [e for e in block if e[0] == 'COPY'] + need(len(copies) == 1 and copies[0][1] == owned, 'single source copy') + source = copies[0][2] + expected_source, expected_recipients, expected_coefficients = SPECS[owned] + need(source == expected_source, 'fixed local source role') + recipients = [e[1] for e in block if e[0] == 'ADD'] + need(recipients == expected_recipients, 'fixed local recipient roles') + need(len(set(recipients)) == len(recipients), 'one delivery per recipient') + need(all(e[2] == owned for e in block if e[0] == 'ADD'), 'owned source at deliveries') + roles = [source]+recipients + controls = roles+[owned] + before, entry = snapshots[(owned, 'before')] + after, exit_frames = snapshots[(owned, 'after')] + prefix_rank = rational_rank([before[r] for r in roles]) + need(prefix_rank == len(roles), 'public local prefix coordinates independent') + need(after[source] == before[source], 'source unchanged') + need(after[owned] == {}, 'owned exit zero') + need(all(before[r] == after[r] for r in range(public) if r not in recipients), + 'no outside public scalar row changed') + local = [{} for _ in range(n)] + for j, r in enumerate(controls): + local[r] = {j: Q(1)} + for e in block: + apply(local, e) + transfers = {} + for j, r in enumerate(recipients, 1): + need(set(local[r]) == {0, j} and local[r][j] == 1, 'exact local delivery form') + transfers[r] = local[r][0] + need(transfers[r] == Q(expected_coefficients[j-1]), 'fixed local transfer coefficient') + need(after[r] == add(before[r], before[source], transfers[r]), 'actual prefix delivery') + need(local[source] == {0: Q(1)} and local[owned] == {}, 'local source and zero exit') + suffix = [{} for _ in range(n)] + for j, r in enumerate(controls): + suffix[r] = {j: Q(1)} + for e in events[stop:]: + apply(suffix, e) + suffix_rank = rational_rank(suffix[:public]) + need(suffix_rank == len(roles), 'fixed suffix observes every public local coordinate') + need(all(len(roles) not in row for row in suffix[:public]), 'retired owned has no public suffix influence') + last_add = max(i for i in range(start, stop) if events[i][0] == 'ADD') + healthy = [{} for _ in range(n)] + damaged = [{} for _ in range(n)] + for j, r in enumerate(controls): + healthy[r] = damaged[r] = {j: Q(1)} + for i in range(start, len(events)): + apply(healthy, events[i]) + if i != last_add: + apply(damaged, events[i]) + different = [r for r in range(public) if healthy[r] != damaged[r]] + need(bool(different), 'omitted delivery negative control observed') + paid, private_paid, public_paid = {}, {}, {} + for e in block: + if e[0] == 'MOVE': + a, b = frames[e[2]], frames[e[3]] + need(binary_rank(a+b) == max(len(a), len(b)), 'source move charts nested') + degree = abs(len(a)-len(b)) + add_hist(paid, degree) + add_hist(private_paid if e[4] else public_paid, degree) + support = before[source] + entry_vectors = [v for r in support for v in frames[w['initial'][r]]] + star = all(len(frames[entry[r]]) == 0 and len(frames[exit_frames[r]]) == 1 for r in recipients) + if star: + need(private_paid == {7: 1} and public_paid == {1: len(recipients)}, 'tight uniform star tariff') + need(all(before[r] == {r: Q(1)} for r in recipients), 'star recipients independent original symbols') + need(len(frames[entry[source]]) == 8, 'star source dimension eight') + result = { + 'owned': owned, 'events_half_open': [start, stop], 'source': source, + 'source_role': 'live' if source in w['live'] else 'helper', + 'recipients': recipients, 'transfers_from_source': {str(r): str(c) for r, c in transfers.items()}, + 'entry_frames': {str(r): entry[r] for r in roles}, + 'exit_frames': {str(r): exit_frames[r] for r in roles}, + 'entry_dimensions': {str(r): len(frames[entry[r]]) for r in roles}, + 'exit_dimensions': {str(r): len(frames[exit_frames[r]]) for r in roles}, + 'local_matrix': [jsonrow(local[r]) for r in controls], + 'actual_prefix_rank': prefix_rank, 'public_suffix_rank': suffix_rank, + 'owned_exit_zero': True, 'owned_public_suffix_column_zero': True, + 'source_prefix_nonzeros': len(support), 'source_entry_support_span_dimension': binary_rank(entry_vectors), + 'support_to_recipient_exit_dimension_gaps': {str(r): binary_rank(entry_vectors+frames[exit_frames[r]])-len(frames[exit_frames[r]]) for r in recipients}, + 'local_paid_histogram': paid, 'public_paid_histogram': public_paid, + 'owned_paid_histogram': private_paid, 'omitted_delivery_event': last_add, + 'corruption_changed_public_outputs': different, + 'tight_fixed_boundary_star_theorem_applies': star, + 'no_gain_scope': ('Exact local public boundary charts and map; arbitrary private zero auxiliaries; no outside side information, changed productive targets or credits.' if star else 'No tight local cost floor claimed: delivery charts have several levels.')} + results.append(result) + need(sum(r['tight_fixed_boundary_star_theorem_applies'] for r in results) == 7, 'seven tight star blocks') + result = {'status': 'PASS_EIGHT_OWNED_BOUNDARIES_SEVEN_TIGHT_STARS', + 'lifetimes': results, 'new_kappa': False, + 'global_claim_excluded': 'Per-row owned-preparation floors cannot be added when private work or lost subspaces are shared.'} + return result + + +def mutation_controls(word): + """Require rejection of three local semantic corruptions of a passing word.""" + verify(word) + cases = [] + for name in ('wrong_delivery_sign', 'zeroed_owned_producer', 'wrong_delivery_frame'): + damaged = copy.deepcopy(word) + events = damaged['program'] + if name == 'zeroed_owned_producer': + event = next(e for e in events if e[:2] == ['COPY',735]) + event[3] = '0' + else: + event = next(e for e in events if e[:3] == ['ADD',704,735]) + if name == 'wrong_delivery_sign': + event[3] = '-1' + else: + event[4] = 559 + try: + verify(damaged) + except ValueError as error: + cases.append({'mutation': name, 'rejected': True, 'reason': str(error)}) + else: + raise AssertionError('semantic corruption escaped: '+name) + return cases diff --git a/research/p104-owned-cleanup-obstruction/check_producers.py b/research/p104-owned-cleanup-obstruction/check_producers.py new file mode 100644 index 0000000000..05ee08dce0 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/check_producers.py @@ -0,0 +1,253 @@ +"""Reusable exact producer-support and loss-space source certificate. + +The caller supplies the authenticated decoded PR5569 word. No filesystem, +network, optimizer or predecessor verifier is used here. +""" +from copy import deepcopy +from fractions import Fraction as Q + + +def need(condition, reason): + if not condition: + raise ValueError(reason) + + +def basis_reduce(vectors): + basis = [] + for original in vectors: + v = original + for row in basis: + v = min(v, v ^ row) + if v: + basis.append(v) + basis.sort(reverse=True) + return basis + + +def span(basis): + out = {0} + for v in basis: + out |= {x ^ v for x in tuple(out)} + return out + + +def loss_floor(support_basis, delivery_basis): + """dim((support+delivery)/delivery), the global descent rank-mass floor.""" + return len(basis_reduce(list(support_basis)+list(delivery_basis))) - len(basis_reduce(delivery_basis)) + + +def verify(word): + program = word['program'] + frames = word['frames'] + need(word['public'] == 735, 'public role inventory') + first_init = next((i for i,e in enumerate(program) if e[0] == 'INIT'), None) + need(first_init == 13377, 'first owned INIT source binding') + targets = [(i,e[1],e[2],e[-1]) for i,e in enumerate(program) if e[0] == 'COPY'] + need([(o,r) for i,o,r,f in targets] == [(735,173),(736,151),(737,146),(738,133), + (739,256),(740,92),(741,9),(742,240)], + 'exact eight owned producer bindings') + coefficients = [{role:Q(1)} for _,_,role,_ in targets] + for event, owned, role, frame in targets: + need(Q(program[event][-2]) != 0, 'nonzero COPY factor') + need(not any(e[1] == role and e[0] != 'MOVE' for e in program[first_init:event]), + 'producer row unchanged between public prefix and COPY') + # Unique pullback through the purely public invertible prefix. + for event in reversed(program[:first_init]): + op, dst = event[:2] + if op == 'MOVE': + need(not event[-1], 'no owned descent in public prefix') + need(span(frames[event[2]]) < span(frames[event[3]]), 'ascending public prefix MOVE') + continue + need(op in ('ADD','SCALE'), 'invertible public prefix operation') + q = Q(event[-2]) + need(q != 0, 'nonzero scalar coefficient') + for covector in coefficients: + if dst not in covector: + continue + if op == 'SCALE': + covector[dst] *= q + else: + src = event[2] + value = covector.get(src,Q(0)) + q * covector[dst] + if value: + covector[src] = value + else: + covector.pop(src,None) + results = [] + for target,covector in zip(targets,coefficients): + event,owned,role,frame = target + vectors = [v for r in covector for v in frames[word['initial'][r]]] + basis = basis_reduce(vectors) + need(len(basis) == 8 and span(basis) == span(frames[frame]), + 'rank-eight entry support equals producer frame') + end = next((j for j in range(event+1,len(program)) if program[j][0] == 'CLEAR' and program[j][1] == owned), None) + need(end is not None, 'owned delivery lifetime closes') + final_frame = program[end][-1] + current = frame + multiplier = Q(program[event][-2]) + paid_ranks = [] + final_reads = 0 + for e in program[event+1:end]: + if e[0] in ('ADD','COPY') and e[2] == owned and e[-1] == final_frame: + final_reads += 1 + if e[1] != owned: + continue + if e[0] == 'SCALE': + need(e[-1] == current and Q(e[-2]) != 0, 'owned scalar preserves producer support') + multiplier *= Q(e[-2]) + elif e[0] == 'MOVE': + need(e[2] == current and e[-1] is True, 'owned paid descent binding') + need(span(frames[e[3]]) < span(frames[current]), 'strict owned descent') + paid_ranks.append(len(frames[current])-len(frames[e[3]])) + current = e[3] + else: + raise ValueError('owned producer payload changed before delivery') + need(current == final_frame and final_reads > 0, 'actual retained delivery frame and read') + lower = loss_floor(basis,frames[final_frame]) + need(lower == 7 and sum(paid_ranks) == 7 and len(frames[final_frame]) == 1, + 'rank-seven loss-space lower bound and source rank mass') + witnesses = [] + independent = [] + for r in sorted(covector): + for v in frames[word['initial'][r]]: + if len(basis_reduce(independent+[v])) > len(independent): + independent.append(v) + witnesses.append({'input':r,'coefficient':str(covector[r]),'initial_vector':v}) + results.append({'owned':owned,'copy_event':event,'source_role':role,'copy_frame':frame, + 'support_count':len(covector),'initial_span_rank':8, + 'nonzero_chart_inputs':sum(bool(frames[word['initial'][r]]) for r in covector), + 'independent_witnesses':witnesses,'clear_frame':final_frame, + 'delivery_factor':str(multiplier),'owned_move_ranks':paid_ranks, + 'required_global_owned_descent_rank_mass':lower, + 'initial_covector':{str(k):str(v) for k,v in sorted(covector.items())}}) + return {'status':'PASS_RANK_EIGHT_PRODUCER_AND_LOSS_SPACE_BINDING','first_owned_init':first_init, + 'results':results,'new_bound':False, + 'scope':'One unchanged scalar target at its retained delivery frame; owned descent cost can be shared across targets, so individual bounds must not be summed.'} + + +def controls(word): + wrong_entry_support = deepcopy(word) + original_support = span(word['frames'][559]) + outside = next(v for v in range(1,512) if v not in original_support) + wrong_entry_support['frames'].append([outside]) + wrong_entry_support['initial'][111] = len(wrong_entry_support['frames'])-1 + wrong_producer = deepcopy(word) + wrong_producer['program'][13378][2] = 704 + unaccounted_descent = deepcopy(word) + move = next(e for e in unaccounted_descent['program'][:13377] if e[0] == 'MOVE') + move[-1] = True + changed_payload = deepcopy(word) + changed_payload['program'][13379] = ['ADD',735,111,'1',559] + rejected = [] + for name,mutant in [('entry_support_outside_producer_frame',wrong_entry_support), + ('wrong_producer_value',wrong_producer), + ('unaccounted_descent_in_public_prefix',unaccounted_descent), + ('changed_owned_payload_before_delivery',changed_payload)]: + try: + verify(mutant) + except ValueError: + rejected.append(name) + else: + raise ValueError('corruption control accepted: '+name) + # A widened delivery interface genuinely weakens the floor: no universal H7 claim. + support = word['frames'][559] + delivery = list(word['frames'][593]) + extra = next(v for v in support if v not in span(delivery)) + widened = delivery+[extra] + need(loss_floor(support,widened) == 6, 'widened-delivery scope control') + return {'rejected_corruptions':rejected,'widened_delivery_rank':2, + 'widened_delivery_loss_floor':6,'individual_floors_not_additive':True} + + +def rational_rank(rows): + """Exact row reduction, returning independent column indices as a witness.""" + rows = [[Q(x) for x in row] for row in rows] + if not rows: + return 0, [] + width = len(rows[0]) + need(all(len(row) == width for row in rows), 'rectangular rational matrix') + pivots = [] + for column in range(width): + at = len(pivots) + pivot = next((j for j in range(at,len(rows)) if rows[j][column]), None) + if pivot is None: + continue + rows[at], rows[pivot] = rows[pivot], rows[at] + q = rows[at][column] + rows[at] = [x/q for x in rows[at]] + for j in range(at+1,len(rows)): + q = rows[j][column] + if q: + rows[j] = [x-q*y for x,y in zip(rows[j],rows[at])] + pivots.append(column) + if len(pivots) == len(rows): + break + return len(pivots), pivots + + +def determinant(matrix): + matrix = [[Q(x) for x in row] for row in matrix] + n = len(matrix) + need(all(len(row) == n for row in matrix), 'square minor') + result = Q(1) + for column in range(n): + pivot = next((j for j in range(column,n) if matrix[j][column]), None) + if pivot is None: + return Q(0) + if pivot != column: + matrix[column],matrix[pivot] = matrix[pivot],matrix[column] + result = -result + q = matrix[column][column] + result *= q + for j in range(column+1,n): + factor = matrix[j][column]/q + for k in range(column+1,n): + matrix[j][k] -= factor*matrix[column][k] + return result + + +def verify_joint_cut(word, producer_receipt): + """Count shared owned crossings; this does NOT prove an eight-H7 tariff.""" + producers = producer_receipt['results'] + need([r['owned'] for r in producers] == list(range(735,743)), 'joint producer order') + delivery_frames = [word['frames'][r['clear_frame']] for r in producers] + need(all(len(frame) == 1 for frame in delivery_frames), 'eight fixed delivery lines') + W_basis = basis_reduce([v for frame in delivery_frames for v in frame]) + need(len(W_basis) == 8, 'joint delivery subspace rank') + W = span(W_basis) + outside = [i for i,f in enumerate(word['initial']) if not span(word['frames'][f]) <= W] + matrix = [[Q(r['delivery_factor'])*Q(r['initial_covector'].get(str(i),0)) for i in outside] + for r in producers] + rank, pivots = rational_rank(matrix) + need(rank == 8, 'eight independent outside-input observations') + minor = [[row[k] for k in pivots] for row in matrix] + det = determinant(minor) + need(det != 0, 'independent exact minor determinant') + crossings = [] + for i,e in enumerate(word['program']): + if e[0] != 'MOVE': + continue + before, after = span(word['frames'][e[2]]), span(word['frames'][e[3]]) + if not before <= W and after <= W: + need(e[-1] is True and after < before, 'every into-W crossing is a paid owned descent') + crossings.append({'event':i,'owned':e[1],'from':e[2],'to':e[3], + 'paid_rank':len(word['frames'][e[2]])-len(word['frames'][e[3]])}) + need(len(crossings) == 8 and sorted(r['owned'] for r in crossings) == list(range(735,743)), + 'source attains eight crossing events') + duplicated = matrix[:-1]+[list(matrix[0])] + duplicated_rank = rational_rank(duplicated)[0] + need(duplicated_rank == 7, 'duplicate-observation scope control') + whole = span([1<= public and role not in active, 'fresh owned lifetime') + rows[role] = {} + current[role] = event[2] + active.add(role) + elif op == 'CLEAR': + need(role in active and current[role] == event[2], 'owned erasure boundary') + rows[role] = {} + current[role] = None + active.remove(role) + else: + factor, frame = Q(event[-2]), event[-1] + need(factor and current[role] == frame, 'scalar destination') + if op == 'SCALE': + rows[role] = {symbol: factor * value for symbol, value in rows[role].items()} + else: + source = event[2] + need(source != role and current[source] == frame, 'common source chart') + if op == 'COPY': + need(role in active and not rows[role], 'COPY into empty owned field') + rows[role] = {symbol: factor * value for symbol, value in rows[source].items()} + else: + need(op == 'ADD', 'known scalar opcode') + target = dict(rows[role]) + for symbol, value in rows[source].items(): + coefficient = target.get(symbol, Q(0)) + factor * value + if coefficient: + target[symbol] = coefficient + else: + target.pop(symbol, None) + rows[role] = target + + +def analyze(word): + public = word['public'] + need(public == 735 and len(word['program']) == 25140, 'source dimensions') + indices, windows, spans = chronology(word) + mains = set(word['live']) | {r + 112 for r in word['live']} + rows = [{r: Q(1)} for r in range(public + 8)] + current = list(word['initial']) + [None] * 8 + active = set() + complete_states, public_states = set(), set() + witnesses, examples = [], [] + by_owned, peak = Counter(), 0 + for boundary, event in enumerate(word['program']): + apply(event, rows, current, active, spans, public) + peak = max(peak, len(active)) + # This is deliberately every event boundary, including MOVE boundaries, + # without the predecessor's touched-symbol or first/last-use filters. + helpers = {h for owned in active for h in rows[owned] if h < public and h not in mains} + for helper in sorted(helpers): + holders = [r for r, row in enumerate(rows) if helper in row] + required = sorted(set(holders) | {helper}) + all_bounds = [(r, window(indices, windows, r, boundary)[0], + window(indices, windows, r, boundary)[-1]) for r in required] + bounds = [(r, left, right) for r, left, right in all_bounds if r < public] + witness = obstruction(bounds, word['frames'], spans) + need(witness is not None, 'public-only obstruction at every owned-holder state') + check_witness(witness, bounds, spans) + complete_states.add((helper, tuple(all_bounds))) + public_states.add((helper, tuple(bounds))) + owned_holders = [r for r in holders if r >= public] + by_owned[','.join(map(str, owned_holders))] += 1 + witnesses.append([boundary, helper, witness]) + if len(examples) < 8: + examples.append({'boundary': boundary, 'helper': helper, + 'public_bounds': [list(bound) for bound in bounds], 'witness': witness}) + need(not active and peak == 1 and current[:public] == word['final'], 'complete source boundaries') + for role, row in enumerate(rows): + target = {role: Q(1)} if role < public else {} + if role - 112 in word['live']: + target[role - 112] = Q(1) + need(row == target, 'full arbitrary-input source transfer') + return { + 'status': 'PASS_PUBLIC_WINDOW_OBSTRUCTION', + 'event_boundaries_with_helper_owned_pairs': len(witnesses), + 'distinct_full_holder_geometries': len(complete_states), + 'distinct_public_holder_geometries': len(public_states), + 'owned_holder_pairs_by_register': dict(sorted(by_owned.items())), + 'all_source_endpoint_rows': len(rows), + 'public_only_witnesses': True, + 'witnesses_sha256': sha256(canonical(witnesses)).hexdigest(), + 'witness_examples': examples, + 'source_role_173': 'productive helper; port61 is not live', + 'new_bound': False, + }, witnesses + + +def positive_control(word): + indices, windows, spans = chronology(word) + public = word['public'] + rows = [{r: Q(1)} for r in range(public + 8)] + current = list(word['initial']) + [None] * 8 + active = set() + for event in word['program'][:15444]: + apply(event, rows, current, active, spans, public) + need(rows[706] == {706: Q(1), **{k: value / 2 for k, value in rows[173].items()}}, + 'positive control cleanup identity') + bounds = [(r, window(indices, windows, r, 15443)[0], + window(indices, windows, r, 15443)[-1]) for r in (706, 173)] + need(all(spans[left] <= spans[559] <= spans[right] for _, left, right in bounds), + 'published positive control has a common chart') + need(obstruction(bounds, word['frames'], spans) is None, 'positive control not falsely rejected') + need(len(word['frames'][word['initial'][706]]) < 8 < len(word['frames'][word['final'][706]]), + 'positive control is a strict interior helper split') + return {'source': 'PR5561 headline word', 'boundary': 15443, 'helper': 706, + 'partner': 173, 'common_frame': 559, 'common_dimension': 8} + + +def rejection(action): + try: + action() + except ValueError: + return True + return False + + +def run(source_raw, control_raw): + word = decode(source_raw, SOURCE_SHA256) + control = decode(control_raw, CONTROL_SHA256) + result, witnesses = analyze(word) + result['positive_control'] = positive_control(control) + spans = list(map(binary_span, word['frames'])) + example = result['witness_examples'][0] + bad_vector = example['witness'][:-1] + [0] + missing_role = example['witness'][:] + missing_role[0] = word['public'] + _, windows, _ = chronology(word) + chain = next(ch for role in windows[:word['public']] for ch in role if len(ch) > 1) + controls = { + 'changed_source_bytes': rejection(lambda: decode(source_raw + b' ', SOURCE_SHA256)), + 'zero_separating_vector': rejection(lambda: check_witness(bad_vector, example['public_bounds'], spans)), + 'owned_role_used_as_public_witness': rejection(lambda: check_witness(missing_role, example['public_bounds'], spans)), + 'reversed_public_window': rejection(lambda: public_window(list(reversed(chain)), spans)), + } + need(all(controls.values()), 'all semantic corruption controls rejected') + result['corruption_controls'] = controls + return result, witnesses diff --git a/research/p104-owned-cleanup-obstruction/verify.py b/research/p104-owned-cleanup-obstruction/verify.py new file mode 100644 index 0000000000..05a364e692 --- /dev/null +++ b/research/p104-owned-cleanup-obstruction/verify.py @@ -0,0 +1,58 @@ +"""Replay the source-bound owned-cleanup obstructions; no network or Git needed.""" +from pathlib import Path +import argparse +import importlib.util +import json + + +HERE = Path(__file__).resolve().parent + + +def module(name): + spec = importlib.util.spec_from_file_location(name, HERE / (name + '.py')) + loaded = importlib.util.module_from_spec(spec) + spec.loader.exec_module(loaded) + return loaded + + +def run(): + windows = module('check_windows') + producers = module('check_producers') + lifetimes = module('check_lifetimes') + exceptional = module('check_738') + source = (HERE / 'inputs/pr5569-WORD.json.gz').read_bytes() + control = (HERE / 'inputs/pr5561-WORD.json.gz').read_bytes() + word = windows.decode(source, windows.SOURCE_SHA256) + window_result, witnesses = windows.run(source, control) + producer_receipt = producers.verify(word) + result = { + 'status': 'PASS_P104_OWNED_CLEANUP_OBSTRUCTIONS', + 'new_bound': False, + 'windows': window_result, + 'producers': producer_receipt, + 'joint_cut': producers.verify_joint_cut(word, producer_receipt), + 'owned738': exceptional.verify(word), + 'producer_controls': producers.controls(word), + 'lifetimes': lifetimes.verify(word), + 'lifetime_controls': lifetimes.mutation_controls(word), + } + return result, witnesses + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--write', action='store_true', help='author the receipt') + parser.add_argument('--witnesses', type=Path, help='export all window witnesses') + args = parser.parse_args() + result, witnesses = run() + encoded = json.dumps(result, indent=2, sort_keys=True) + '\n' + if args.write: + (HERE / 'RESULT.json').write_text(encoded, encoding='utf-8', newline='\n') + elif encoded != (HERE / 'RESULT.json').read_text(encoding='utf-8'): + raise ValueError('fresh exact result differs from committed receipt') + if args.witnesses: + args.witnesses.write_text(json.dumps(witnesses, separators=(',', ':')) + '\n', + encoding='utf-8', newline='\n') + print(json.dumps({'status': result['status'], 'new_bound': False, + 'window_cases': result['windows']['event_boundaries_with_helper_owned_pairs'], + 'tight_local_stars': 7, 'source_rows': 743}))