From c951dc916aadc7d8af5b126360558f7664b08a4f Mon Sep 17 00:00:00 2001 From: Ali Romman <226877337+aliromman@users.noreply.github.com> Date: Mon, 26 Oct 2026 10:14:10 -0500 Subject: [PATCH 1/2] Prove chronological connector rank bounds and full star endpoint controls --- research/coupled31-chronology/COMMUTING.md | 90 ++++ research/coupled31-chronology/COST.md | 118 +++++ research/coupled31-chronology/DISCOVERY.md | 64 +++ research/coupled31-chronology/PROOF.md | 205 ++++++++ research/coupled31-chronology/README.md | 92 ++++ research/coupled31-chronology/RESULT.json | 153 ++++++ research/coupled31-chronology/SOURCES.json | 53 ++ research/coupled31-chronology/TASK.json | 102 ++++ research/coupled31-chronology/VERIFY.json | 36 ++ research/coupled31-chronology/WORD31.json | 1 + research/coupled31-chronology/check.py | 397 ++++++++++++++ .../discovery/coupled_seed.py | 150 ++++++ .../discovery/one-row-three-stage.json | 250 +++++++++ .../discovery/pair-search.json | 14 + .../discovery/row_signature_census.py | 54 ++ .../discovery/triangle-search.json | 14 + research/coupled31-chronology/pricing.py | 112 ++++ .../sources/escape-word.json | 351 +++++++++++++ .../sources/old-word-replay.py | 49 ++ .../sources/p104-result.json | 487 ++++++++++++++++++ .../sources/pr5673-proof.md | 231 +++++++++ .../sources/pr5681-proof.md | 169 ++++++ research/coupled31-chronology/test_verify.py | 57 ++ research/coupled31-chronology/verify.py | 65 +++ 24 files changed, 3314 insertions(+) create mode 100644 research/coupled31-chronology/COMMUTING.md create mode 100644 research/coupled31-chronology/COST.md create mode 100644 research/coupled31-chronology/DISCOVERY.md create mode 100644 research/coupled31-chronology/PROOF.md create mode 100644 research/coupled31-chronology/README.md create mode 100644 research/coupled31-chronology/RESULT.json create mode 100644 research/coupled31-chronology/SOURCES.json create mode 100644 research/coupled31-chronology/TASK.json create mode 100644 research/coupled31-chronology/VERIFY.json create mode 100644 research/coupled31-chronology/WORD31.json create mode 100644 research/coupled31-chronology/check.py create mode 100644 research/coupled31-chronology/discovery/coupled_seed.py create mode 100644 research/coupled31-chronology/discovery/one-row-three-stage.json create mode 100644 research/coupled31-chronology/discovery/pair-search.json create mode 100644 research/coupled31-chronology/discovery/row_signature_census.py create mode 100644 research/coupled31-chronology/discovery/triangle-search.json create mode 100644 research/coupled31-chronology/pricing.py create mode 100644 research/coupled31-chronology/sources/escape-word.json create mode 100644 research/coupled31-chronology/sources/old-word-replay.py create mode 100644 research/coupled31-chronology/sources/p104-result.json create mode 100644 research/coupled31-chronology/sources/pr5673-proof.md create mode 100644 research/coupled31-chronology/sources/pr5681-proof.md create mode 100644 research/coupled31-chronology/test_verify.py create mode 100644 research/coupled31-chronology/verify.py diff --git a/research/coupled31-chronology/COMMUTING.md b/research/coupled31-chronology/COMMUTING.md new file mode 100644 index 0000000000..6b97f3f02e --- /dev/null +++ b/research/coupled31-chronology/COMMUTING.md @@ -0,0 +1,90 @@ +# Commuting full calls need at least half as many thin maps as leaves + +Retain the paired-star contract in PROOF.md. Suppose all full-call projectors +commute, including projectors from different stages. Thin maps can still be +arbitrary and can have any rank. + +**Theorem.** A successful word needs at least `ceil(g/2)` thin maps. +This count is sharp when their ranks are unrestricted. + +## Proof + +For g>=2, each full projector commutes with every other full-stage support E_k. +For a different star edge k, this forces its off-diagonal block B to zero. +The remaining A projectors commute. Commuting idempotents have a common +eigenbasis over the base field, since each minimal polynomial divides +`x(x-1)`. Use this same basis on the core and all leaves. + +Fix one coordinate in that basis. Exactly one half of each stage acts on +this coordinate. Read these g active stage events in chronological order. +The pure stage prefix is diagonal. Its entries are monomials in the +independent D_j. The e coefficient of the whole word, after removal of +its pure stage product, is exactly + +```text +sum_i prefix_i^(-1) R_i prefix_i. +``` + +This calculation is in the Laurent polynomial ring. The original polynomial +ring embeds in it, so an exact equality here proves the original endpoint. + +For the entry from leaf j to the core, the full query in stage j contributes +one monomial. Its exponent records which other stage events precede j. +The D_j exponent cancels because both endpoints receive D_j together. +A thin map can cancel this term only if it occurs immediately before or +after event j in the induced active-event sequence. Every other gap has a +different monomial in the independent stage variables. There is no other +full query in this matrix entry. + +One thin map lies in one gap of this sequence. It can therefore cancel the +required entry for at most the two neighboring events. The target has zero +in every such off-diagonal entry. All g events need a cancellation, which +gives `2m>=g`. Cross-coordinate entries in thin maps cannot alter this +argument: diagonal conjugation preserves each matrix entry separately. + +For g=1, no thin map would leave the full query sum T_1, which is not I. +Thus at least one thin map is required in that case too. + +This excludes five thin maps at both 13 and 31 leaves, regardless of their +ranks or the number of coupled ports. Those targets need noncommuting full +projectors, a changed stage frame, or a different endpoint contract. + +## A complete construction at the count bound + +Choose the same coordinate half projection A in every stage and B=0. +Run both halves of stage 1, then both of stage 2, and continue in order. +After each odd-numbered stage j, insert one thin map. If j=1 and every q>=1. + +Every thin map has rank 2d=4q, including the even-g correction and singleton. +There are `ceil(g/2)` maps. They are not asserted to have square zero. +An arbitrary rank decomposition gives the stated rank-one query tariff; +native transport and frame costs are separate. The complete recursive price +loses for g>=3. This is a sharp map-count construction, not a profitable caller. + +## Exact replay + +WORD31.json contains all matrices and their order for g=31,q=2. The checker +first checks projectors, ranks, resolutions and each prescribed query. +It then collects every Laurent monomial in every matrix entry. Exactly the +128 diagonal identity terms remain. There is no truncation of stage degree. + +A separate literal interpreter evaluates the dual-number word on a Cartesian +grid of three distinct F4 values per stage. Each stage occurs twice, so its +degree is at most two. Polynomial interpolation makes this a complete check +for the small fixtures, including the retained noncommuting eight-field word. +The control `D^2+D` shows why the two binary values alone would be insufficient. +Deleted and moved thin queries fail the long endpoint check. + +The count argument and sharp construction are part of the present research. +Credit the retained star contract and source lineage in PROOF.md. Ali Romman +with substantial OpenAI Codex assistance; no subagents. Apache-2.0. diff --git a/research/coupled31-chronology/COST.md b/research/coupled31-chronology/COST.md new file mode 100644 index 0000000000..68ad4afe0f --- /dev/null +++ b/research/coupled31-chronology/COST.md @@ -0,0 +1,118 @@ +# Complete tariff consequences and unpriced obligations + +The source is PR5599 at `09dd0965711ca7eeb169057a420abab1c9052137`. +Its exact local paid and independent-helper histograms are retained in +`sources/p104-result.json`. Their net rank mass is 1720 per full call. +This section includes every term of the declared recursive star tariff. +It does not assign zero cost to a missing physical implementation. + +## 1. The entire recursive profile + +Let g be the number of leaves, q the number of coupled ports per binary +block, and R the total thin matrix rank per block. Scale to 104 native ports. +The signed target-minus-paid moment at exponent t is + +```text +M(g,R/q;t) = 208 H_(8g+1) + 208g H_9 + + 2g helpers - 2g paid - 104(R/q) H_1, +H_r = r^t. +``` + +The first term is the core target. The second term is every leaf target. +Every full call retains the complete paid profile and independent helpers. +Every thin rank unit costs one rank-one query. The proof permits a favorable +fractional block count when it derives a lower bound; actual constructions +must use integer blocks or provide the missing mixed block contract. + +The linear margin is `96g+208-104(R/q)`. This formula is a complete recursive +tariff for this declared algebraic comparison. Native frame realization and +nonrecursive obligations remain distinct. + +## 2. A uniform ceiling for one or two coupled ports + +The chronological theorem gives + +```text +R/q >= 4 + (2/q) ceil((g-2)/3). +``` + +For q<=2, this is at least `4+(g-2)/3`. Define + +```text +C(t) = 208*9^t + 2 sum helpers_r*r^t - 2 sum paid_r*r^t. +``` + +For all g>=3, the moment therefore satisfies + +```text +M <= 208(8g+1)^t + g(C(t)-104/3) - 1040/3. (1) +``` + +Take saving `alpha=8/3125=.00256`, so `t=3117/3125`. The function +`y -> y^t` is concave on positive y. Its tangent at `8*32+1=257` bounds +the right side of (1) by `s*g+c`, where + +```text +s = 1664*t*257^(t-1) + C(t) - 104/3, +c = 208*257^(t-1)*(1+256*alpha) - 1040/3. +``` + +Exact integer-power intervals give `s<0` and `c<-7`. The interval endpoints +are in RESULT.json. Thus **every integer leaf count g>=3 loses at .00256** +for q<=2, even in the favorable fractional relaxation. + +After equal ranks are cancelled, positive terms have rank at least eight +and negative terms have rank at most seven. If the margin is negative at +t0, its margin at any `0<=t<=t0` is at most `8^(t-t0)` times that negative +margin. Consequently every saving from .00256 through 1 is rejected. +This is a family-wide tariff ceiling, not a root search on a finite range. +In particular this family cannot reach selected kappa .00310045. + +For the requested g=31,q=2 case, R>=28. Its 104-port bill therefore needs +at least 1456 rank-one thin queries, instead of the proposed 520. For the +old g=127,q=1 case, R>=88 instead of ten. Both complete optimistic profiles +are recorded. Additional nonnegative charges cannot repair their loss. + +## 3. A complete binary endpoint as a control + +WORD31.json gives a real 31-leaf binary word with 62 full calls and 16 thin +maps of rank eight on each two-port block. Its full normalized endpoint is +proved in COMMUTING.md and checked without expansion into 2^31 terms. +At 104 ports it uses 52 blocks and 6656 rank-one thin queries. All source +full-call helpers and paid terms remain in its profile. Its linear margin +is -3472, and the same separated-rank argument rejects every concave moment. +It is a positive operator control with a negative complete recursive price. + +This is not the requested five-rank-two word. The theorem proves that such +a word cannot exist under the paired-star contract. + +## 4. Larger coupling and the remaining obligations + +At 31 leaves, five rank-q maps require q>=20. Using q=26 divides the 104 +ports. Its optimistic moment is positive at saving .0035. The smaller +13-leaf, q=8, five-rank-eight profile is positive at .0034. Exact intervals +are saved. Neither profile has a supplied word. COMMUTING.md proves that +neither can use commuting full-call projectors. A larger scalar field with +all maps linear over that field is not a substitute for this missing word. + +| Obligation | Status in this package | +| --- | --- | +| Chronology of the requested 31-leaf/five-rank-two word | Excluded by PROOF.md | +| Every coefficient of the 31-leaf control word | Proved and exactly replayed | +| Source full-call paid and helper profiles | Pinned complete source input | +| Thin query tariff | Charged by actual rank, or by a proved lower bound | +| Native realization of new coupled frames | Unknown; no zero-cost assumption | +| Owned and borrowed state, input reads and dirty compensation | Unknown for new frames | +| COPY, CLEAR, retained values and complete restoration | Unknown for new frames | +| Physical routes, tapes, precision, stock and uniform compiler | Unknown for new frames | +| Outer transfer and a new complete kappa | Not supplied | + +PR5701 gives separate characteristic-zero trace qualifications for direct +square-zero lifts of the static PR5681 construction. This package does not +repeat or bypass them. A positive binary word must still receive its actual +native contract and a complete physical bill before it can improve kappa. + +Credit the PR5599 tariff, PR5673 profile, and all retained P104/helper/native/ +compiler contributors. The new cost conclusion uses the chronological bound +in this package. Ali Romman with substantial OpenAI Codex assistance. +Apache-2.0. diff --git a/research/coupled31-chronology/DISCOVERY.md b/research/coupled31-chronology/DISCOVERY.md new file mode 100644 index 0000000000..a21c6dae35 --- /dev/null +++ b/research/coupled31-chronology/DISCOVERY.md @@ -0,0 +1,64 @@ +# Search record and limits + +The assigned target was 31 leaves, two coupled ports, and five rank-two thin +connectors. Main and active claims were refreshed first. PR5681 had supplied +static maps for this target; no new static construction was needed. PR5701 +had separately qualified two characteristic-zero lift contracts. + +The first new calculation used the thin row-space basis in the mixed +chronology relation. Left multiplication by one stage projection isolates +the prefix of every other stage. Untouched stages force the affine row map +to lose a dimension whenever a prefix determinant becomes too large. +Iteration gives the proof in PROOF.md. Thus the requested endpoint is +impossible, before any larger synthesis or native compilation. + +The complete source tariff with the new rank lower bound then rejects every +one- or two-port paired-star caller at saving .00256. The proof uses an exact +tangent, so it does not leave an unsearched large-leaf range. + +Two bounded seed searches tested larger coupling as a possible next route. +Both used g=3,d=4, arbitrary compatible rank-two full query halves, and all +eleven call positions as solver variables. The fixed five rank-two thin maps +use the PR5681 F/G/E formula. Their leaf signatures are `(0,1,1)` in one run +and `(1,2,3)` in the other. The sum and square-zero identities hold in both. +Each run checks the full first mixed coefficient and the pairwise pure stage +coefficient. Any SAT model is then passed to the retained complete polynomial +replay, which keeps all stage exponents. Both runs reached their 60-second +solver limit without a model. They are **unknown**, not obstructions. + +```sh +python3.12 -m venv /tmp/coupled31-discovery +/tmp/coupled31-discovery/bin/python -m pip install z3-solver==5.3.2.0 +/tmp/coupled31-discovery/bin/python -B research/coupled31-chronology/discovery/coupled_seed.py --pattern pair --timeout 60000 --models 8 --output /tmp/coupled31-pair.json +/tmp/coupled31-discovery/bin/python -B research/coupled31-chronology/discovery/coupled_seed.py --pattern triangle --timeout 60000 --models 8 --output /tmp/coupled31-triangle.json +``` + +The actual environment was Python 3.12.13 on macOS arm64, with Z3 5.3.2. +The two saved JSON files retain the precise version, pattern, timeout and +unknown reason. Timings and solver progress can vary. The default verifier +does not import the solver or treat a timeout as mathematical evidence. + +A smaller projected-chronology census shows why a dimension bound alone is +not a sufficient endpoint test. Of 19,440 ordered three-stage rank-one flags +over F2, 9864 admit a one-extra-row representation of the extracted S_jk +differences. They are necessary-condition candidates only. The census covers +six flags per stage and all 90 words with two occurrences of each label. +It does not specify thin matrices, their call order, or a full endpoint. + +```sh +python3.12 -B research/coupled31-chronology/discovery/row_signature_census.py +``` + +Its saved JSON contains four examples. Compare the counts and examples; +elapsed seconds are not a correctness criterion. No claim of a new caller +comes from this census. + +The next investigation of a cheap five-map target must use larger port +coupling and noncommuting full projectors. The commuting-projector count +proof in COMMUTING.md excludes five maps at both 13 and 31 leaves. It also +supplies a complete word at the larger map-count bound. WORD31.json and its +negative complete recursive price are retained as a control. + +No changed native supplier, practical runtime gain, or kappa improvement +was found. All failed or incomplete searches keep their stated scopes. +Ali Romman with substantial OpenAI Codex assistance; Apache-2.0. diff --git a/research/coupled31-chronology/PROOF.md b/research/coupled31-chronology/PROOF.md new file mode 100644 index 0000000000..641598c096 --- /dev/null +++ b/research/coupled31-chronology/PROOF.md @@ -0,0 +1,205 @@ +# A chronological lower bound for star connectors + +This is a finite-matrix theorem in characteristic two. It rules out the +31-leaf, five-rank-two target from PR5673 and the static maps in PR5681. +It does not rule out a different stage frame or a general native caller. +No new kappa is established. + +## 1. Contract and statement + +Use the full star contract of PR5673. The core and each of the g leaves +have dimension d. A stage j has orthogonal projectors P_jh which resolve +its core-plus-leaf support E_j. They commute with + +```text +T_j = [[I,I],[I,I]]. +``` + +The full call is `(I+x_j P_jh)(I+e R_jh)`, where `R_jh=P_jh T_j`, +`x_j=D_j+1`, and `e^2=0`. Thin calls are `I+e Z`. All x_j are independent. +The target is `(I+e I) product_j (I+x_j E_j)`. Thin maps can be arbitrary; +the proof needs no bound on their number and no square-zero condition. + +The local form is + +```text +P_jh = [[A_jh+B_jh,B_jh],[B_jh,A_jh+B_jh]], +R_jh = [[A_jh,A_jh],[A_jh,A_jh]]. +``` + +Within a stage, the A_jh are orthogonal idempotents which resolve I. +Suppose every nonzero A_jh has rank at least r, and put +`L=floor(d/r)+1`. Let V be the span of all thin row spaces, and U the +span of all thin image spaces. For g>=3, write + +```text +dim V = 2d+b, dim U = 2d+a. +``` + +**Theorem.** Every successful word satisfies + +```text +g <= L b+2, g <= L a+2, +sum_thin rank Z >= 2d + 2 ceil((g-2)/L). (1) +``` + +This holds over every field of characteristic two. It does not use a finite +field count. For two equal query halves per stage, d=2q and r=q, so L=3. +Thus the extra row and image dimensions must each grow at least as +`ceil((g-2)/3)`. A large number of distinct static signatures is not enough. + +## 2. The exact chronology relation + +The coefficient of e gives `sum_full R + sum_thin Z = I`. The coefficient +of e*x_j then gives the necessary relation + +```text +sum_(i in stage j) [P_i, sum_(l after i) R_l] = 0. (2) +``` + +Here the sum includes full and thin queries. This is a necessary coefficient +of the literal ordered word, not an endpoint converse. The retained source +and PR5681 give separate derivations of (2). + +For j!=k, let + +```text +S_jk = sum_(jh before kl) A_jh A_kl. +``` + +In (2), add block rows core and j and read column block k. A later full +call in stage k contributes `A_jh A_kl`. Other full stages contribute zero. +A later thin map contributes `A_jh (Z_0k+Z_jk)`. + +The thin sum is `K=I+sum T_j`. Its rank is 2d. Its row space is the core +plus the leaf-sum space; its image is the core plus the diagonal leaf space. +Choose b further row vectors which extend the row space of K to V. Let +M_k be their b-by-d restriction to leaf k. Every thin block column can be +written as a term constant in k plus a matrix times M_k. Therefore (2) gives +matrices L_j and C_j such that + +```text +S_jk = L_j + C_j M_k, k!=j. (3) +``` + +For a particular full call A=A_jh, let P_k be the sum of the A projections +in stage k before that call. Orthogonality within stage j gives +`A S_jk=A(I+P_k)`. Multiply (3) by A and absorb its constant term. For each +call there are matrices H and C with + +```text +A P_k = H+C M_k for every k!=j, A P_j=0. (4) +``` + +This statement remains valid after selection of any subset of leaves. +Use the induced call order and omit the other stages. A removed stage has +no contribution to S_jk for retained j,k. This restriction property is +essential to the proof below. + +## 3. A dimension drop forced by the first calls + +For a nonempty leaf set J, define h(J) as the dimension of the span of +all columns of `M_k-M_l`, for k,l in J. This span is a subspace of F^b. +It is not the dimension of the vectorized matrix differences. Choose one +leaf as a reference and a basis for that column span. After absorption of +the reference matrix into H, equation (4) has signatures with h(J) rows. + +Read the full calls on J in their induced order. Let `S=sum_(k in J) P_k` +be the total prefix. If `A S=0` at each of the first L calls, then + +```text +(I+xA)(I+xS) = I+x(S+A) +``` + +at each step, for an independent central variable x. The product of the +first L factors is `I+xS_L`. Its determinant has degree at most d. +Each A is idempotent, so `det(I+xA)=(1+x)^rank(A)`. The product determinant +has degree at least L*r>d. This is impossible. Consequently one of these +first L calls has `A S!=0`. + +Let U be the leaves not yet called at that point, after exclusion of the +current stage. At most L leaves have been removed from J. If U is nonempty, +choose u in U. For every k in U, `P_k=0`, so (4) gives + +```text +H=-C M_u, C(M_k-M_u)=0. +``` + +The map C cannot vanish on the column-difference span of J. If it did, +(4) would give `A P_k=0` for every k!=j; the own-stage product is also zero. +That would give `A S=0`. Thus C is nonzero on that span, but it kills the +column-difference span of U. We have proved + +```text +|J minus U| <= L, h(U) <= h(J)-1. (5) +``` + +Only the stage ranks and equation (4) were used. No connector placement, +matrix-size search, or pure higher stage coefficient was assumed. + +## 4. Induction and the paid-rank bound + +If h(J)=0, all signatures on J are equal. The one-sided theorem from +PR5673 gives |J|<=2. Its short proof also follows from (4): for any three +stages, `A P_k=A P_l` at every update, so `A S=0`. At the end S=I in +characteristic two. The determinant would be both `(1+x)^(3d)` and +`(1+x)^d`, which is impossible. + +We now prove `|J|<=L h(J)+2` by induction on h(J). If |J|<=L+2 and h(J)>0, +the bound holds. Otherwise (5) supplies a nonempty U. Equation (4) is +preserved on U, and the induction hypothesis gives + +```text +|J| <= L+|U| <= L+L(h(J)-1)+2 = L h(J)+2. +``` + +For the full leaf set, h(J)<=b. This proves the row-space bound in (1). +Transpose every matrix and reverse the complete word for the image-space +bound. The target is unchanged, since its full stage supports commute. + +Factor each thin map at its rank and concatenate the factors. If R is the +sum of those ranks, Sylvester's inequality gives + +```text +rank K >= dim U+dim V-R, +R >= 2d+a+b. +``` + +Combining the two dimension bounds proves (1). + +## 5. The two previously open targets + +For g=31 and q=2, d=4 and L=3. Equation (1) gives a>=10, b>=10 and +**R>=28**. Five rank-two thin connectors have R=10. Thus no choice of their +matrices, call order, or compatible paired stage projections can give the +required endpoint. The PR5681 static maps remain valid static maps; they +cannot be completed to this chronological word. + +For g=127 and q=1, the bound is a,b>=42 and **R>=88**, instead of the ten +rank-one connectors in the earlier target. It is excluded for the same reason. + +For g=31 with five rank-q connectors, the necessary inequality is +`5q>=4q+20`, or q>=20. A paired-port block with q=26 divides the 104 native +ports and passes this new necessary test. It still has no supplied word. +The q=8, g=13, five-rank-eight target also passes. Passing (1) is not a +construction and does not supply a native lift. + +## 6. Scope and attribution + +The result concerns independent stage variables, the fixed star support, +full orthogonal stage resolutions, the stated query map, and the exact +normalized target. Nonfull stages, paid idle stage maps, different graph +frames, and general complex or dyadic callers are outside this proof. +Arbitrary thin maps are included. Square-zero thin maps are a special case. + +The argument uses elementary determinant degree, subspace dimension and +Sylvester rank. The new step is the recursive restriction in (5). It changes +the old logarithmic static signature bound into a linear chronological bound. +The exact tariff consequence is in COST.md. Finite checks support the written +proof; they do not constitute human review or proof-assistant acceptance. + +Credit PR5673 for the one-sided proof and rank framework, PR5681 for the +static witnesses and separate coefficient audit, Cinna Davis for the +controller/simplex source, and the retained P104/helper/native/compiler line. +Prepared by Ali Romman with substantial OpenAI Codex assistance; no subagents. +Apache-2.0. diff --git a/research/coupled31-chronology/README.md b/research/coupled31-chronology/README.md new file mode 100644 index 0000000000..357d9898ac --- /dev/null +++ b/research/coupled31-chronology/README.md @@ -0,0 +1,92 @@ +# Chronology excludes the 31-leaf five-connector target + +**No new kappa.** The requested 31-leaf caller with five rank-two connectors +cannot have the full endpoint under the paired-star contract. Its thin rank +must be at least 28, rather than ten. The new proof also excludes the earlier +127-leaf, ten-rank-one target, whose thin rank must be at least 88. + +The main result is a linear information bound for every finite dimension and +every characteristic-two field. If b is the extra row dimension in the thin +connectors, the paired-stage contract requires `g<=3b+2`. The same bound holds +for extra image dimension. A prefix determinant argument forces a dimension +drop after at most three full calls; restriction to untouched leaves repeats +that drop. [PROOF.md](PROOF.md) gives the complete induction and the extension +to arbitrary full-stage splits with a specified minimum query rank. + +This goes beyond the static cut in [PR5673](https://github.com/CrocSwap/integer-mult-bounds/pull/5673) +and its sharp witnesses in [PR5681](https://github.com/CrocSwap/integer-mult-bounds/pull/5681). +Those static witnesses remain valid. Chronology prevents their completion. + +[COST.md](COST.md) charges the entire pinned P104 recursive profile. An exact +concave tangent proves that every paired-star caller with one or two coupled +ports loses at saving **.00256**, for every integer leaf count g>=3. This is +a uniform ceiling below selected .00310045, not a bounded parameter search. +The invoice marks all unconstructed physical obligations as unknown. + +A larger coupling is still possible under this test. At 31 leaves, five +rank-q connectors require q>=20. The q=26 profile fits the 104-port population +and has a positive optimistic .0035 price. It has no supplied operator. +[COMMUTING.md](COMMUTING.md) supplies a second restriction: commuting full +projectors require at least `ceil(g/2)` thin maps, regardless of port count +or thin rank. Thus the five-map large-coupling targets need noncommuting full +projectors or another contract. + +[WORD31.json](WORD31.json) supplies a complete 31-leaf binary word at that +map-count bound: 62 full calls and 16 thin maps of rank eight on each pair +of ports. Its exact Laurent endpoint passes; its complete recursive bill +loses every concave moment. It is a control, not a native supplier. + +## Reproduce + +Python 3.12 and the standard library suffice. A cold registered metadata +check also needs the two open provenance commits: + +```sh +git fetch https://github.com/CrocSwap/integer-mult-bounds.git c10f75f09e41803ae8efe478331a7509b7379b2f +git fetch https://github.com/CrocSwap/integer-mult-bounds.git 67f07448eec5ad8d84bdf96b46981ac0b893592f +python3.12 -B scripts/research_package.py --package research/coupled31-chronology +python3.12 -I -O -B research/coupled31-chronology/verify.py +``` + +Expected: `PASS_CHRONOLOGICAL_CONNECTOR_RANK_BOUND` and the registered package +pass. The checker imports no solver or discovery script. It checks formal +polynomial determinants, local dimension-drop systems, the static source +fixture, the full long endpoint, a separate F4 interpolation endpoint proof, +and exact integer-power price bounds. Damaged sources, endpoints and receipts +are rejected. [RESULT.json](RESULT.json) records the exact evidence. + +Finite checks support the written universal proofs. They are not independent +human or proof-assistant acceptance. The binary word does not supply a native +lift, legal physical reads, restoration, adapters, tapes, compiler or outer +transfer. The selected frontier is unchanged. + +## Open next questions + +- Audit the restriction and dimension-drop steps in PROOF.md. Check that the + signature dimension is the column span of matrix differences, and that + removed stages do not enter the retained mixed blocks. +- Construct a genuinely noncommuting coupled word. The q=26, g=31, five-map + profile and the q=8, g=13, five-map profile pass the new rank bound and an + optimistic price. Both remain unconstructed. First test every independent + stage coefficient, then provide the native lift and complete physical bill. +- Resolve the saved small coupled seed searches. Two fixed static connector + choices with all call orders free timed out. They remain unknown. Do not + infer impossibility or a large-word extension from those runs. + +Structured questions and the changed card scope are in TASK.json. Discovery +commands and failed or incomplete routes are in DISCOVERY.md. The canonical +investigation is [Discussion5593](https://github.com/CrocSwap/integer-mult-bounds/discussions/5593). +Work starts from canonical main `df0137efd35e11b4445734bf612bdd4c7ebc330c`, +priority seven. Initial remote overlap covered 401 open PRs and 5060 Discussion +records; sparse local coverage was incomplete. + +Credit Cinna Davis's controller/simplex work, PR5617/5631/5649/5673/5681, +the separate PR5701 lift qualification, and the complete retained P104/helper/ +native/compiler lineage. Ali Romman with substantial OpenAI Codex assistance; +no subagents. Apache-2.0. + +The pinned P104 tariff retains Pierre-Loic Doulcet / hexapode, Joel Pulikkan / +GamingPuzzled, DreamingOfClouds, thu-nmrc, Gareth Davidson / bitplane, David +Arias, Jacob Alan Sussman, zxv and Cao Yifan, with the earlier geometry, BIT +and analytic authors in its source notices. Chris R / Clear1nsight supplies +the separate PR5701 characteristic-zero qualification. diff --git a/research/coupled31-chronology/RESULT.json b/research/coupled31-chronology/RESULT.json new file mode 100644 index 0000000000..5f09e0d7b4 --- /dev/null +++ b/research/coupled31-chronology/RESULT.json @@ -0,0 +1,153 @@ +{ + "authenticated_inputs": 5, + "evidence": { + "dimension_drop": { + "consistent": 702, + "inconsistent": 1998, + "local_systems": 2700, + "strict_drop_instances": 104 + }, + "endpoints": { + "binary_alias_rejected": true, + "damaged_words_rejected": 2, + "full_grid_assignments": 66, + "long_word": { + "fields": 128, + "final_coefficients": 128, + "full_calls": 62, + "query_entry_contributions": 744, + "thin_maps": 16, + "thin_rank": 128 + } + }, + "prefix": { + "formal_prefix_updates": 216, + "noncommuting_updates": 131 + }, + "static_target": { + "chronology_bound": 5, + "chronology_rejected": true, + "d": 4, + "extra_image_dimension": 1, + "extra_row_dimension": 1, + "leaves": 31, + "static_checks_pass": true, + "thin_maps": 5, + "thin_rank": 10 + } + }, + "limits": [ + "No kappa increase", + "No native lift or complete physical caller", + "Written universal proofs with finite controls; no proof-assistant acceptance", + "Two finite seed solver timeouts remain unknown" + ], + "pricing": { + "complete_binary_word31": { + "H1_thin_calls_at_104_ports": 6656, + "all_concave_moments_rejected": true, + "binary_blocks": 52, + "full_calls": 62, + "linear_margin": -3472, + "rank_per_thin_map": 8, + "signed_profile": { + "1": -143118, + "2": -28148, + "3": -30566, + "4": -186, + "5": -9734, + "6": -1116, + "7": -558, + "8": 992, + "9": 31992, + "249": 208 + }, + "thin_maps": 16 + }, + "net_rank_mass_per_full_call": 1720, + "old_127_leaf": { + "minimum_thin_rank": 88, + "optimistic_signed_profile": { + "1": -568206, + "2": -115316, + "3": -125222, + "4": -762, + "5": -39878, + "6": -4572, + "7": -2286, + "8": 4064, + "9": 131064, + "1017": 208 + }, + "ports": 1, + "requested_thin_rank": 10 + }, + "requested_31_leaf": { + "minimum_H1_calls_at_104_ports": 1456, + "minimum_thin_rank": 28, + "optimistic_signed_profile": { + "1": -137918, + "2": -28148, + "3": -30566, + "4": -186, + "5": -9734, + "6": -1116, + "7": -558, + "8": 992, + "9": 31992, + "249": 208 + }, + "ports": 2, + "requested_thin_rank": 10 + }, + "unconstructed_targets": [ + { + "coupled_ports": 8, + "leaves": 13, + "margin": [ + "23457899974847/2199023255552", + "23457899996609/2199023255552" + ], + "minimum_thin_rank": 40, + "rank_per_thin_map": 8, + "saving": "17/5000", + "status": "UNCONSTRUCTED; COMMUTING FULL PROJECTORS EXCLUDED", + "thin_maps": 5 + }, + { + "coupled_ports": 26, + "leaves": 31, + "margin": [ + "268079792823357/1099511627776", + "16754987053077/68719476736" + ], + "minimum_thin_rank": 124, + "rank_per_thin_map": 26, + "saving": "7/2000", + "status": "UNCONSTRUCTED; COMMUTING FULL PROJECTORS EXCLUDED", + "thin_maps": 5 + } + ], + "uniform_one_or_two_port_ceiling": { + "all_integer_leaves_at_least_three": true, + "all_larger_savings_rejected": true, + "intercept_interval": [ + "-2387010674050001077/331141978521600000", + "-4774021348099800407/662283957043200000" + ], + "saving_rejected": "8/3125", + "slope_interval": [ + "-593132702156541649/5298271656345600000", + "-593132698134742867/5298271656345600000" + ], + "tangent_leaves": 32 + } + }, + "proof_sha256": { + "COMMUTING.md": "d4329ca042cd80527a086fbd6b4644f67660145adfc72196c0a8744bf4d40017", + "COST.md": "076e0f322209c64ab91870e282f251d07ecaae282b536f0f993ba36576fae457", + "PROOF.md": "f909adc46fb9df2955430da2ce1f29caf78b4cb668e8eda0361fa5d6dd800095" + }, + "scope": "Paired full star stages over characteristic two; arbitrary thin maps", + "status": "PASS_CHRONOLOGICAL_CONNECTOR_RANK_BOUND" +} diff --git a/research/coupled31-chronology/SOURCES.json b/research/coupled31-chronology/SOURCES.json new file mode 100644 index 0000000000..37c7f67d64 --- /dev/null +++ b/research/coupled31-chronology/SOURCES.json @@ -0,0 +1,53 @@ +{ + "schema_version": 1, + "base_commit": "df0137efd35e11b4445734bf612bdd4c7ebc330c", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "581f8d87008354eb5b869f7ed9de1317ad837ce8", + "sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/coupled31-chronology/sources/pr5673-proof.md", + "usage": "input", + "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/PROOF.md", + "git_blob": "e3800fbcf1c5f5633e14d9856ca1400985292a0d", + "sha256": "e086b3376173f6b790e05ef09f23b4d5970c8ac5145ab2970e084743f782190b" + }, + { + "path": "research/coupled31-chronology/sources/escape-word.json", + "usage": "input", + "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/ESCAPE-WORD.json", + "git_blob": "aae71c6ad294d6bc9ca5e2216a7785b9e6611afd", + "sha256": "20285745b7a6c4bfefcccc365caacefaf982d30adb60fea29ffa14f0ea6b639c" + }, + { + "path": "research/coupled31-chronology/sources/old-word-replay.py", + "usage": "input", + "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/word_replay.py", + "git_blob": "037ed3f765822341156e059c306218504ac37e1b", + "sha256": "d4574ed109672c9351af8ace5fbcd31671aed6936877dfa4ff09b56b9007da0a" + }, + { + "path": "research/coupled31-chronology/sources/pr5681-proof.md", + "usage": "input", + "pin": "head:67f07448eec5ad8d84bdf96b46981ac0b893592f:research/one-sided-connector-audit/PROOF.md", + "git_blob": "e3be1bb272f3a73a8c6cd248fec69dec498e401d", + "sha256": "2e52ac6d32923a1ce6f9693415df553b2d4c38c1a103b9e1968c4e114044d800" + }, + { + "path": "research/coupled31-chronology/sources/p104-result.json", + "usage": "input", + "pin": "head:09dd0965711ca7eeb169057a420abab1c9052137:research/p104-helper-subspace-splits/RESULT.json", + "git_blob": "35f75c8555193c6e845cd52cc562ca23fd5924cb", + "sha256": "1d92e587915052110dfb3aca8890df5afdaf496164efa5a4a52e69ceeb3c70f3" + } + ] +} diff --git a/research/coupled31-chronology/TASK.json b/research/coupled31-chronology/TASK.json new file mode 100644 index 0000000000..001d33d03d --- /dev/null +++ b/research/coupled31-chronology/TASK.json @@ -0,0 +1,102 @@ +{ + "schema_version": 1, + "task_id": "joint-query-controller", + "priority_revision": 7, + "base_commit": "df0137efd35e11b4445734bf612bdd4c7ebc330c", + "original_card": { + "id": "joint-query-controller", + "question": "Can the installed QQ16 caller win a complete matched protocol bill, or can a changed demand eliminate actual paid work?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/qq16-caller-install/README.md" + ], + "methods": [ + "Derive the matched whole-caller physical bill for installed and baseline protocols.", + "Change the actual demanded observations and prove a cheaper legal producer/consumer contract." + ], + "acceptance_gate": "Name the changed premise of the fixed F0/B1 observation obstruction. Show exactly which query is recovered, legal native reads and restoration, and a full favorable budget including cover maps, helpers and endpoints. Local inverse identities alone do not close the global controller. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4166 COST.md and ADMISSION.json. An actual caller connection is now proposed. Its native-component profile loses; parent park/restore versus external-call costs remain unresolved. Retain the producer and recovery lineage rather than rebuild it.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "At the actual installed cut, compare matched complete parent park/restore and external input/return protocols at the same bank/packet geometry, including every later root call and service cost. Alternatively pin both bridge observations and derive a genuinely smaller source-compatible demand. Stop if the complete necessary inequality fails or an essential cost is unknown; no larger decoder scan from a local tape-action saving.", + "bottleneck_link": "The native local words exist; retained query information and its physical access are the missing link to a composed recursive interface.", + "allowed_variations": [ + "One paid query, one changed first pair, or one precisely specified affine helper state.", + "A counterexample or lower bound for that exact proposed repair.", + "One unresolved obligation of a newer local decoder, with exact source heads and a distinct claim/domain." + ], + "scope_change_triggers": [ + "Retaining the fixed first pair and ordinary schedule while allowing only homogeneous selected-only control, already excluded by the witness.", + "Treating cover-map counts as zero-cost physical address operations.", + "Recreating the pending complete local decoder or early-record/output-bank coalescing already under investigation without a distinct audit or changed premise.", + "Treating a completed-output defect inequality as a producer-interior, dirty-range or physical-cost certificate.", + "Recreating completed-output recovery or caller wiring already supplied by #4166 without new independent coverage.", + "Dropping retained later root calls or claiming native-profile dominance from the isolated publication saving." + ], + "overlap_terms": [ + "QQ16", + "joint-query", + "changing-chart controller", + "selected observation", + "1969", + "2540", + "early record", + "output-bank retention", + "complete native decoder", + "2965", + "producer defect", + "dirty-helper range", + "F17 consumer", + "4166", + "qq16-caller-install" + ], + "existing_checks": [ + { + "scope": "PR #4166: author-checked installed producer/service/return/bridge connection; native-component comparison loses.", + "evidence": "research/qq16-caller-install/README.md", + "remaining": "Complete matched physical protocol bill, or changed source-compatible demand/circuit; no affordable supplier yet.", + "status": "author-checked", + "source_commit": "0b082d22a0e9a442d264ab0633e35ef26c790630", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + "scope_status": "changed", + "actual_scope": "Chronological dimension bound for all full star splits; uniform paired-star tariff ceiling; sharp commuting map-count proof and complete long binary endpoint", + "scope_change_reason": "The user explicitly assigned the 31-leaf five-rank-two target. PR5681 already supplied static maps. A new chronology argument rules out that target, then tests larger coupling and commuting full projectors.", + "bottleneck_link": "A different connector can retain useful full-call stages while using cheap thin queries; success requires a complete endpoint and paid bill.", + "budget_minutes": 120, + "stop_rule": "Prove or construct the requested full endpoint and price the complete profile. If excluded, give a useful general bound and test a changed coupling contract. Preserve unknown searches as unknown.", + "outcome": "completed", + "evidence": "PROOF.md, COMMUTING.md, COST.md, WORD31.json, RESULT.json", + "author": "Ali Romman with substantial OpenAI Codex assistance", + "ai_assistance": "Substantial OpenAI Codex assistance; no subagents.", + "open_questions": [ + { + "question": "Does the recursive untouched-leaf restriction prove the stated linear dimension bound?", + "why_it_matters": "It excludes both previously open target budgets in all finite dimensions and gives a uniform price ceiling.", + "first_step": "Audit equations (3)-(5) in PROOF.md and the determinant-degree step; replay the local controls.", + "blocked_by": "No independent human or proof-assistant acceptance is claimed." + }, + { + "question": "Can five thin maps support 31 leaves with 26 coupled ports, or 13 leaves with eight coupled ports?", + "why_it_matters": "These pass the new necessary rank bound and a favorable optimistic price.", + "first_step": "Use noncommuting full projectors; check every independent stage coefficient before any native lift.", + "blocked_by": "No such word is supplied; commuting full projectors are excluded." + }, + { + "question": "Do either saved small coupled seed searches have a full word?", + "why_it_matters": "A small noncommuting seed may expose a compositional construction.", + "first_step": "Resolve the saved pair or triangle static-connector domain, then replay the complete polynomial endpoint.", + "blocked_by": "Both all-order SMT runs timed out; unknown is not infeasible." + } + ] +} diff --git a/research/coupled31-chronology/VERIFY.json b/research/coupled31-chronology/VERIFY.json new file mode 100644 index 0000000000..c960064c3c --- /dev/null +++ b/research/coupled31-chronology/VERIFY.json @@ -0,0 +1,36 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/coupled31-chronology/sources/pr5673-proof.md", + "research/coupled31-chronology/sources/escape-word.json", + "research/coupled31-chronology/sources/old-word-replay.py", + "research/coupled31-chronology/sources/pr5681-proof.md", + "research/coupled31-chronology/sources/p104-result.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "Authenticate source copies; prefix determinants and dimension drop; static target; full Laurent and interpolation endpoints; exact complete tariff bounds." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/test_verify.py" + ], + "timeout_seconds": 60, + "checks": "Reject changed input, endpoint, order, written proof or result receipt." + } + ] +} diff --git a/research/coupled31-chronology/WORD31.json b/research/coupled31-chronology/WORD31.json new file mode 100644 index 0000000000..a57608244a --- /dev/null +++ b/research/coupled31-chronology/WORD31.json @@ -0,0 +1 @@ +{"g":31,"q":2,"order":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77],"calls":[{"stage":0,"p":[1,2,0,0,16,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[17,34,0,0,17,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":0,"p":[0,0,4,8,0,0,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,68,136,0,0,68,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[272,544,1088,2176,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":1,"p":[1,2,0,0,0,0,0,0,256,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[257,514,0,0,0,0,0,0,257,514,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":1,"p":[0,0,4,8,0,0,0,0,0,0,1024,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1028,2056,0,0,0,0,0,0,1028,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":2,"p":[1,2,0,0,0,0,0,0,0,0,0,0,4096,8192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4097,8194,0,0,0,0,0,0,0,0,0,0,4097,8194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":2,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,16384,32768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,16388,32776,0,0,0,0,0,0,0,0,0,0,16388,32776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[69632,139264,278528,557056,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":3,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65536,131072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[65537,131074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65537,131074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":3,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,524288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,262148,524296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,262148,524296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":4,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1048576,2097152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1048577,2097154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1048577,2097154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":4,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4194304,8388608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,4194308,8388616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4194308,8388616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[17825792,35651584,71303168,142606336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":5,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777216,33554432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[16777217,33554434,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777217,33554434,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":5,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67108864,134217728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,67108868,134217736,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67108868,134217736,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":6,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268435456,536870912,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[268435457,536870914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268435457,536870914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":6,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741824,2147483648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1073741828,2147483656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741828,2147483656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4563402752,9126805504,18253611008,36507222016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":7,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4294967296,8589934592,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4294967297,8589934594,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4294967297,8589934594,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":7,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17179869184,34359738368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,17179869188,34359738376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17179869188,34359738376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":8,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68719476736,137438953472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[68719476737,137438953474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68719476737,137438953474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":8,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274877906944,549755813888,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,274877906948,549755813896,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274877906948,549755813896,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1168231104512,2336462209024,4672924418048,9345848836096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":9,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1099511627776,2199023255552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1099511627777,2199023255554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1099511627777,2199023255554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":9,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4398046511104,8796093022208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,4398046511108,8796093022216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4398046511108,8796093022216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":10,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17592186044416,35184372088832,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[17592186044417,35184372088834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17592186044417,35184372088834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":10,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70368744177664,140737488355328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,70368744177668,140737488355336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70368744177668,140737488355336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[299067162755072,598134325510144,1196268651020288,2392537302040576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":11,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,281474976710656,562949953421312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[281474976710657,562949953421314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,281474976710657,562949953421314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":11,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1125899906842624,2251799813685248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1125899906842628,2251799813685256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1125899906842628,2251799813685256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":12,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4503599627370496,9007199254740992,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4503599627370497,9007199254740994,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4503599627370497,9007199254740994,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":12,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18014398509481984,36028797018963968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,18014398509481988,36028797018963976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18014398509481988,36028797018963976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[76561193665298432,153122387330596864,306244774661193728,612489549322387456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":13,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72057594037927936,144115188075855872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[72057594037927937,144115188075855874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72057594037927937,144115188075855874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":13,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,288230376151711744,576460752303423488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,288230376151711748,576460752303423496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,288230376151711748,576460752303423496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":14,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1152921504606846976,2305843009213693952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1152921504606846977,2305843009213693954,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1152921504606846977,2305843009213693954,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":14,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611686018427387904,9223372036854775808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,4611686018427387908,9223372036854775816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611686018427387908,9223372036854775816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[19599665578316398592,39199331156632797184,78398662313265594368,156797324626531188736,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":15,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18446744073709551616,36893488147419103232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[18446744073709551617,36893488147419103234,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18446744073709551617,36893488147419103234,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":15,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73786976294838206464,147573952589676412928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,73786976294838206468,147573952589676412936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73786976294838206468,147573952589676412936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":16,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,295147905179352825856,590295810358705651712,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[295147905179352825857,590295810358705651714,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,295147905179352825857,590295810358705651714,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":16,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1180591620717411303424,2361183241434822606848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1180591620717411303428,2361183241434822606856,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1180591620717411303428,2361183241434822606856,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[5017514388048998039552,10035028776097996079104,20070057552195992158208,40140115104391984316416,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":17,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4722366482869645213696,9444732965739290427392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4722366482869645213697,9444732965739290427394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4722366482869645213697,9444732965739290427394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":17,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18889465931478580854784,37778931862957161709568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,18889465931478580854788,37778931862957161709576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18889465931478580854788,37778931862957161709576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":18,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75557863725914323419136,151115727451828646838272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[75557863725914323419137,151115727451828646838274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75557863725914323419137,151115727451828646838274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":18,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,302231454903657293676544,604462909807314587353088,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,302231454903657293676548,604462909807314587353096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,302231454903657293676548,604462909807314587353096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1284483683340543498125312,2568967366681086996250624,5137934733362173992501248,10275869466724347985002496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":19,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1208925819614629174706176,2417851639229258349412352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1208925819614629174706177,2417851639229258349412354,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1208925819614629174706177,2417851639229258349412354,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":19,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4835703278458516698824704,9671406556917033397649408,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,4835703278458516698824708,9671406556917033397649416,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4835703278458516698824708,9671406556917033397649416,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":20,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19342813113834066795298816,38685626227668133590597632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[19342813113834066795298817,38685626227668133590597634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19342813113834066795298817,38685626227668133590597634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":20,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77371252455336267181195264,154742504910672534362390528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,77371252455336267181195268,154742504910672534362390536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77371252455336267181195268,154742504910672534362390536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[328827822935179135520079872,657655645870358271040159744,1315311291740716542080319488,2630622583481433084160638976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":21,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309485009821345068724781056,618970019642690137449562112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[309485009821345068724781057,618970019642690137449562114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309485009821345068724781057,618970019642690137449562114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":21,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1237940039285380274899124224,2475880078570760549798248448,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1237940039285380274899124228,2475880078570760549798248456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1237940039285380274899124228,2475880078570760549798248456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":22,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4951760157141521099596496896,9903520314283042199192993792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[4951760157141521099596496897,9903520314283042199192993794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4951760157141521099596496897,9903520314283042199192993794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":22,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19807040628566084398385987584,39614081257132168796771975168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,19807040628566084398385987588,39614081257132168796771975176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19807040628566084398385987588,39614081257132168796771975176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[84179922671405858693140447232,168359845342811717386280894464,336719690685623434772561788928,673439381371246869545123577856,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":23,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79228162514264337593543950336,158456325028528675187087900672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[79228162514264337593543950337,158456325028528675187087900674,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79228162514264337593543950337,158456325028528675187087900674,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":23,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,316912650057057350374175801344,633825300114114700748351602688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,316912650057057350374175801348,633825300114114700748351602696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,316912650057057350374175801348,633825300114114700748351602696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":24,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1267650600228229401496703205376,2535301200456458802993406410752,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1267650600228229401496703205377,2535301200456458802993406410754,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1267650600228229401496703205377,2535301200456458802993406410754,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":24,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5070602400912917605986812821504,10141204801825835211973625643008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,5070602400912917605986812821508,10141204801825835211973625643016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5070602400912917605986812821508,10141204801825835211973625643016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[21550060203879899825443954491392,43100120407759799650887908982784,86200240815519599301775817965568,172400481631039198603551635931136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":25,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20282409603651670423947251286016,40564819207303340847894502572032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[20282409603651670423947251286017,40564819207303340847894502572034,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20282409603651670423947251286017,40564819207303340847894502572034,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":25,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81129638414606681695789005144064,162259276829213363391578010288128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,81129638414606681695789005144068,162259276829213363391578010288136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81129638414606681695789005144068,162259276829213363391578010288136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":26,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,324518553658426726783156020576256,649037107316853453566312041152512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[324518553658426726783156020576257,649037107316853453566312041152514,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,324518553658426726783156020576257,649037107316853453566312041152514,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":26,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1298074214633706907132624082305024,2596148429267413814265248164610048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,1298074214633706907132624082305028,2596148429267413814265248164610056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1298074214633706907132624082305028,2596148429267413814265248164610056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[5516815412193254355313652349796352,11033630824386508710627304699592704,22067261648773017421254609399185408,44134523297546034842509218798370816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":27,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5192296858534827628530496329220096,10384593717069655257060992658440192,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[5192296858534827628530496329220097,10384593717069655257060992658440194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5192296858534827628530496329220097,10384593717069655257060992658440194,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":27,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20769187434139310514121985316880384,41538374868278621028243970633760768,0,0,0,0,0,0,0,0,0,0,0,0],"r":[0,0,20769187434139310514121985316880388,41538374868278621028243970633760776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20769187434139310514121985316880388,41538374868278621028243970633760776,0,0,0,0,0,0,0,0,0,0,0,0]},{"stage":28,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83076749736557242056487941267521536,166153499473114484112975882535043072,0,0,0,0,0,0,0,0,0,0],"r":[83076749736557242056487941267521537,166153499473114484112975882535043074,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83076749736557242056487941267521537,166153499473114484112975882535043074,0,0,0,0,0,0,0,0,0,0]},{"stage":28,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,332306998946228968225951765070086144,664613997892457936451903530140172288,0,0,0,0,0,0,0,0],"r":[0,0,332306998946228968225951765070086148,664613997892457936451903530140172296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,332306998946228968225951765070086148,664613997892457936451903530140172296,0,0,0,0,0,0,0,0]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[1412304745521473114960295001547866112,2824609491042946229920590003095732224,5649218982085892459841180006191464448,11298437964171784919682360012382928896,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,1,2,4,8,0,0,0,0]},{"stage":29,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1329227995784915872903807060280344576,2658455991569831745807614120560689152,0,0,0,0,0,0],"r":[1329227995784915872903807060280344577,2658455991569831745807614120560689154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1329227995784915872903807060280344577,2658455991569831745807614120560689154,0,0,0,0,0,0]},{"stage":29,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5316911983139663491615228241121378304,10633823966279326983230456482242756608,0,0,0,0],"r":[0,0,5316911983139663491615228241121378308,10633823966279326983230456482242756616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5316911983139663491615228241121378308,10633823966279326983230456482242756616,0,0,0,0]},{"stage":30,"p":[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21267647932558653966460912964485513216,42535295865117307932921825928971026432,0,0],"r":[21267647932558653966460912964485513217,42535295865117307932921825928971026434,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21267647932558653966460912964485513217,42535295865117307932921825928971026434,0,0]},{"stage":30,"p":[0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85070591730234615865843651857942052864,170141183460469231731687303715884105728],"r":[0,0,85070591730234615865843651857942052868,170141183460469231731687303715884105736,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85070591730234615865843651857942052868,170141183460469231731687303715884105736]},{"stage":31,"p":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"r":[21267647932558653966460912964485513216,42535295865117307932921825928971026432,85070591730234615865843651857942052864,170141183460469231731687303715884105728,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8]}]} diff --git a/research/coupled31-chronology/check.py b/research/coupled31-chronology/check.py new file mode 100644 index 0000000000..5d1bee4ffc --- /dev/null +++ b/research/coupled31-chronology/check.py @@ -0,0 +1,397 @@ +"""Check the prefix lemmas and complete endpoint controls. + +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +from itertools import product +import json +from pathlib import Path +import random + +ROOT = Path(__file__).resolve().parent + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def eye(n): + return tuple(1 << i for i in range(n)) + + +def add(a, b): + return tuple(x ^ y for x, y in zip(a, b)) + + +def mul(a, b): + out = [] + for row in a: + value = 0 + while row: + bit = row & -row + value ^= b[bit.bit_length()-1] + row ^= bit + out.append(value) + return tuple(out) + + +def basis(rows): + out = {} + for value in rows: + while value: + pivot = value.bit_length()-1 + if pivot not in out: + out[pivot] = value + break + value ^= out[pivot] + return out + + +def rank(rows): + return len(basis(rows)) + + +def trans(a): + return tuple(sum(((a[j] >> i) & 1) << j for j in range(len(a))) + for i in range(len(a))) + + +def polynomial_mul(a, b): + out = 0 + while b: + if b & 1: + out ^= a + a <<= 1 + b >>= 1 + return out + + +def determinant_x(s): + """Compute det(I+xS) over F2[x] by subsets of columns.""" + n = len(s) + dp = {0: 1} + for i in range(n): + new = {} + for mask, value in dp.items(): + for j in range(n): + if not (mask >> j) & 1: + entry = int(i == j) ^ (2*((s[i] >> j) & 1)) + target = mask | (1 << j) + new[target] = new.get(target, 0) ^ polynomial_mul(value, entry) + dp = new + return dp[(1 << n)-1] + + +def prefix_controls(): + rng = random.Random(310526) + cases = noncommuting = 0 + for d in range(2, 8): + for repeat in range(8): + stages = [] + for i in range(d): + a = [0]*d + a[i] = (1 << i) | (rng.randrange(1 << (d-i-1)) << (i+1)) + stages.append(tuple(a)) + s = (0,)*d + expected = 1 + for a in stages: + require(mul(a, a) == a and rank(a) == 1, 'prefix idempotent') + require(mul(a, s) == (0,)*d, 'prefix annihilation') + noncommuting += mul(s, a) != (0,)*d + s = add(s, a) + expected = polynomial_mul(expected, 3) + require(determinant_x(s) == expected, 'formal determinant identity') + cases += 1 + require(rank(s) == d, 'full prefix is invertible') + require(all(mul(a, s) != (0,)*d for a in stages), 'next call must fail') + require(noncommuting > 0, 'noncommuting prefix controls') + return {'formal_prefix_updates': cases, 'noncommuting_updates': noncommuting} + + +def solve_binary(rows): + pivots = {} + for coefficients, value in rows: + while coefficients: + p = coefficients.bit_length()-1 + if p not in pivots: + pivots[p] = (coefficients, value) + break + c, v = pivots[p] + coefficients ^= c + value ^= v + if not coefficients and value: + return None + answer = 0 + for p in sorted(pivots): + c, v = pivots[p] + if v ^ ((c & answer).bit_count() & 1): + answer |= 1 << p + return answer + + +def signature_dimension(ms, d): + if not ms: + return 0 + h = len(ms[0]) + columns = [] + for m in ms[1:]: + for c in range(d): + columns.append(sum((((m[t] ^ ms[0][t]) >> c) & 1) << t + for t in range(h))) + return rank(columns) + + +def drop_controls(): + rng = random.Random(73131) + d = 2 + projections = [tuple(a) for a in product(range(4), repeat=2) + if mul(a, a) == tuple(a)] + proper = [a for a in projections if rank(a) == 1] + checked = solved = drops = rejected = 0 + for h in (1, 2, 3): + for g in (3, 5, 7): + for repeat in range(300): + a = rng.choice(proper) + ps = [rng.choice(((0, 0), add(eye(d), a)))] + ps += [rng.choice(projections) for _ in range(g-1)] + ms = [tuple(rng.randrange(4) for _ in range(h)) for _ in range(g)] + c_rows = [] + for row in range(d): + equations = [] + for k in range(1, g): + ap = mul(a, ps[k]) + for col in range(d): + lhs = (1 << col) | sum(((ms[k][t] >> col) & 1) << (d+t) + for t in range(h)) + equations.append((lhs, (ap[row] >> col) & 1)) + solution = solve_binary(equations) + if solution is None: + break + c_rows.append(solution >> d) + checked += 1 + if len(c_rows) != d: + rejected += 1 + continue + solved += 1 + s = (0,)*d + for p in ps: + s = add(s, p) + untouched = [k for k in range(1, g) if ps[k] == (0,)*d] + if untouched and mul(a, s) != (0,)*d: + require(signature_dimension([ms[k] for k in untouched], d) + < signature_dimension(ms, d), 'strict signature dimension drop') + drops += 1 + require(drops > 20 and rejected > 0, 'nonvacuous dimension controls') + return {'local_systems': checked, 'consistent': solved, + 'inconsistent': rejected, 'strict_drop_instances': drops} + + +def static_witness(): + """Reproduce the binary PR5681 fixture from its written formula.""" + d, g, n = 4, 31, 128 + labels = [0] + [v for v in range(1, 16) for _ in range(2)] + u = sum(value << ((j+1)*d) for j, value in enumerate(labels)) + e = tuple(u if (u >> i) & 1 else 0 for i in range(n)) + fs, gs = [], [] + for axis in range(d): + f, z = [0]*n, [0]*n + for j in range(1, g+1): + f[axis] ^= 1 << (j*d+axis) + z[j*d+axis] ^= 1 << axis + fs.append(tuple(f)) + gs.append(tuple(z)) + queries = [add(fs[0], e), add(gs[1], e)] + queries += [add(fs[i], gs[(i+1) % d]) for i in range(1, d)] + k = (0,)*n + for z in queries: + require(rank(z) == 2 and mul(z, z) == (0,)*n, 'static rank and square') + k = add(k, z) + a = rank([row for z in queries for row in trans(z)])-2*d + b = rank([row for z in queries for row in z])-2*d + require(rank(k) == 2*d and a == b == 1, 'static excess dimensions') + require(g > 3*b+2, 'new chronological rejection') + return {'leaves': g, 'd': d, 'thin_maps': len(queries), 'thin_rank': 10, + 'extra_image_dimension': a, 'extra_row_dimension': b, + 'static_checks_pass': True, 'chronology_bound': 3*b+2, + 'chronology_rejected': True} + + +def commuting_word(g, q): + d, n = 2*q, 2*q*(g+1) + calls = [] + for j in range(g): + for half in range(2): + p, r = [0]*n, [0]*n + for c in range(half*q, (half+1)*q): + i, k = c, (j+1)*d+c + p[i], p[k] = 1 << i, 1 << k + r[i] = r[k] = (1 << i) | (1 << k) + calls.append({'stage': j, 'p': p, 'r': r}) + if j % 2 == 0: + leaves = [j+1] + ([j+2] if j+1 < g else []) + z = [0]*n + for leaf in leaves: + for c in range(d): + z[c] ^= 1 << (leaf*d+c) + z[leaf*d+c] ^= 1 << c + if g % 2 == 0 and j == 0: + for c in range(d): + z[c] ^= 1 << c + calls.append({'stage': g, 'p': [0]*n, 'r': z}) + return {'g': g, 'q': q, 'order': list(range(len(calls))), 'calls': calls} + + +def check_contract(word): + g, q = word['g'], word['q'] + d, n = 2*q, 2*q*(g+1) + calls = word['calls'] + require(sorted(word['order']) == list(range(len(calls))), 'call order permutation') + projections = [[] for _ in range(g)] + for call in calls: + j = call['stage'] + p, r = tuple(call['p']), tuple(call['r']) + require(len(p) == len(r) == n and all(0 <= x < 1 << n for x in p+r), 'matrix shape') + if j == g: + require(not any(p), 'thin stage-free contract') + continue + require(0 <= j < g, 'stage range') + projections[j].append(p) + require(mul(p, p) == p and rank(p) == d, 'full projection rank') + require(mul(p, r) == mul(r, p) == r and rank(r) == q, 'full query compatibility') + t = [0]*n + for c in range(d): + t[c] = t[(j+1)*d+c] = (1 << c) | (1 << ((j+1)*d+c)) + require(mul(p, t) == r, 'prescribed stage query') + for j, pair in enumerate(projections): + require(len(pair) == 2, 'two full stage halves') + target = tuple((1 << i) if i < d or (j+1)*d <= i < (j+2)*d else 0 + for i in range(n)) + require(add(*pair) == target and not any(mul(*pair)), 'orthogonal resolution') + + +def laurent_endpoint(word): + """Check every Laurent coefficient after exact diagonal normalization.""" + check_contract(word) + g = word['g'] + n = len(word['calls'][0]['p']) + degrees = [[0]*g for _ in range(n)] + terms = set() + contributions = 0 + for index in word['order']: + call = word['calls'][index] + j, p, r = call['stage'], call['p'], call['r'] + for i, row in enumerate(r): + for k in range(n): + if (row >> k) & 1: + exponent = tuple(y-x for x, y in zip(degrees[i], degrees[k])) + key = (i, k, exponent) + if key in terms: + terms.remove(key) + else: + terms.add(key) + contributions += 1 + if j < g: + for i, row in enumerate(p): + require(row in (0, 1 << i), 'diagonal full-call entry') + degrees[i][j] += int(bool(row)) + d = 2*word['q'] + for i, degree in enumerate(degrees): + require(degree == [int(i < d or i//d == j+1) for j in range(g)], 'pure stage endpoint') + require(terms == {(i, i, (0,)*g) for i in range(n)}, 'complete Laurent endpoint') + return {'fields': n, 'full_calls': 2*g, 'thin_maps': len(word['calls'])-2*g, + 'thin_rank': sum(rank(c['r']) for c in word['calls'] if c['stage'] == g), + 'query_entry_contributions': contributions, 'final_coefficients': len(terms)} + + +def gf4_mul(a, b): + value = 0 + for i in range(2): + if (b >> i) & 1: + value ^= a << i + return value ^ (7 if value & 4 else 0) + + +def apply_binary(a, b): + n = len(a) + out = [] + for bits in a: + row = [0]*n + while bits: + bit = bits & -bits + source = b[bit.bit_length()-1] + row = [x ^ y for x, y in zip(row, source)] + bits ^= bit + out.append(row) + return out + + +def grid_endpoint(word): + """Three distinct F4 points decide degree-at-most-two stage polynomials.""" + check_contract(word) + g = word['g'] + n = len(word['calls'][0]['p']) + d = 2*word['q'] + count = 0 + for values in product((0, 1, 2), repeat=g): + pure = [[int(i == j) for j in range(n)] for i in range(n)] + derivative = [[0]*n for _ in range(n)] + for index in word['order']: + call = word['calls'][index] + j, p, r = call['stage'], call['p'], call['r'] + rb = apply_binary(r, pure) + if j == g: + derivative = [[a ^ b for a, b in zip(x, y)] for x, y in zip(derivative, rb)] + else: + pe, pb = apply_binary(p, derivative), apply_binary(p, pure) + derivative = [[a ^ gf4_mul(values[j] ^ 1, b) ^ gf4_mul(values[j], c) + for a, b, c in zip(x, y, z)] for x, y, z in zip(derivative, pe, rb)] + pure = [[a ^ gf4_mul(values[j] ^ 1, b) for a, b in zip(x, y)] + for x, y in zip(pure, pb)] + for i in range(n): + value = 1 + for j in range(g): + if i < d or i//d == j+1: + value = gf4_mul(value, values[j]) + expected = [value if i == k else 0 for k in range(n)] + require(pure[i] == derivative[i] == expected, 'full F4 grid endpoint') + count += 1 + return count + + +def endpoint_controls(): + grid_cases = 0 + for g in range(1, 4): + word = commuting_word(g, 1) + laurent_endpoint(word) + grid_cases += grid_endpoint(word) + old = json.loads((ROOT/'sources/escape-word.json').read_text()) + old.update(g=3, q=1) + grid_cases += grid_endpoint(old) + # D^2+D vanishes at both binary points, but not at the third grid point. + require(all(gf4_mul(x, x) ^ x == 0 for x in (0, 1)), 'binary alias control') + require(gf4_mul(2, 2) ^ 2 != 0, 'extension point rejects alias') + word = json.loads((ROOT/'WORD31.json').read_text()) + receipt = laurent_endpoint(word) + rejected = 0 + for kind in ('deleted', 'moved'): + broken = json.loads(json.dumps(word)) + thin = next(i for i, c in enumerate(broken['calls']) if c['stage'] == word['g']) + if kind == 'deleted': + broken['calls'][thin]['r'] = [0]*len(broken['calls'][thin]['r']) + else: + broken['order'].remove(thin) + broken['order'].append(thin) + try: + laurent_endpoint(broken) + except ValueError: + rejected += 1 + else: + raise ValueError('damaged endpoint accepted') + require(rejected == 2, 'endpoint controls') + return {'full_grid_assignments': grid_cases, 'binary_alias_rejected': True, + 'damaged_words_rejected': rejected, 'long_word': receipt} + + +def run(): + return {'prefix': prefix_controls(), 'dimension_drop': drop_controls(), + 'static_target': static_witness(), 'endpoints': endpoint_controls()} diff --git a/research/coupled31-chronology/discovery/coupled_seed.py b/research/coupled31-chronology/discovery/coupled_seed.py new file mode 100644 index 0000000000..fca9f75e33 --- /dev/null +++ b/research/coupled31-chronology/discovery/coupled_seed.py @@ -0,0 +1,150 @@ +"""Search a coupled three-leaf seed with all call orders free. + +This search uses necessary coefficients. Each candidate needs full replay. +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import importlib.util +import json +from pathlib import Path +import time +import z3 + +ROOT = Path(__file__).resolve().parents[1] + + +def build(pattern, timeout, seed): + d, g, n = 4, 3, 16 + solver = z3.Solver() + solver.set(timeout=timeout, random_seed=seed) + def zero(size): + return [z3.BitVecVal(0, size) for _ in range(size)] + def eye(size): + return [z3.BitVecVal(1 << i, size) for i in range(size)] + def add(a, b): + return [x ^ y for x, y in zip(a, b)] + def mul(a, b): + size = len(a) + out = [] + for row in a: + value = z3.BitVecVal(0, size) + for k in range(size): + value ^= z3.If(z3.Extract(k, k, row) == 1, b[k], 0) + out.append(z3.simplify(value)) + return out + def embed(a, b, stage): + p, r = zero(n), zero(n) + for i in range(d): + aa = z3.ZeroExt(n-d, a[i]) + bb = z3.ZeroExt(n-d, b[i]) + p[i] = (aa ^ bb) | (bb << (d*(stage+1))) + p[d*(stage+1)+i] = bb | ((aa ^ bb) << (d*(stage+1))) + r[i] = aa | (aa << (d*(stage+1))) + r[d*(stage+1)+i] = r[i] + return p, r + calls = [] + for j in range(g): + a = [z3.BitVec(f'a{j}_{i}', d) for i in range(d)] + b = [z3.BitVec(f'b{j}_{i}', d) for i in range(d)] + for x, y in zip(mul(a, a), a): + solver.add(x == y) + for x, y in zip(add(mul(a, b), mul(b, a)), b): + solver.add(x == y) + trace = z3.BitVecVal(0, 1) + for i in range(d): + trace ^= z3.Extract(i, i, a[i]) + solver.add(trace == 0, z3.Or(*[x != 0 for x in a]), + z3.Or(*[x != (1 << i) for i, x in enumerate(a)])) + for half in range(2): + p, r = embed(a if not half else add(a, eye(d)), b, j) + calls.append((j, p, r)) + signatures = (0, 1, 1) if pattern == 'pair' else (1, 2, 3) + u = sum(v << (d*(j+1)) for j, v in enumerate(signatures)) + e = [u if (u >> i) & 1 else 0 for i in range(n)] + fs, gs = [], [] + for i in range(d): + f, h = [0]*n, [0]*n + for j in range(g): + f[i] |= 1 << (d*(j+1)+i) + h[d*(j+1)+i] = 1 << i + fs.append(f) + gs.append(h) + qs = [[x ^ y for x, y in zip(fs[0], e)], + [x ^ y for x, y in zip(gs[1], e)]] + qs += [[x ^ y for x, y in zip(fs[i], gs[(i+1) % d])] + for i in range(1, d)] + for query in qs: + calls.append((g, zero(n), [z3.BitVecVal(x, n) for x in query])) + positions = [z3.Int(f'pos{i}') for i in range(len(calls))] + solver.add(z3.Distinct(positions), *[z3.And(p >= 0, p < len(calls)) + for p in positions]) + for j in range(g): + solver.add(positions[2*j] < positions[2*j+1]) + for j in range(g): + equation = zero(n) + for i in (2*j, 2*j+1): + tail = zero(n) + for k, (_, _, r) in enumerate(calls): + if k != i: + tail = add(tail, [z3.If(positions[k] > positions[i], x, 0) + for x in r]) + p = calls[i][1] + equation = add(equation, add(mul(p, tail), mul(tail, p))) + solver.add(*[x == 0 for x in equation]) + # Every pair of pure stage coefficients must agree. + for j in range(g): + for k in range(j): + eq = zero(n) + for i in (2*j, 2*j+1): + for h in (2*k, 2*k+1): + before = mul(calls[h][1], calls[i][1]) + after = mul(calls[i][1], calls[h][1]) + eq = add(eq, [z3.If(positions[i] < positions[h], x, y) + for x, y in zip(before, after)]) + ej = add(calls[2*j][1], calls[2*j+1][1]) + ek = add(calls[2*k][1], calls[2*k+1][1]) + solver.add(*[x == y for x, y in zip(eq, mul(ej, ek))]) + return solver, calls, positions + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--pattern', choices=('pair', 'triangle'), required=True) + parser.add_argument('--timeout', type=int, default=60000) + parser.add_argument('--seed', type=int, default=20261026) + parser.add_argument('--models', type=int, default=8) + parser.add_argument('--output', type=Path, required=True) + args = parser.parse_args() + start = time.monotonic() + solver, calls, positions = build(args.pattern, args.timeout, args.seed) + spec = importlib.util.spec_from_file_location('old_word', ROOT/'sources/old-word-replay.py') + replay = importlib.util.module_from_spec(spec) + spec.loader.exec_module(replay) + records = [] + for iteration in range(args.models): + status = solver.check() + row = {'iteration': iteration, 'status': str(status), + 'seconds': round(time.monotonic()-start, 3)} + if status == z3.sat: + model = solver.model() + order = sorted(range(len(calls)), key=lambda i: model.eval(positions[i], model_completion=True).as_long()) + numeric = [{'stage': j, 'p': [model.eval(x, model_completion=True).as_long() for x in p], + 'r': [model.eval(x, model_completion=True).as_long() for x in r]} + for j, p, r in calls] + row.update(order=order, calls=numeric, endpoint=replay.replay(numeric, order)) + # Do not repeat a necessary-condition false positive. + expressions = [x for _, p, r in calls for x in p+r] + positions + solver.add(z3.Or(*[x != model.eval(x, model_completion=True) for x in expressions])) + elif status == z3.unknown: + row['reason'] = solver.reason_unknown() + records.append(row) + result = {'pattern': args.pattern, 'timeout_ms': args.timeout, + 'seed': args.seed, 'z3': z3.get_version_string(), 'records': records} + args.output.write_text(json.dumps(result, indent=2)+'\n') + print(json.dumps({k: v for k, v in row.items() if k != 'calls'}), flush=True) + if status != z3.sat or row['endpoint']['passed']: + break + + +if __name__ == '__main__': + main() diff --git a/research/coupled31-chronology/discovery/one-row-three-stage.json b/research/coupled31-chronology/discovery/one-row-three-stage.json new file mode 100644 index 0000000000..dfd4f26187 --- /dev/null +++ b/research/coupled31-chronology/discovery/one-row-three-stage.json @@ -0,0 +1,250 @@ +{ + "counts": { + "total": 19440, + "has_one_extra_row": 9864 + }, + "examples": [ + { + "flags": [ + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + ], + "order": [ + 0, + 0, + 1, + 2, + 2, + 1 + ], + "signatures": [ + 1, + 2 + ], + "differences": [ + [ + 0, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + }, + { + "flags": [ + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + ], + "order": [ + 0, + 0, + 2, + 1, + 1, + 2 + ], + "signatures": [ + 2, + 1 + ], + "differences": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ] + ] + }, + { + "flags": [ + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + ], + "order": [ + 0, + 1, + 0, + 2, + 2, + 1 + ], + "signatures": [ + 1, + 2 + ], + "differences": [ + [ + 0, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + }, + { + "flags": [ + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 0 + ] + ] + ], + "order": [ + 0, + 1, + 1, + 0, + 2, + 2 + ], + "signatures": [ + 3, + 2 + ], + "differences": [ + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 0, + 0 + ] + ] + } + ], + "seconds": 0.516, + "scope": "Necessary projected chronology only; not a full word" +} diff --git a/research/coupled31-chronology/discovery/pair-search.json b/research/coupled31-chronology/discovery/pair-search.json new file mode 100644 index 0000000000..bb6040788c --- /dev/null +++ b/research/coupled31-chronology/discovery/pair-search.json @@ -0,0 +1,14 @@ +{ + "pattern": "pair", + "timeout_ms": 60000, + "seed": 20261026, + "z3": "5.3.2", + "records": [ + { + "iteration": 0, + "status": "unknown", + "seconds": 60.373, + "reason": "timeout" + } + ] +} diff --git a/research/coupled31-chronology/discovery/row_signature_census.py b/research/coupled31-chronology/discovery/row_signature_census.py new file mode 100644 index 0000000000..9d8752b684 --- /dev/null +++ b/research/coupled31-chronology/discovery/row_signature_census.py @@ -0,0 +1,54 @@ +"""Test one extra row at the projected three-stage chronology gate. + +This is a necessary-condition census, not a full endpoint search. +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +import importlib.util +import itertools +import json +from pathlib import Path +import time + +ROOT = Path(__file__).resolve().parents[1] + + +def run(): + spec = importlib.util.spec_from_file_location('checker', ROOT/'check.py') + c = importlib.util.module_from_spec(spec) + spec.loader.exec_module(c) + flags = [(a, c.add(a, c.eye(2))) for a in itertools.product(range(4), repeat=2) + if c.mul(a, a) == a and c.rank(a) == 1] + orders = sorted(set(itertools.permutations((0, 0, 1, 1, 2, 2)))) + hist = {'total': 0, 'has_one_extra_row': 0} + examples = [] + start = time.monotonic() + for fs in itertools.product(flags, repeat=3): + for order in orders: + seen, events = [0]*3, [] + for j in order: + events.append((j, fs[j][seen[j]])) + seen[j] += 1 + sums = {(j, k): (0, 0) for j in range(3) for k in range(3) if j != k} + for i, (j, a) in enumerate(events): + for k, b in events[i+1:]: + if j != k: + sums[j, k] = c.add(sums[j, k], c.mul(a, b)) + differences = [c.add(*[sums[j, k] for k in range(3) if k != j]) + for j in range(3)] + compatible = [] + for u, v in itertools.product(range(4), repeat=2): + if all(all(row in (0, m) for row in mat) + for mat, m in zip(differences, (u ^ v, v, u))): + compatible.append((u, v)) + hist['total'] += 1 + if compatible: + hist['has_one_extra_row'] += 1 + if len(examples) < 4: + examples.append({'flags': fs, 'order': order, + 'signatures': compatible[0], 'differences': differences}) + return {'counts': hist, 'examples': examples, 'seconds': round(time.monotonic()-start, 3), + 'scope': 'Necessary projected chronology only; not a full word'} + + +if __name__ == '__main__': + print(json.dumps(run(), indent=2)) diff --git a/research/coupled31-chronology/discovery/triangle-search.json b/research/coupled31-chronology/discovery/triangle-search.json new file mode 100644 index 0000000000..56c85a4e8a --- /dev/null +++ b/research/coupled31-chronology/discovery/triangle-search.json @@ -0,0 +1,14 @@ +{ + "pattern": "triangle", + "timeout_ms": 60000, + "seed": 20261026, + "z3": "5.3.2", + "records": [ + { + "iteration": 0, + "status": "unknown", + "seconds": 60.279, + "reason": "timeout" + } + ] +} diff --git a/research/coupled31-chronology/pricing.py b/research/coupled31-chronology/pricing.py new file mode 100644 index 0000000000..29688c77c2 --- /dev/null +++ b/research/coupled31-chronology/pricing.py @@ -0,0 +1,112 @@ +"""Check exact tariff bounds from the pinned P104 inventory. + +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +from fractions import Fraction +from functools import lru_cache +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parent + + +@lru_cache(None) +def power_interval(rank, numerator, denominator, bits=42): + scale = 1 << bits + target = pow(rank, numerator) << (bits*denominator) + low, high = 0, rank*scale+1 + while high-low > 1: + mid = (low+high)//2 + if pow(mid, denominator) <= target: + low = mid + else: + high = mid + upper = low if pow(low, denominator) == target else low+1 + return Fraction(low, scale), Fraction(upper, scale) + + +def interval_sum(profile, saving): + power = 1-saving + low = high = Fraction(0) + for rank, count in profile.items(): + a, b = power_interval(rank, power.numerator, power.denominator) + low += count*(a if count > 0 else b) + high += count*(b if count > 0 else a) + return low, high + + +def profile(source, leaves, thin_per_port): + counts = {int(r): -2*leaves*v for r, v in source['paid'].items()} + for r, v in source['helpers'].items(): + counts[int(r)] = counts.get(int(r), 0)+2*leaves*v + counts[8*leaves+1] = counts.get(8*leaves+1, 0)+208 + counts[9] = counts.get(9, 0)+208*leaves + counts[1] -= 104*thin_per_port + return {r: c for r, c in sorted(counts.items()) if c} + + +def run(): + source = json.loads((ROOT/'sources/p104-result.json').read_text())['local'] + require(sum(int(r)*n for r, n in source['paid'].items()) + - sum(int(r)*n for r, n in source['helpers'].items()) == 1720, + 'retained net rank mass') + saving = Fraction(8, 3125) + t = 1-saving + c_profile = {int(r): -2*n for r, n in source['paid'].items()} + for r, n in source['helpers'].items(): + c_profile[int(r)] = c_profile.get(int(r), 0)+2*n + c_profile[9] = c_profile.get(9, 0)+208 + c_low, c_high = interval_sum(c_profile, saving) + z_low, z_high = power_interval(257, t.numerator, t.denominator) + z_low, z_high = z_low/257, z_high/257 + slope = (1664*t*z_low+c_low-Fraction(104, 3), + 1664*t*z_high+c_high-Fraction(104, 3)) + intercept = (208*z_low*(1+256*saving)-Fraction(1040, 3), + 208*z_high*(1+256*saving)-Fraction(1040, 3)) + require(slope[1] < 0 and intercept[1] < -7, 'uniform negative tangent') + bound31 = profile(source, 31, 14) + bound127 = profile(source, 127, 88) + complete31 = profile(source, 31, 64) + require(sum(r*c for r, c in complete31.items()) == -3472, 'complete word linear loss') + require(min(r for r, c in complete31.items() if c > 0) >= 8, 'positive rank floor') + require(max(r for r, c in complete31.items() if c < 0) <= 7, 'negative rank ceiling') + # These signs hold per g. They transfer rejection to larger savings. + require(all((r >= 8 if c > 0 else r <= 7) for r, c in c_profile.items() if c), + 'uniform separated ranks') + candidates = [] + for g, q, thin, alpha in ((13, 8, 5, Fraction(17, 5000)), + (31, 26, 5, Fraction(7, 2000))): + lower_rank = 4*q+2*((g-2+2)//3) + require(thin*q >= lower_rank, 'candidate rank budget') + low, high = interval_sum(profile(source, g, thin), alpha) + require(low > 0, 'candidate optimistic margin') + candidates.append({'leaves': g, 'coupled_ports': q, 'thin_maps': thin, + 'rank_per_thin_map': q, 'minimum_thin_rank': lower_rank, + 'saving': str(alpha), 'margin': [str(low), str(high)], + 'status': 'UNCONSTRUCTED; COMMUTING FULL PROJECTORS EXCLUDED'}) + return {'net_rank_mass_per_full_call': 1720, + 'requested_31_leaf': {'ports': 2, 'requested_thin_rank': 10, + 'minimum_thin_rank': 28, + 'minimum_H1_calls_at_104_ports': 1456, + 'optimistic_signed_profile': bound31}, + 'old_127_leaf': {'ports': 1, 'requested_thin_rank': 10, + 'minimum_thin_rank': 88, + 'optimistic_signed_profile': bound127}, + 'uniform_one_or_two_port_ceiling': { + 'saving_rejected': str(saving), 'tangent_leaves': 32, + 'slope_interval': [str(x) for x in slope], + 'intercept_interval': [str(x) for x in intercept], + 'all_integer_leaves_at_least_three': True, + 'all_larger_savings_rejected': True}, + 'complete_binary_word31': {'full_calls': 62, 'thin_maps': 16, + 'rank_per_thin_map': 8, 'binary_blocks': 52, + 'H1_thin_calls_at_104_ports': 6656, + 'signed_profile': complete31, + 'linear_margin': -3472, + 'all_concave_moments_rejected': True}, + 'unconstructed_targets': candidates} + + +def require(ok, message): + if not ok: + raise ValueError(message) diff --git a/research/coupled31-chronology/sources/escape-word.json b/research/coupled31-chronology/sources/escape-word.json new file mode 100644 index 0000000000..aae71c6ad2 --- /dev/null +++ b/research/coupled31-chronology/sources/escape-word.json @@ -0,0 +1,351 @@ +{ + "source": "Finite search case11, seed3; all matrices over F2", + "scope": "Binary normalized operator only; six full calls and eight rank-one thin calls", + "case": 11, + "order": [ + 1, + 3, + 8, + 11, + 7, + 6, + 12, + 13, + 2, + 9, + 4, + 0, + 10, + 5 + ], + "status": "sat", + "calls": [ + { + "stage": 0, + "p": [ + 1, + 1, + 4, + 4, + 0, + 0, + 0, + 0 + ], + "r": [ + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0 + ] + }, + { + "stage": 0, + "p": [ + 0, + 3, + 0, + 12, + 0, + 0, + 0, + 0 + ], + "r": [ + 0, + 15, + 0, + 15, + 0, + 0, + 0, + 0 + ] + }, + { + "stage": 1, + "p": [ + 0, + 3, + 0, + 0, + 0, + 48, + 0, + 0 + ], + "r": [ + 0, + 51, + 0, + 0, + 0, + 51, + 0, + 0 + ] + }, + { + "stage": 1, + "p": [ + 1, + 1, + 0, + 0, + 16, + 16, + 0, + 0 + ], + "r": [ + 17, + 17, + 0, + 0, + 17, + 17, + 0, + 0 + ] + }, + { + "stage": 2, + "p": [ + 1, + 1, + 0, + 0, + 0, + 0, + 64, + 64 + ], + "r": [ + 65, + 65, + 0, + 0, + 0, + 0, + 65, + 65 + ] + }, + { + "stage": 2, + "p": [ + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 192 + ], + "r": [ + 0, + 195, + 0, + 0, + 0, + 0, + 0, + 195 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 0, + 104, + 0, + 104, + 104, + 0, + 104, + 0 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 111, + 111, + 111, + 111, + 0, + 0, + 0, + 111 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 2, + 0, + 2, + 0, + 0, + 2, + 0, + 2 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 0, + 195, + 0, + 0, + 0, + 0, + 0, + 195 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 0, + 172, + 172, + 0, + 172, + 0, + 172, + 172 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 60, + 60, + 60, + 0, + 60, + 0, + 60, + 0 + ] + }, + { + "stage": 3, + "p": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "r": [ + 0, + 249, + 249, + 0, + 249, + 0, + 249, + 0 + ] + } + ], + "choices": [ + 5, + 1, + 5 + ] +} diff --git a/research/coupled31-chronology/sources/old-word-replay.py b/research/coupled31-chronology/sources/old-word-replay.py new file mode 100644 index 0000000000..037ed3f765 --- /dev/null +++ b/research/coupled31-chronology/sources/old-word-replay.py @@ -0,0 +1,49 @@ +"""Replay the complete binary word with independent stage variables. + +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +import json +from pathlib import Path + +def eye(n):return tuple(1<1:continue + key=tuple(a+b for a,b in zip(x,y));out[key]=add(out.get(key,zero),mul(ax,by)) + return {k:v for k,v in out.items() if any(v)} + +def replay(calls,order): + n=len(calls[0]['p']);g=max(c['stage'] for c in calls);base=(0,)*(g+1);ebit=(1,)+(0,)*g + word={base:eye(n)};expected={base:eye(n),ebit:eye(n)};targets=[(0,)*n for _ in range(g)] + for c in calls: + if c['stage'] 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "3485999999253/3500000000000", + "fixed_halo_explicit_metadata_branch": "269500000001/3500000000", + "new_BIT_row_stock_sublinear_in_active_group": "13957999997009/14000000000000", + "new_semantic_group_guard": "3/14000000000" + }, + "margins": { + "boundary_algebraic_matrix": "607688255956593697/196000000000000000000", + "fused_gaussian": "607688255869781091/196000000000000000000", + "global_coordinate_router": "1356447/437500000", + "group_bit_router": "18990258433430659/6125000000000000000", + "group_scans": "6999999999/7000000000", + "main_transform": "607688241956593697/196000000000000000000", + "microbox_face_corrections": "269500000001/3500000000", + "polynomial_products": "13999999999/14000000000", + "sparse_union_movement": "80232688255956593697/196000000000000000000" + }, + "parameters": { + "a": "1356447/437500000", + "b": "8681261/2800000000", + "beta": "13999999997/14000000000", + "bit_saving": "17/5000", + "cap_xi": "178232688241956593697/196000000000000000000", + "complex_uniform_saving": "21703153/7000000000", + "d": "1/14000000000", + "epsilon": "13999999999/14000000000", + "kappa": "62009/20000000", + "lambda_": "3987598199/4000000000", + "lambda_prime": "13956593697/14000000000", + "layout": "1/14000000000", + "q": "43406303/14000000000", + "r0": "1/140000000000", + "stop": "1/14000000000", + "tested_saving": "6200901/2000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "131053/437500000", + "actual_logarithmic_gamma_guard": "1/14000000000", + "actual_logarithmic_group_guard": "17767311779043406303/98000000000000000000", + "alpha_logarithm_absorption": "1/140000000000", + "boundary_algebraic_matrix_above_kappa": "55956593697/196000000000000000000", + "cap_above_band": "80232688241956593697/196000000000000000000", + "cap_below_cell": "17767311744043406303/196000000000000000000", + "cap_below_phase_cell_power": "213767311758043406303/196000000000000000000", + "complex_above_effective": "1/14000000000", + "complex_below_one_over_32": "78818739/2800000000", + "complex_endpoint": "1/7000000000", + "epsilon_below_one": "1/14000000000", + "epsilon_positive": "13999999999/14000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "55869781091/196000000000000000000", + "gaussian_above_main": "6956593697/98000000000000000000", + "global_coordinate_router_above_kappa": "1/3500000000", + "global_gamma_power_slack": "9/140000000000", + "group_below_dimension": "1/7000000000", + "group_bit_router_above_kappa": "2183430659/6125000000000000000", + "group_gauge_power_slack": "17767311778343406303/98000000000000000000", + "group_key_fits_record": "1/7000000000", + "group_positive": "13999999997/14000000000", + "group_scans_above_kappa": "6978296849/7000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "684739790400418148631/500000000000000000000000", + "lambda_above_internal": "1/28000000000", + "lambda_above_sigma": "3/28000000000", + "lambda_above_tau": "1/28000000000", + "lambda_prime_above_lambda": "1/28000000000", + "lambda_prime_above_leaf": "5591318739/39200000000000000000", + "leaf_saving_above_effective": "2791318739/39200000000000000000", + "main_transform_above_kappa": "41956593697/196000000000000000000", + "membership_arithmetic_fits_record": "1/14000000000", + "microbox_face_corrections_above_kappa": "134744574213/1750000000", + "microbox_halo_volume": "1106000000003/14000000000", + "new_complex_uniform_saving_above_b": "1/14000000000", + "new_semantic_guard_with_C1_one": "1/14000000000", + "polynomial_products_above_kappa": "13956593699/14000000000", + "positive_layout_slack": "1/14000000000", + "q_below_effective": "1/14000000000", + "q_below_internal": "1/14000000000", + "q_below_leaf": "5591318739/39200000000000000000", + "q_positive": "43406303/14000000000", + "short_record_fallback": "2791318739/2800000000", + "source_axis_superpolynomial": "1/14000000000", + "sparse_union_movement_above_kappa": "79625000055956593697/196000000000000000000", + "stop_below_one": "13999999999/14000000000", + "stop_positive": "1/14000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/14000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/14000000000", + "union_tag_work_per_visit_fits_record": "3/14000000000" + } + }, + "paid": { + "1": 41214, + "16": 416, + "2": 8262, + "24": 416, + "3": 8874, + "32": 416, + "4": 1656, + "40": 416, + "48": 416, + "5": 3024, + "56": 416, + "6": 324, + "64": 416, + "7": 252, + "72": 208 + }, + "paid_calls": 66726, + "previous_open_pr5565": "7713/2500000", + "productive_fields": 13048, + "query_shears": 15, + "rank_mass_surplus": 760, + "raw_ceiling": { + "derivative_upper": "-741665511346505619707405027113237790341393747177503845065075007/3138550867693340381917894711603833208051177722232017256448", + "interval": [ + "0", + "17/5000" + ] + }, + "raw_headroom": [ + "157681/25000000000000", + "25229/4000000000000" + ], + "raw_root_interval": [ + "77511407681/25000000000000", + "12401825229/4000000000000" + ], + "relative_gain_percent": "7625/15426", + "strictification": { + "alpha": { + "lower": "0.999999994094860604597376680636", + "upper": "0.999999994094860604597376680637" + }, + "cutoff": 17, + "delta": { + "lower": "0.972208404163139976829701213167", + "upper": "0.972208404163139976829701213168" + }, + "floor": 18, + "gamma": { + "lower": "0.967537821927968182942254182934", + "upper": "0.967537821927968182942254182935" + }, + "normalized_paid_upper": "5242880004882813/5242880536870912", + "power": 1024, + "reserve": "1/10000000000", + "tail_block": 128, + "tail_decay": "39/40", + "tail_offset": "1/5", + "tested": "6200901/2000000000" + }, + "targets": { + "1": 36, + "145": 208, + "17": 416, + "2": 90, + "25": 416, + "33": 416, + "4": 1602, + "41": 416, + "49": 416, + "5": 198, + "57": 416, + "65": 416, + "7": 90, + "73": 208, + "8": 288, + "9": 7416 + }, + "whole_idle_jobs": 3120 + }, + "limits": [ + "The five selected framework assumptions and helper-endpoint contract remain.", + "No complete rounded multiplier or enormous uniform compiler word is materialized.", + "No independent human or proof-kernel acceptance or global optimality is claimed." + ], + "local": { + "endpoint_coefficients": 571536, + "helpers": { + "1": 2, + "2": 5, + "4": 89, + "5": 11, + "7": 5, + "8": 16, + "9": 412 + }, + "owned_lifetimes": 8, + "paid": { + "1": 2203, + "2": 459, + "3": 493, + "4": 92, + "5": 168, + "6": 18, + "7": 14 + }, + "paid_rank_mass": 6014, + "peak_owned_fields": 1, + "public_inputs": 748, + "real_scalar_allowance": 220232 + }, + "local_helper_delta": { + "1": 2, + "2": 5, + "4": 6, + "5": 6, + "7": 5, + "8": 2, + "9": -13 + }, + "native": { + "distinct_maps": 2923, + "helper_normalizers": 1080, + "helpers": { + "1": 2, + "2": 5, + "4": 89, + "5": 11, + "7": 5, + "8": 16, + "9": 412 + }, + "main_adapters": 208, + "proof": "Every signed Pauli image and exact global phase; frame induction at every positive tensor width", + "recipe_payload_sha256": "b2e6b538f6152ccf0024ca57381e46b2fe6b75b89504d935009dade234cc3f18", + "wrong_phase_rejected": true + }, + "negative_controls": { + "contaminated_prefix": "Exact prefix functional; no other input", + "contaminated_suffix": "Exact suffix direction; no other output", + "extra_helper_credit": "Every productive helper has a native target", + "missing_central_translation": "Rejected by the complete Laurent endpoint", + "missing_input_basis": "All public and owned rows", + "missing_output_basis": "All public and owned rows", + "unearned_whole_target": "All public and owned exits", + "unpaid_gaussian": "Complete field and call counts" + }, + "physical_caller": { + "central_square_columns": 53248, + "full_calls": 18, + "main_targets": { + "145": 208, + "17": 416, + "25": 416, + "33": 416, + "41": 416, + "49": 416, + "57": 416, + "65": 416, + "73": 208 + }, + "new_paid_jobs": 0, + "physical_contacts": 7488, + "ports": 104, + "route_payload_sha256": "7f4f0ca768ffbc4f93dcff575592c4c67411f46b4289e45b73f715a2ad47b142", + "tensor_rule": "Factorwise native maps; scalar signs stay outside the tensor power.", + "whole_idle_jobs": { + "16": 416, + "24": 416, + "32": 416, + "40": 416, + "48": 416, + "56": 416, + "64": 416, + "72": 208 + }, + "wrapper_sites": [ + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31 + ] + }, + "published_source_delta": { + "helpers": { + "8": -1, + "9": 1 + }, + "paid": { + "1": -8, + "3": -1, + "4": -2, + "5": 4 + } + }, + "separate_columns": { + "arithmetic": "Dense integer rows with binary denominators; reverse chronology", + "coefficients": 571536, + "columns": 756 + }, + "splits": [ + { + "cut_after": 13775, + "events": 25155, + "pivot": 648, + "public": 736, + "ranks": [ + 5, + 4 + ] + }, + { + "cut_after": 13765, + "events": 25177, + "pivot": 592, + "public": 737, + "ranks": [ + 5, + 4 + ] + }, + { + "cut_after": 13706, + "events": 25195, + "pivot": 664, + "public": 738, + "ranks": [ + 5, + 4 + ] + }, + { + "cut_after": 13673, + "events": 25217, + "pivot": 680, + "public": 739, + "ranks": [ + 5, + 4 + ] + }, + { + "cut_after": 12526, + "events": 25253, + "pivot": 259, + "public": 740, + "ranks": [ + 4, + 5 + ] + }, + { + "cut_after": 12448, + "events": 25285, + "pivot": 432, + "public": 741, + "ranks": [ + 4, + 5 + ] + }, + { + "cut_after": 13961, + "events": 25299, + "pivot": 722, + "public": 742, + "ranks": [ + 2, + 7 + ] + }, + { + "cut_after": 13647, + "events": 25317, + "pivot": 14, + "public": 743, + "ranks": [ + 2, + 7 + ] + }, + { + "cut_after": 13648, + "events": 25335, + "pivot": 76, + "public": 744, + "ranks": [ + 2, + 7 + ] + }, + { + "cut_after": 13648, + "events": 25369, + "pivot": 345, + "public": 745, + "ranks": [ + 2, + 7 + ] + }, + { + "cut_after": 13637, + "events": 25419, + "pivot": 573, + "public": 746, + "ranks": [ + 2, + 7 + ] + }, + { + "cut_after": 12078, + "events": 25445, + "pivot": 405, + "public": 747, + "ranks": [ + 8, + 1 + ] + }, + { + "cut_after": 12610, + "events": 25475, + "pivot": 225, + "public": 748, + "ranks": [ + 8, + 1 + ] + } + ], + "status": "PASS_P104_HELPER_SUBSPACE_KAPPA_00310045" +} diff --git a/research/coupled31-chronology/sources/pr5673-proof.md b/research/coupled31-chronology/sources/pr5673-proof.md new file mode 100644 index 0000000000..e3800fbcf1 --- /dev/null +++ b/research/coupled31-chronology/sources/pr5673-proof.md @@ -0,0 +1,231 @@ +# A connector must distinguish leaves in both directions + +This is a theorem about finite matrices in characteristic two. It is not a +native multiplication theorem. No new kappa is established. + +## 1. Contract + +Let the main space be `W_0 + W_1 + ... + W_g`, with each block of dimension +`d > 0`. Block zero is the core. Stage j acts on the core and leaf j. On these +two blocks put + +```text +E_j = diag(I,I), T_j = [[I,I],[I,I]]. +``` + +Thus `T_j^2=0`. Stage j can have any finite number of full calls. Their +projectors `P_jh` form an orthogonal resolution of `E_j`, and commute with +`T_j`. Their query maps are `R_jh=P_jh T_j`. There is no bound on the number +of stages, the number of splits, the block dimension, or their call order. + +In the normalized ring `F[e,D_1,...,D_g]/(e^2)`, a full call is + +```text +(I+(D_j+1)P_jh)(I+e R_jh). +``` + +A thin call is `I+e Z`. The proof permits arbitrary matrices Z. In particular, +it does not impose a rank, a square-zero condition, or a count on thin calls. +The required word is `Q product_j (I+(D_j+1)E_j)`, where `Q=1+e`. +The main fields are independent. All D variables remain independent. + +This is the star stage contract from PR5631/5649, with arbitrary stage splits +and a much larger connector class. It excludes no general complex or dyadic +caller. It also excludes no caller with a different grouped stage map, a +nonfull stage, a different output, or paid idle multipliers. + +## 2. The one-sided theorem + +**Theorem.** A successful word cannot have three distinct leaves whose block +columns are identical in every thin matrix Z. It also cannot have three +leaves whose block rows are identical in every thin matrix Z. + +Only one of these two equalities is needed for exclusion. Thus changing the +forward split, adding more queries, increasing their rank, or adding more +stage splits cannot repair connectors which only see the sum of the leaves. + +### Local form and chronology + +Commutation with T and the local support give + +```text +P_jh = [[A_jh+B_jh, B_jh], [B_jh, A_jh+B_jh]], +R_jh = [[A_jh, A_jh], [A_jh, A_jh]]. +``` + +The A matrices form an orthogonal resolution of I. In particular, +`A_jh A_jk=0` for `h!=k`, `A_jh^2=A_jh`, and `sum_h A_jh=I`. +These statements do not require the A matrices of different stages to commute. +The orthogonal-resolution hypothesis also follows from full rank use: if the +projectors sum to E and their ranks sum to rank E, their images form a direct +sum. Each projector is then the corresponding coordinate projection on that +sum. Stages with a rank deficit are a different contract. + +Set all D variables to one. The coefficient of e requires `sum R=I`, including +thin queries. The mixed coefficient of `e(D_j+1)` then requires + +```text +sum_(full call i in stage j) [P_i, sum_(calls l later than i) R_l] = 0. (1) +``` + +This necessary condition follows by expanding the literal ordered word. +No full-word converse is used. + +For distinct selected stages j,k define + +```text +S_jk = sum_(call (j,h) before call (k,l)) A_jh A_kl. (2) +``` + +In (1), add block rows zero and j, and read block column k. The contribution +of good calls is S_jk. The contribution of a later thin map Z is +`A_jh (Z_0k+Z_jk)`. If the three selected leaf columns of every Z are equal, +this thin contribution is the same for the two choices of k other than j. +Consequently + +```text +S_jk = S_jl for each permutation (j,k,l) of the three stages. (3) +``` + +Other good stages do not contribute to these blocks. Thus the argument +restricts to any three selected leaves in a larger star. + +### The prefix determinant argument + +Read just the calls of the three selected stages in their original order. +Before a call with projection A from stage j, let P_k be the sum of the A +projections already read from stage k. Left multiplication of (2) by A and +orthogonality within stage j give + +```text +A S_jk = A(I+P_k). +``` + +Equation (3) gives `A P_k=A P_l`. Also `A P_j=0`. Therefore, for the total +prefix `S=P_0+P_1+P_2`, every update satisfies + +```text +A S=0. (4) +``` + +Introduce an independent central variable x. Equation (4) implies + +```text +(I+xA)(I+xS) = I+x(S+A). +``` + +Starting at S=0, the product of all these factors is `I+xS_final`. +At the end, `S_final=I+I+I=I`. On the other hand, an idempotent of rank r +has determinant `det(I+xA)=(1+x)^r`. Each stage is a resolution of I, +so its ranks sum to d. Taking determinants now gives + +```text +(1+x)^(3d) = det(product(I+xA)) = det((1+x)I) = (1+x)^d. +``` + +This is impossible for positive d. This proves the column statement for +all finite dimensions and all finite split counts. It uses no list of orders. +Transpose all matrices and reverse the order to obtain the row statement. + +## 3. A paid-rank and finite-field cut + +Assume g is at least three. The sum of the good queries is +`sum T_j`. Hence the thin sum must be + +```text +K = I+sum T_j = epsilon E_core + F+G, +epsilon = (g+1) mod 2, +F: each leaf -> core by I, G: core -> each leaf by I. +``` + +The rank of K is `2d`. Its column space is the core plus the diagonal leaf +space, and its row space is the core plus the leaf-sum space. + +Let U be the span of all thin images, and V the span of all thin row spaces. +Write `dim U=2d+a`, `dim V=2d+b`, and let R be the sum of thin ranks. +Factor each thin map at its actual rank, then concatenate those factors. +Sylvester's rank inequality gives + +```text +R >= dim U + dim V - rank K = 2d+a+b. (5) +``` + +Both a and b must be positive. Otherwise one side of the one-sided theorem +applies to all leaves. In particular **R >= 2d+2**, over any field of +characteristic two. + +For a finite field of size s, choose b additional row basis vectors beyond +the row space of K. Their restriction to one leaf is a `b by d` matrix. +There are at most `s^(bd)` such signatures. Equal signatures imply equal +leaf columns for every thin map. Each signature can occur at most twice. +The column-space argument is the same. Therefore + +```text +g <= 2 s^(bd), g <= 2 s^(ad), +R >= 2d + 2 h, h = min {z >= 0 : g <= 2 s^(dz)}. (6) +``` + +This is a necessary condition, not a construction or a sufficient test. +It concerns a common field and a fixed block basis. For one-port binary +copies, d=2. It gives R>=6 for g=3..8, R>=8 for g=9..32, and R>=10 for +g=33..128. For coupled ports, use the actual larger d. Do not apply the +one-port bound per port after ports have been coupled. + +At g=31, five rank-one connectors fail this cut. Five rank-two connectors +with d=4 meet it exactly: `2d+2=10`. Thus coupled pairs of ports are a precise +remaining target. The cut does not prove that such a word exists. + +## 4. Constructive escape and its price + +`ESCAPE-WORD.json` contains a complete eight-field binary word. It has three +paired stages, six full calls with rank-one queries, and eight rank-one thin calls. +Every local projector, query rank and compatibility relation is checked. +The verifier retains every exponent of each independent D variable and +checks every coefficient of the full word. It also checks that the thin +maps distinguish all three leaves in both directions. + +Thus the changed connector contract has a real positive operator. It does +not give a profitable supplier. At the pinned PR5599 tariff, 104 copies have +complete optimistic moment coefficients + +```text +208 H25 + 624 H9 + 6 helpers - 6 paid - 832 H1. +``` + +Its linear margin is -336. After common ranks are cancelled, all positive +terms have rank at least eight and all negative terms have rank at most +seven. For every `0<=t<=1`, the margin is at most `8^(t-1)*(-336)<0`. +Additional physical adapters cannot repair that price. + +The new cut still leaves a useful target. At g=127, ten thin queries are +allowed by (6) for one-port binary copies. The optimistic PR5599 profile +has a positive exact margin at saving `7/2000=.0035`, and its numerical +crossing is about .00364156. **No 127-leaf word is supplied.** This screen +also does not establish a characteristic-zero lift, native frame adapters, +compiler admission, an outer transfer, or a new kappa. + +A smaller coupled target is g=31 with five rank-two connectors per two-port +block. Its optimistic bill, scaled to 104 ports, also has positive exact +margin at .0035. It needs only 62 full calls. No such word is supplied either. +Coupling physical ports can require new frame maps; their costs must be +charged before this screen can become a supplier claim. + +## 5. Evidence and limits + +The main result is a written finite-dimensional matrix proof. The checker +also verifies fifteen exact free-algebra certificates for the paired-stage +case, without a solver or the discovery implementation. Matrix and formal +polynomial controls test the chronology extraction, restriction to three +leaves, prefix factorization and determinant formula. They support the +proof; finite tests alone do not prove its unbounded statements. + +The discovery archive retains changed C,D splits, arbitrary aggregate maps, +extra thin queries, a different cycle frame, and three-/four-way splits. +Timeouts remain unknown. Passing first mixed coefficients is not passing the +full word. No proof assistant or independent human acceptance is claimed. + +Credit Cinna Davis's controller and simplex work; PR5617/5631/5649 for the +query-frame and fixed-star line; and the complete P104/native/helper/compiler +lineage for the tariff. This proof, cut, search and escape word were prepared +for Ali Romman with substantial OpenAI Codex assistance. No subagents. +New work is Apache-2.0. diff --git a/research/coupled31-chronology/sources/pr5681-proof.md b/research/coupled31-chronology/sources/pr5681-proof.md new file mode 100644 index 0000000000..e3be1bb272 --- /dev/null +++ b/research/coupled31-chronology/sources/pr5681-proof.md @@ -0,0 +1,169 @@ +# The static connector rank cut is sharp + +This package checks the proof in the retained PR5673 source. It also gives +new static witnesses at its rank lower bound. A static witness gives the +thin query maps, their sum, ranks and leaf signatures. It does not give a +chronological word. No new kappa follows. + +## 1. Audit of the source implication + +Use the source contract, over a field of characteristic two. Each stage j +has full projectors P_jh supported on the core and leaf j. They give an +orthogonal resolution of that support. They commute with the local query +T_j, whose four blocks are I. Their queries are R_jh=P_jh T_j. +A thin map Z has no stage variable. All stage variables are independent. +The target is the stated product of full stages, times the scalar 1+e, +where e squared is zero. These hypotheses are required. + +Put x_j=D_j+1. Work first in the quotient which also sets x_j squared to +zero and every other x to zero. This quotient supplies necessary conditions +only. Read the literal calls in application order. If R_< and R_> are the +sums before and after a full call (P,R), the coefficient of e x_j contributed +by that call is + +```text +P R_< + R_> P + P R. +``` + +The coefficient of e first gives sum R=I. Since P R=R, the expression becomes +`P + P R_> + R_> P`. Summing the stage projectors gives E_j. The target has +e x_j coefficient E_j. Thus its defect is exactly the sum of commutators +`P R_> + R_> P`. No pure higher coefficient or endpoint converse is assumed. + +Commutation with T gives P=[[A+B,B],[B,A+B]]. The idempotent and orthogonality +relations imply that the A matrices in each stage are orthogonal idempotents +with sum I. Add block rows core and j, then take leaf column k, where k!=j. +The right product R_> P has no such column. A later stage k contributes +A_jh A_kl. Other full stages contribute zero. A thin map contributes +`A_jh (Z_0k+Z_jk)`. This proves the source restriction even when there are +other leaves, noncommuting stage flags and arbitrary blocks outside the +chosen three columns. + +If three leaf columns of every thin map agree, the thin contribution does +not depend on which of the other two leaves is k. Therefore S_jk=S_jl, +where S_jk is the sum of A_jh A_kl for jh before kl. For a given call A_jh, +orthogonality within j gives `A_jh S_jk=A_jh(I+P_k)`, with P_k the earlier +prefix of stage k. Thus A_jh P_k=A_jh P_l. Its own earlier prefix is +annihilated. The total prefix S obeys A_jh S=0. + +For a formal central variable x, this gives +`(I+xA)(I+xS)=I+x(A+S)` at every step. The product of factors is therefore +`(1+x)I`, since the three final stage prefixes each equal I. Each idempotent +of rank r has determinant (1+x)^r: its image and kernel give a direct sum +basis. Each stage contributes total rank d. The same determinant would have +to be both (1+x)^(3d) and (1+x)^d. These polynomials have different degrees +for d>0. This is a contradiction over every field of characteristic two. +Transpose and reverse the whole word for the row version. The target is +preserved by this operation because its full stage supports commute. + +No mathematical gap was found in this implication under these hypotheses. +The source does not exclude a different stage support, an incomplete stage, +a different target or a characteristic-zero caller. This audit does not +supply human review or a proof-assistant theorem. + +## 2. Rank cut and its exact static realization + +Let F have q elements, where q is a power of two. Let d,h be positive +integers. Put + +```text +g = 2 q^(d h) - 1, W = F^d + (F^d)^g. +``` + +Index the leaves by all h-by-d matrices M over F: use the zero matrix once +and every nonzero matrix twice. On W, define F_i to send coordinate i of +every leaf to core coordinate i. Define G_i to send core coordinate i to +coordinate i of every leaf. Both have rank one and square zero. Put + +```text +K = sum_i (F_i+G_i). +``` + +This is the required thin sum for odd g. It has rank 2d. Its image consists +of the core and the diagonal leaf space. Its row space consists of the core +and the leaf-sum space. + +For 1<=a<=h, let u_a have zero core and leaf block equal to row a of M, +viewed as a column. Let v_a have zero core and the same leaf entries as a +row. Put E_a=u_a v_a. Each E_a has rank one. Every nonzero signature occurs +twice, so + +```text +sum_leaf u_a = 0, sum_leaf v_a = 0, v_a u_b = 0 +``` + +for all a,b. Consequently E_a E_b=0; F_i E_a=E_a F_i=0; and +G_i E_a=E_a G_i=0. In particular all these maps have square zero. +Take the following thin maps, with both copies of each E_a charged: + +```text +F_0,...,F_(d-1), G_0,...,G_(d-1), E_1,E_1,...,E_h,E_h. +``` + +Their sum is K and their total rank is exactly 2d+2h. Their image span and +row span each have dimension 2d+h. To see independence of the extra h +vectors modulo the diagonal space, first inspect the zero-signature leaf. +It forces any diagonal component to vanish. Then inspect signatures with +one nonzero matrix entry; these force each coefficient of u_a to vanish. +The row proof is the same. + +Two leaves have the same block columns in all thin maps exactly when their +matrices M agree. Indeed the F/G columns are constant across leaves, and +E_a recovers row a of M because u_a is nonzero. The row statement uses v_a. +Thus there are exactly q^(dh) signatures; each occurs once or twice. +No forbidden triple occurs. + +The source Sylvester bound is R>=2d+a+b, with extra image and row dimensions +a,b. Both equal h here, so equality holds. The source signature bound asks +for the least z such that g<=2q^(dz). For this g, that least z is h. +Thus **both bounds are attained together by square-zero maps**, for every +q,d,h above. This proves sharpness of these static bounds at an unbounded +family of sizes. It does not prove sharpness for complete chronological +words. + +## 3. Five rank-two maps for the 31-leaf target + +When h=1 and d>=2, write E=E_1 and group the charged rank-one maps as + +```text +Z_0 = F_0 + E, +Z_1 = G_1 + E, +Z_(i+1) = F_i + G_((i+1) mod d), 1<=i Date: Mon, 26 Oct 2026 10:20:51 -0500 Subject: [PATCH 2/2] Bind retained source copies and record exact replay evidence --- research/coupled31-chronology/COST.md | 5 ++ research/coupled31-chronology/PROOF.md | 5 ++ research/coupled31-chronology/README.md | 2 + research/coupled31-chronology/RESULT.json | 10 +++- research/coupled31-chronology/SOURCES.json | 52 ++++++++++++++++--- research/coupled31-chronology/VALIDATION.json | 20 +++++++ research/coupled31-chronology/pricing.py | 5 ++ research/coupled31-chronology/verify.py | 4 ++ 8 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 research/coupled31-chronology/VALIDATION.json diff --git a/research/coupled31-chronology/COST.md b/research/coupled31-chronology/COST.md index 68ad4afe0f..d8fe10ffed 100644 --- a/research/coupled31-chronology/COST.md +++ b/research/coupled31-chronology/COST.md @@ -68,6 +68,11 @@ margin. Consequently every saving from .00256 through 1 is rejected. This is a family-wide tariff ceiling, not a root search on a finite range. In particular this family cannot reach selected kappa .00310045. +The two smaller positive leaf counts also lose. At g=1 or g=2, the static +rank K=2d already requires R/q>=4. Their linear margins are -112 and -16. +Separated ranks then reject every concave moment. Thus the stated ceiling +covers every positive leaf count, not only the long callers. + For the requested g=31,q=2 case, R>=28. Its 104-port bill therefore needs at least 1456 rank-one thin queries, instead of the proposed 520. For the old g=127,q=1 case, R>=88 instead of ten. Both complete optimistic profiles diff --git a/research/coupled31-chronology/PROOF.md b/research/coupled31-chronology/PROOF.md index 641598c096..4233ec2237 100644 --- a/research/coupled31-chronology/PROOF.md +++ b/research/coupled31-chronology/PROOF.md @@ -175,6 +175,11 @@ matrices, call order, or compatible paired stage projections can give the required endpoint. The PR5681 static maps remain valid static maps; they cannot be completed to this chronological word. +Allowing arbitrarily many nonzero stage splits does not repair this target. +At d=4, every nonzero query has rank at least one, so L<=5. Even this weaker +contract requires `R>=8+2 ceil(29/5)=20`, still more than ten. The bound 28 +uses the requested paired rank-two full queries; the bound 20 does not. + For g=127 and q=1, the bound is a,b>=42 and **R>=88**, instead of the ten rank-one connectors in the earlier target. It is excluded for the same reason. diff --git a/research/coupled31-chronology/README.md b/research/coupled31-chronology/README.md index 357d9898ac..6ee114965a 100644 --- a/research/coupled31-chronology/README.md +++ b/research/coupled31-chronology/README.md @@ -4,6 +4,7 @@ cannot have the full endpoint under the paired-star contract. Its thin rank must be at least 28, rather than ten. The new proof also excludes the earlier 127-leaf, ten-rank-one target, whose thin rank must be at least 88. +Even arbitrarily fine nonzero stage splits at d=4 need thin rank at least 20. The main result is a linear information bound for every finite dimension and every characteristic-two field. If b is the extra row dimension in the thin @@ -21,6 +22,7 @@ Those static witnesses remain valid. Chronology prevents their completion. concave tangent proves that every paired-star caller with one or two coupled ports loses at saving **.00256**, for every integer leaf count g>=3. This is a uniform ceiling below selected .00310045, not a bounded parameter search. +The g=1 and g=2 profiles already lose every concave moment. The invoice marks all unconstructed physical obligations as unknown. A larger coupling is still possible under this test. At 31 leaves, five diff --git a/research/coupled31-chronology/RESULT.json b/research/coupled31-chronology/RESULT.json index 5f09e0d7b4..0c866aa06a 100644 --- a/research/coupled31-chronology/RESULT.json +++ b/research/coupled31-chronology/RESULT.json @@ -85,6 +85,7 @@ "requested_31_leaf": { "minimum_H1_calls_at_104_ports": 1456, "minimum_thin_rank": 28, + "minimum_with_arbitrary_nonzero_stage_splits": 20, "optimistic_signed_profile": { "1": -137918, "2": -28148, @@ -131,11 +132,16 @@ "uniform_one_or_two_port_ceiling": { "all_integer_leaves_at_least_three": true, "all_larger_savings_rejected": true, + "all_positive_leaf_counts_rejected": true, "intercept_interval": [ "-2387010674050001077/331141978521600000", "-4774021348099800407/662283957043200000" ], "saving_rejected": "8/3125", + "short_caller_linear_margins": { + "1": -112, + "2": -16 + }, "slope_interval": [ "-593132702156541649/5298271656345600000", "-593132698134742867/5298271656345600000" @@ -145,8 +151,8 @@ }, "proof_sha256": { "COMMUTING.md": "d4329ca042cd80527a086fbd6b4644f67660145adfc72196c0a8744bf4d40017", - "COST.md": "076e0f322209c64ab91870e282f251d07ecaae282b536f0f993ba36576fae457", - "PROOF.md": "f909adc46fb9df2955430da2ce1f29caf78b4cb668e8eda0361fa5d6dd800095" + "COST.md": "2ed1d2e4f0db0e3c694e6fce24e614a0dd0fd222279eefc66a8535b3479642a8", + "PROOF.md": "35a9b9dd0418a502e6dcf758920108a5c75f08b7fcb38de36a53f9bbc7df9642" }, "scope": "Paired full star stages over characteristic two; arbitrary thin maps", "status": "PASS_CHRONOLOGICAL_CONNECTOR_RANK_BOUND" diff --git a/research/coupled31-chronology/SOURCES.json b/research/coupled31-chronology/SOURCES.json index 37c7f67d64..dabab9c90e 100644 --- a/research/coupled31-chronology/SOURCES.json +++ b/research/coupled31-chronology/SOURCES.json @@ -15,39 +15,79 @@ "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" }, { - "path": "research/coupled31-chronology/sources/pr5673-proof.md", - "usage": "input", + "path": "research/crossed-connector-caller/PROOF.md", + "usage": "provenance", "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/PROOF.md", "git_blob": "e3800fbcf1c5f5633e14d9856ca1400985292a0d", "sha256": "e086b3376173f6b790e05ef09f23b4d5970c8ac5145ab2970e084743f782190b" }, { - "path": "research/coupled31-chronology/sources/escape-word.json", + "path": "research/coupled31-chronology/sources/pr5673-proof.md", "usage": "input", + "pin": "head:c951dc916aadc7d8af5b126360558f7664b08a4f:research/coupled31-chronology/sources/pr5673-proof.md", + "git_blob": "e3800fbcf1c5f5633e14d9856ca1400985292a0d", + "sha256": "e086b3376173f6b790e05ef09f23b4d5970c8ac5145ab2970e084743f782190b", + "copied_from": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/PROOF.md" + }, + { + "path": "research/crossed-connector-caller/ESCAPE-WORD.json", + "usage": "provenance", "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/ESCAPE-WORD.json", "git_blob": "aae71c6ad294d6bc9ca5e2216a7785b9e6611afd", "sha256": "20285745b7a6c4bfefcccc365caacefaf982d30adb60fea29ffa14f0ea6b639c" }, { - "path": "research/coupled31-chronology/sources/old-word-replay.py", + "path": "research/coupled31-chronology/sources/escape-word.json", "usage": "input", + "pin": "head:c951dc916aadc7d8af5b126360558f7664b08a4f:research/coupled31-chronology/sources/escape-word.json", + "git_blob": "aae71c6ad294d6bc9ca5e2216a7785b9e6611afd", + "sha256": "20285745b7a6c4bfefcccc365caacefaf982d30adb60fea29ffa14f0ea6b639c", + "copied_from": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/ESCAPE-WORD.json" + }, + { + "path": "research/crossed-connector-caller/word_replay.py", + "usage": "provenance", "pin": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/word_replay.py", "git_blob": "037ed3f765822341156e059c306218504ac37e1b", "sha256": "d4574ed109672c9351af8ace5fbcd31671aed6936877dfa4ff09b56b9007da0a" }, { - "path": "research/coupled31-chronology/sources/pr5681-proof.md", + "path": "research/coupled31-chronology/sources/old-word-replay.py", "usage": "input", + "pin": "head:c951dc916aadc7d8af5b126360558f7664b08a4f:research/coupled31-chronology/sources/old-word-replay.py", + "git_blob": "037ed3f765822341156e059c306218504ac37e1b", + "sha256": "d4574ed109672c9351af8ace5fbcd31671aed6936877dfa4ff09b56b9007da0a", + "copied_from": "head:c10f75f09e41803ae8efe478331a7509b7379b2f:research/crossed-connector-caller/word_replay.py" + }, + { + "path": "research/one-sided-connector-audit/PROOF.md", + "usage": "provenance", "pin": "head:67f07448eec5ad8d84bdf96b46981ac0b893592f:research/one-sided-connector-audit/PROOF.md", "git_blob": "e3be1bb272f3a73a8c6cd248fec69dec498e401d", "sha256": "2e52ac6d32923a1ce6f9693415df553b2d4c38c1a103b9e1968c4e114044d800" }, { - "path": "research/coupled31-chronology/sources/p104-result.json", + "path": "research/coupled31-chronology/sources/pr5681-proof.md", "usage": "input", + "pin": "head:c951dc916aadc7d8af5b126360558f7664b08a4f:research/coupled31-chronology/sources/pr5681-proof.md", + "git_blob": "e3be1bb272f3a73a8c6cd248fec69dec498e401d", + "sha256": "2e52ac6d32923a1ce6f9693415df553b2d4c38c1a103b9e1968c4e114044d800", + "copied_from": "head:67f07448eec5ad8d84bdf96b46981ac0b893592f:research/one-sided-connector-audit/PROOF.md" + }, + { + "path": "research/p104-helper-subspace-splits/RESULT.json", + "usage": "provenance", "pin": "head:09dd0965711ca7eeb169057a420abab1c9052137:research/p104-helper-subspace-splits/RESULT.json", "git_blob": "35f75c8555193c6e845cd52cc562ca23fd5924cb", "sha256": "1d92e587915052110dfb3aca8890df5afdaf496164efa5a4a52e69ceeb3c70f3" + }, + { + "path": "research/coupled31-chronology/sources/p104-result.json", + "usage": "input", + "pin": "head:c951dc916aadc7d8af5b126360558f7664b08a4f:research/coupled31-chronology/sources/p104-result.json", + "git_blob": "35f75c8555193c6e845cd52cc562ca23fd5924cb", + "sha256": "1d92e587915052110dfb3aca8890df5afdaf496164efa5a4a52e69ceeb3c70f3", + "copied_from": "head:09dd0965711ca7eeb169057a420abab1c9052137:research/p104-helper-subspace-splits/RESULT.json" } ] } diff --git a/research/coupled31-chronology/VALIDATION.json b/research/coupled31-chronology/VALIDATION.json new file mode 100644 index 0000000000..574968ee87 --- /dev/null +++ b/research/coupled31-chronology/VALIDATION.json @@ -0,0 +1,20 @@ +{ + "python": "3.12.13 (main, May 10 2026, 19:20:41) [Clang 22.1.3 ]", + "platform": "macOS-26.6.1-arm64-arm-64bit", + "base": "df0137efd35e11b4445734bf612bdd4c7ebc330c", + "registered": "PASS_REGISTERED_RESEARCH_PACKAGE outcome=completed", + "optimized": "PASS_CHRONOLOGICAL_CONNECTOR_RANK_BOUND", + "corrupted_package_controls": 5, + "source_copy_binding": "Original Git provenance and retained input commit are separate exact pins; matching SHA256 is required. An initial alias pin was rejected and corrected before publication.", + "git_free_read_only": { + "cwd": "/", + "PATH": "/nonexistent", + "files": 24, + "all_bytes_unchanged": true, + "status": "PASS_CHRONOLOGICAL_CONNECTOR_RANK_BOUND" + }, + "source_history": "Not run: the two open predecessor commits are explicitly pinned provenance, not ancestors of this fresh-main branch.", + "hosted_ci": "Not yet submitted", + "independent_human_review": "Not claimed", + "proof_assistant": "Not run" +} diff --git a/research/coupled31-chronology/pricing.py b/research/coupled31-chronology/pricing.py index 29688c77c2..e988294d07 100644 --- a/research/coupled31-chronology/pricing.py +++ b/research/coupled31-chronology/pricing.py @@ -67,6 +67,8 @@ def run(): bound31 = profile(source, 31, 14) bound127 = profile(source, 127, 88) complete31 = profile(source, 31, 64) + short_margins = {g: sum(r*c for r, c in profile(source, g, 4).items()) for g in (1, 2)} + require(short_margins == {1: -112, 2: -16}, 'short caller linear losses') require(sum(r*c for r, c in complete31.items()) == -3472, 'complete word linear loss') require(min(r for r, c in complete31.items() if c > 0) >= 8, 'positive rank floor') require(max(r for r, c in complete31.items() if c < 0) <= 7, 'negative rank ceiling') @@ -87,6 +89,7 @@ def run(): return {'net_rank_mass_per_full_call': 1720, 'requested_31_leaf': {'ports': 2, 'requested_thin_rank': 10, 'minimum_thin_rank': 28, + 'minimum_with_arbitrary_nonzero_stage_splits': 20, 'minimum_H1_calls_at_104_ports': 1456, 'optimistic_signed_profile': bound31}, 'old_127_leaf': {'ports': 1, 'requested_thin_rank': 10, @@ -97,6 +100,8 @@ def run(): 'slope_interval': [str(x) for x in slope], 'intercept_interval': [str(x) for x in intercept], 'all_integer_leaves_at_least_three': True, + 'short_caller_linear_margins': short_margins, + 'all_positive_leaf_counts_rejected': True, 'all_larger_savings_rejected': True}, 'complete_binary_word31': {'full_calls': 62, 'thin_maps': 16, 'rank_per_thin_map': 8, 'binary_blocks': 52, diff --git a/research/coupled31-chronology/verify.py b/research/coupled31-chronology/verify.py index 7b69c35c50..2f7dc23f25 100644 --- a/research/coupled31-chronology/verify.py +++ b/research/coupled31-chronology/verify.py @@ -27,6 +27,8 @@ def load(name): def run(): sources = json.loads((PACKAGE/'SOURCES.json').read_text()) + provenance = {row.get('pin'): row['sha256'] for row in sources['files'] + if row['usage'] == 'provenance'} authenticated = 0 for row in sources['files']: if row['usage'] == 'input': @@ -34,6 +36,8 @@ def run(): path = PACKAGE/row['path'][len(PREFIX):] require(hashlib.sha256(path.read_bytes()).hexdigest() == row['sha256'], 'source hash: '+row['path']) + require(provenance.get(row['copied_from']) == row['sha256'], + 'retained copy differs from original provenance') authenticated += 1 checker, prices = load('check'), load('pricing') evidence = checker.run()